Re: [sv-ec] Clocking Blocks

From: Arturo Salz <Arturo.Salz_at_.....>
Date: Fri Feb 18 2005 - 09:58:01 PST
Swapnajit,

Your understanding is correct. In each of your examples 
there are four signals: in1, o1, cb.in1, cb.o1. Of these, the
only the signals inside the scope of the clocking block are
subjected to the clocking block's sampling/drive semantics,
and those are cb.in1 and cb.o1.

    Arturo

----- Original Message ----- 
From: "Swapnajit Chakraborti" <swapnaj@cadence.com>
To: <sv-ec@eda.org>
Sent: Friday, February 18, 2005 5:54 AM
Subject: [sv-ec] Clocking Blocks


> I have a small doubt regarding how to use
> clocking blocks.
> 
> Is it correct that only declaring a clocking
> block does not impact timings of sampling/drive of
> the signals declared inside it (See Example 1)? 
> We need to prepend the clocking block name with
> the signal (see Example 2) in order to see the
> synchronization and timing impact.
> 
> 
> Example 1:
> ----------
> 
> module m1;
>    ...
> 
>    clocking cb @(posedge clk);
>     input #2 in1;
>     output #2 o1;
>    endclocking
> 
>    ...
>    always @ (posedge clk)
>    begin
>       // No impact due to clocking block? Value of "o1" at
>       // posedge clk.
>       if (o1 != 1'b00)    
>       ...
>    end
>    ...
> 
> endmodule
> 
> 
> Example 2:
> ----------
> 
> module m1;
>    ....
> 
>    clocking cb @(posedge clk);
>     input #2 i1;
>     output #2 o1;
>    endclocking
> 
>    ...
>    always @ (posedge clk)
>    begin
>       // Impact due to clocking block? Value of "o1" driven
>       // after 2 timesteps from posedge clk.
>       if (cb.o1 != 1'b00)    
>       ...
>    end
>    ...
> 
> endmodule
> 
> 
> Although, it is somewhat clear from the examples in LRM, I didn't
> find it explicitly mentioned anywhere.
> 
> Thx,
> Swapnajit.
> 
Received on Fri Feb 18 09:58:16 2005

This archive was generated by hypermail 2.1.8 : Fri Feb 18 2005 - 09:58:51 PST