C
Chris F Clark
Guest
I'm trying to understand how don't care works in edge-sensitive
sequential UDPs. My naive impression is that a ? does not map to a
transition (i.e. it only applies to steady-state signals and not ones
in transition). However, I'm trying to find some text in the spec
that supports that interpretation.
I'm reading a draft copy of the Verilog Spec and looking at the UDP
semantics. I find the following statements and examples:
8.1.4 UDP State table
It is is illegal to have the same combination of
inputs, including edges, specified for different outputs.
8.1.6 summary of symbols
? Iteration of 0, 1, x
- No change
(vw) Value change from v to w
8.4 Edge-sensitive sequential UDPs
Teh following describes a rising edge D flip-flop:
// clock data q q+
// obtain output on rising edge of clock
(01) 0 : ? : 0 ;
(01) 1 : ? : 1 ;
(0?) 1 : 1 : 1 ;
(0?) 0 : 0 : 0 ;
// ignore negative edge of clock
(?0) ? : ? : - ;
// ignore data changes on steady clock
? (??) : ? : - ;
My interpretation of the last line is that it does not apply to any
edges of the clock (only when the clock is "steady" at 0, 1, or x).
If the ? applied to transitions, then this line would apply to
transitions and in some cases violate the rule quoted from 8.1.4 about
two lines woith different outputs applying to the same combination of
inputs.
Along the same line, would the table have the same meaning if the last
line was written as below?
// ignore data changes on steady clock
? ? : ? : - ;
Thank you,
-Chris Clark
sequential UDPs. My naive impression is that a ? does not map to a
transition (i.e. it only applies to steady-state signals and not ones
in transition). However, I'm trying to find some text in the spec
that supports that interpretation.
I'm reading a draft copy of the Verilog Spec and looking at the UDP
semantics. I find the following statements and examples:
8.1.4 UDP State table
It is is illegal to have the same combination of
inputs, including edges, specified for different outputs.
8.1.6 summary of symbols
? Iteration of 0, 1, x
- No change
(vw) Value change from v to w
8.4 Edge-sensitive sequential UDPs
Teh following describes a rising edge D flip-flop:
// clock data q q+
// obtain output on rising edge of clock
(01) 0 : ? : 0 ;
(01) 1 : ? : 1 ;
(0?) 1 : 1 : 1 ;
(0?) 0 : 0 : 0 ;
// ignore negative edge of clock
(?0) ? : ? : - ;
// ignore data changes on steady clock
? (??) : ? : - ;
My interpretation of the last line is that it does not apply to any
edges of the clock (only when the clock is "steady" at 0, 1, or x).
If the ? applied to transitions, then this line would apply to
transitions and in some cases violate the rule quoted from 8.1.4 about
two lines woith different outputs applying to the same combination of
inputs.
Along the same line, would the table have the same meaning if the last
line was written as below?
// ignore data changes on steady clock
? ? : ? : - ;
Thank you,
-Chris Clark