X hits on this document

140 views

0 shares

0 downloads

0 comments

24 / 42

PROCESSING VECTOR DATA

SOME EXAMPLES (CONTINUED):

EXAMPLE 3 – Vector data in OVF is print-on-change.  Process to add a new pin and to move some timing edges of several input signals.  Input and output formats are both event-based.  Reminder – format is:

EDGE_SHIFT/ALIGN  pinlist @ rise_edge, fall_edge, other_edge ;

   .  .  .

PROC_BLOCK

 BEGIN

 ADD_PIN newclk = 0 WHEN clk = 1, OTHERWISE 1;

 CYCLE = 30 ;{ necessary for edge_align }

 EDGE_SHIFT pin1 @ 1.5, 1.8, 1;

 EDGE_SHIFT bus @ 14.5;

 EDGE_SHIFT newclk @ 1.0, -1.0, 0; { make it non-overlap }

 EDGE_ALIGN mode @ 5, 25, 0;

 CHECK_WINDOW * @ 28, 29;

 END;

TVF_BLOCK

  .  .  .

EXAMPLE 4:  Vector data in OVF contains bidirectional pins with input/output data not separated (say from a VCD file).  Process vectors to separate input data from output data, then mask all outputs for first half of cycle:

  .  .  .

PROC_BLOCK

 BEGIN

{ separate I/O }

 BIDIRECT_CONTROL bus1 = input WHEN (enb & ctl1) = 1;

 BIDIRECT_CONTROL bus2 = output WHEN (~enb | ~ctl2) = 1;

{ mask for first half of cycle }

 CYCLE 100;

 MASK_PINS bus1.O, bus2.O @ 0, 50 –CYCLE;

 END;

TVF_BLOCK

  .  .  .

Document info
Document views140
Page views147
Page last viewedFri Dec 09 00:42:17 UTC 2016
Pages42
Paragraphs1154
Words5926

Comments