[sv-ac] question on inferred clocks

From: Lisa Piper <piper_at_.....>
Date: Tue Jan 08 2008 - 07:30:43 PST
I need a clarification on the inferred clock determination for
concurrent
assertions in the procedural block. From LRM section 16.14.5, pg366,
there
are two rules to infer clock for the concurrent assertions in the
procedural
block:

1. the clock to be inferred must be placed as the first term of the
event
control as an edge specifier
  -- does this mean that the inferred clock has to be edge expression
and only
the first term? if so, what is the reason for this restriction?

for example:
     always @(posedge clk1 or negedge clk2) begin
           A1: assert property (a |=> b);
     end

  the inferred clock for A1 will be just "posedge clk1" or "posedge clk1
or negedge clk2"?

2. The variables in clock expression must not be used anywhere in the
always or
initial block.
   -- Does this mean the clock variables should not be written to or
even read in the always or initial block?


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Jan 8 07:31:06 2008

This archive was generated by hypermail 2.1.8 : Tue Jan 08 2008 - 07:31:14 PST