The-OpenROAD-Project / The-OpenROAD-Project/OpenROAD

repair_timing -hold ignores registers sampling clocks

Open
#8,075 14 comments 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

rsz
Dominant language
Verilog
Stars
3.1k
Forks
1k
Avg merge
2d 23h
Merged PRs (30d)
136

Description

Describe the bug

The command:
report_checks -path_delay min -sort_by_slack -format full_clock_expanded
says:

Startpoint: STUSB_ISO_i/ftp_ctl_i/nvm_sect3_s_reg_0_
            (rising edge-triggered flip-flop clocked by clock_32k)
Endpoint: NVM_512bE2LTa_H9A_i
          (rising edge-triggered flip-flop clocked by clock_32k)
Path Group: clock_32k
Path Type: min
          -4.39   slack (VIOLATED)

After several call to repair_timing, I get:

[INFO RSZ-0100] Repair move sequence: UnbufferMove SizeUpMove SwapPinsMove BufferMove CloneMove SplitLoadMove 
[INFO RSZ-0098] No setup violations found
[INFO RSZ-0046] Found 2 endpoints with hold violations.
Iteration | Resized | Buffers | Cloned Gates |   Area   |   WNS   |   TNS   | Endpoint
--------------------------------------------------------------------------------------
        0 |       5 |       0 |            0 |    +0.0% |  -3.738 | -10.139 | STUSB_ISO_i/i2c_top_i/u_i2c_state/sda_in_d1_reg/D
    final |       5 |       2 |            0 |    +0.0% |  -3.738 |  -9.839 | STUSB_ISO_i/i2c_top_i/u_i2c_state/sda_in_d1_reg/D
--------------------------------------------------------------------------------------
[INFO RSZ-0032] Inserted 2 hold buffers.
[INFO RSZ-0100] Repair move sequence: UnbufferMove SizeUpMove SwapPinsMove BufferMove CloneMove SplitLoadMove 
[INFO RSZ-0098] No setup violations found
[INFO RSZ-0033] No hold violations found.

Then the command:
report_checks -path_delay min -sort_by_slack -format full_clock_expanded
says:

Startpoint: i_sda_in (clock source 'clock_sda_clk')
Endpoint: STUSB_ISO_i/i2c_top_i/u_i2c_state/sda_in_d1_reg
          (rising edge-triggered flip-flop clocked by clock_i2c_1m)
Path Group: clock_i2c_1m
Path Type: min
...
          -3.74   slack (VIOLATED)
Expected Behavior

Hold violations should be fixed.

Environment
OpenROAD v2.0-23570-g3fd4e08b52
To Reproduce

Test case repair_timing.zip uploaded to PII sftp server.

Relevant log output

Screenshots

No response

Additional Context

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.