[sv-ec] Clocking Blocks and #0 Semantics

From: Alsop, Thomas R <thomas.r.alsop_at_.....>
Date: Mon Sep 22 2008 - 11:36:30 PDT
Hi sv-ec team, 

 

I'm trying to understand the semantics of using the #0 skew of clocking
blocks WRT scheduling and potential race conditions and am hoping you
can help me out.

 

My understanding of the LRM is that for testbench (TB) inputs, when I
use programs and clocking blocks (CB), I am guaranteed to avoid race
conditions.  If I have two signals coming from my DUT into my TB, one of
which is a clock and the other of which is a non-clock input, how is
this guaranteed to not be a race condition if I am using #0 on this
non-clock input signal?  If the non-clock input signal is seen in the
observed region, this means that the clock and the non-clock input are
seen at the same time in the TB and would hence be a race.

 

Would I be correct in assuming that had I not had a CB, that there
really would be a race condition with the clock and the non-clock input?
Would I also be correct in assuming that by virtue of using a CB and
putting the non-clock input in it, that the non-clock input will be seen
by the rest of the TB program code _after_ the clock event of the
clocking block?

 

Please let me know if I need to give an example.  

 

Thanks, -Tom


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Sep 22 11:48:39 2008

This archive was generated by hypermail 2.1.8 : Mon Sep 22 2008 - 11:49:21 PDT