I’m experiencing a timing violation at the start of the simulation when reset is active.
This is because of the unknowns which are present at the start of the simulation.
Is there any way to specify which time the timing checks will be enabled or disabled?
I tried to use the $disable_warning and $enable_warning, but I’m having an error saying that this system task has not been registered during simulation.
I’m using NC. Does this mean that this simulator does not recognize this system task?
It’s possible to write timing checks so that that they are only active when reset is inactive. But if the code does not to that, you will need to use tool specific commands to enable and disable them. This forum is not for tool specific help.
Hi Reuben,
May I ask you to help to introduce the usage of $enable_warnings and $disable_warnings? I find somewhere but have no idea to use this system functions and I dont know the parameter in this system function. Glad to hear from you. Thank you.
The $enable_warnings and $disable_warnings are system tasks that just simply disable any warnings caused by timing violations.
In my situation, I put this at the early time of simulation just when the simulation has started. This is because of the unknowns
present at the start. These unknowns causes timing violations.
Example:
// This is in my top where I instantiate the DUT and testbench
initial begin
$disable_warnings; // Disable warnings caused by timing violations as soon as simulation started
$assertoff; // Disable assertions as soon as simulation started
#(`INITIAL_RST_DUR); // Wait until reset is released
$enable_warnings; // Enable warnings caused by timing violations
$asserton; // Enable assertions
end