[sv-ec] Jeda SV-EC errata: #9 Expression evaluation with cycle_delay

From: eugene zhang <eugene@jedatechnologies.com>
Date: Tue Aug 31 2004 - 00:40:33 PDT

 

Description:
   The expression evaluation with cycle_delay ( In Jeda, it is called
'timed expression') is a crucial mechanism to write the self-checking
testbench in effective way.
   This cycled expression evaluates the given expression within the
given cycle duration, and returns the boolean (1 or 0) upon evaluation
of given expressions. The result of multiple-expressions will be
'anded'.

   Bollowing syntax from sequence_exp definition, the cycled expression
has the following meanings:

   1) single delay cycle will evaluate the given expression after the
given delay

     <Example>
       if( ##10 ( bus.strobe == 1, bus.data = exp_data) ) begin
         ..

   2) delay cycle dulation to seek for the cycle when the given
expressions all becomes true.

       if( ##[5,10] ( bus.strobe == 1, bus.data == exp_data ) ) begin
         ..

   3) delay cycle dulation with '@' checks if the given expressions are
always true withing the given cycle dulation.

     <Example>
       if( ## @ [5,10] ( bus.strobe == 1, bus.error == 0 ) ) begin
         ..

The specific clocking event can be declared as:

      if( ##[5,10] @(posedge clk) ( bus.strobe==1, bus.data==exp ) begin
       ..

   <BNF>
  Suggested modification to the current BNF definition:

   A.8.4 Primaries

   primary ::=
     .
     .
     cycled_expression

  cycled_expression ::=
    cycle_delay_expression_range '(' expression { ',' expression } ')'

  cycle_delay_expression_range ::=
    '##' cycle_delay_exp_range_decl [ clocking_event ]

  cycle_delay_exp_range_decl ::=
    integral_number
    |
    identifier
    |
    '(' constant_expression ')'
    |
    '[' constant_expression ':' constant_expression ']'
    |
    '@' '[' constant_expression ':' constant_expression ']'

Note: non-terminal symbol in BNF is encapsulated in ' ' (single quote),
as bold characters can not be used in plain text.
Received on Tue Aug 31 00:40:40 2004

This archive was generated by hypermail 2.1.8 : Tue Aug 31 2004 - 00:40:57 PDT