RE: [sv-ec] When do clocking output skew 0 values show up on a var output?

From: Warmke, Doug <doug_warmke_at_.....>
Date: Wed Mar 14 2007 - 22:41:49 PDT
Jonathan, Gordon, SV-EC,

I have added text to SV-890-8-part1.pdf that attempts to capture
your conclusions here.  I liked Jonathan's final analysis.  I agree
with Gordon that the system can glitch clocking output signals in
edge cases only.  I provided text and an example in 15.14.2.

SV-890-8-part1 also includes some wording cleanups proposed by
Arturo. These have no semantic impact on the proposal. 

Finally, Dmitry's suggestions 1 and 2 were incorporated.
See the attachments in
   http://eda.org/svdb/bug_view_page.php?bug_id=0000890.

Thanks and Regards,
Doug

> -----Original Message-----
> From: owner-sv-ec@server.eda.org 
> [mailto:owner-sv-ec@server.eda.org] On Behalf Of Jonathan Bromley
> Sent: Tuesday, March 13, 2007 7:44 AM
> To: Vreugdenhil, Gordon; SV_EC List
> Subject: RE: [sv-ec] When do clocking output skew 0 values 
> show up on a var output?
> 
> Gord,
> 
> Ouch.
> 
> > For the "normal" cases of having drives appear before the clocking
> > event, this is fine.
> 
> I don't think that *is* the "normal" case.  Recall that we 
> should not attempt to read input clockvars until after @cb,
> because otherwise we may have a read/update race.  But I
> probably want to *use* the input clockvar values in 
> constructing my output stimulus.  So the typical flow
> of execution of a reactive testbench (reactive in the sense 
> that it reacts to the DUT's behaviour) - for example, one
> doing handshaking on a DUT output - would be...
> 
>   @cb;
>   local_variable = cb.invar;
>   cb.outvar <= some_function(local_variable);
> 
> Using this idiom, I get testbench-controlled feedback from 
> DUT outputs back to DUT inputs corresponding to a logic 
> path with a register in it.  (Note, in passing, that I 
> can't directly use a clocking block to mimic combinational 
> feedback from DUT output to DUT input, unless I use 
> the dreaded input #0.)
> 
> 
> >     initial begin
> >       ## 1;
> >       cb.a <= 0;
> >       @(x);
> >       cb.a <= 1;
> >     end
> > 
> > Assume that the above is all active region set code but that
> > "x" is an event that happens as a result of re-active
> > stimulus in the same time step.
> 
> I agree with your analysis, but I think there's a way out.  
> As you say, this is a *very* forced example.  The key point, 
> though, is that we're making two separate passes through 
> Re-NBA.  The guarantee of last-write-wins can only reasonably
> be enforced for a single pass through Re-NBA.  For 
> non-pathological code, this (I think) is OK.  So all we need
> to do is to find a form of words that expresses this....
> 
> I think your last paragraph is close.  Maybe we could just
> avoid making any explicit claims about last-write-wins, and
> simply say that a clocking drive schedules an assignment to
> its target clocking signal in the Re-NBA region of the 
> appropriate timeslot, and that assignment shall supersede 
> any other pending assignment to the same variable in 
> that Re-NBA region?
> 
> It just emphasises once again that the only really hygienic
> usage of clocking blocks is to have their clock event happen
> in the active region set, and all manipulation of their 
> clockvars happen in the reactive region set.
> -- 
> Jonathan Bromley, Consultant
> 
> DOULOS - Developing Design Know-how
> VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services
> 
> Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, 
> Hampshire, BH24 1AW, UK
> Tel: +44 (0)1425 471223                   Email: 
> jonathan.bromley@doulos.com
> Fax: +44 (0)1425 471573                           Web: 
> http://www.doulos.com
> 
> The contents of this message may contain personal views which 
> are not the views of Doulos Ltd., unless specifically stated.
> 
> -- 
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
> 
> 
> 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed Mar 14 22:42:05 2007

This archive was generated by hypermail 2.1.8 : Wed Mar 14 2007 - 22:42:12 PDT