Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The F/F setup/hold violations are not checked with the correct setup/hold times. #9

Open
takanie1967 opened this issue Dec 26, 2023 · 0 comments

Comments

@takanie1967
Copy link

I use OSS_CVC_7.00b-x86_64-rhel6x of 07/07/14 (Linux-elf).

When I simulate a delay simulation by CVC in which SDF is annotated,
the F/F setup/hold violations are not checked with the correct setup/hold times.

For example, I write SDF file as follows and I simulate with +maxdelays option:
(HOLD (posedge D) (COND S&R (posedge CLK) ) (0.033:0.044:0.067) )
(HOLD (negedge D) (COND S&R (posedge CLK) ) (0.028:0.038:0.057) )
(* TIMESCALE is 1 ns. *)

At this time, the following timing violation message is output.
$hold((posedge CLK &&& \S&R ):16042 ps, (posedge D):16088 ps, 57 ps)

The hold violation is checked with the hold time of 57ps,
but this hold time(57ps) is for negedge of D. (Now, D behavior is posedge.)

Next, I rewrite the SDF file as follows and simulate with +maxdelays option:
(HOLD (negedge D) (COND S&R (posedge CLK) ) (0.028:0.038:0.057) )
(HOLD (posedge D) (COND S&R (posedge CLK) ) (0.033:0.044:0.067) )

At this time, the following timing violation message is output.
$hold((posedge CLK &&& \S&R ):16042 ps, (posedge D):16088 ps, 67 ps);

This message is correct.

When the SDF file contains the setup/hold times of posedge D and negedge D,
does the CVC check the timing violation based on the setup/hold time written in the line below,
regardless of the behavior (posedge or negedge) of the signal ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant