[sv-bc] 1364 14.2.4.4: ifnone condition

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Mon Feb 20 2006 - 04:52:47 PST
Hi,

In 1364-2005, 14.2.4.4 says, 

"The ifnone keyword is used to specify a default state-dependent path delay when all other conditions for the
path are false. The ifnone condition shall specify the same module path source and destination as the state-dependent
module paths. The following rules apply to module paths specified with the ifnone condition:

- Only simple module paths may be described with an ifnone condition.

- The state-dependent paths that correspond to the ifnone path may be either simple module paths or edge-sensitive paths."


According to this, the following code should be OK:

if (((eb == 1'b0))||((se == 1'b1)))
    (posedge ck *> (o +:d)) = (delay_ck_o_01_21, delay_ck_o_10_22);
 
ifnone (ck *> o) = (delay_ck_o_01_23, delay_ck_o_10_24);


However, one vendor claims that this part of the standard is out of date, that the ifnone can contain edge-sensitive paths, and that both the conditional and ifnone module paths should be specified the same way, either both simple or both edge-sensitive.

That is, either

  if (...)
      (in *> out) = y1;
   ifnone
      (in *> out) = x1;

OR

   if (...)
      (posedge clk *> (out +: foo) = y2;
   ifnone
      (posedge clk *> (out +: foo) = x2;


Comments, please.

Thanks,
Shalom


Shalom Bresticker
Intel Jerusalem LAD DA
+972 2 589-6852
+972 54 721-1033
I don't represent Intel 
Received on Mon Feb 20 04:52:54 2006

This archive was generated by hypermail 2.1.8 : Mon Feb 20 2006 - 04:54:29 PST