Verilog Case : don't care

Guest #2907697
Rate this post
useful
not useful
Hi!
simple question
can I use this kind of syntax into verilog :
1
 case(Fetched[24:4])
2
                21'bzzzzzzzzzzzzzzzzzzzz0 :nextstate <= ADD;
3
                21'bzzzzzzzzzzzzzzzzz0zz1 :nextstate <= ADD;
4
                21'b000zzzzzzzzzzzzzz1001 :nextstate <= MUL; //mult
5
                21'b01zzzzzzzzzzzzzzz1001 :nextstate <= MUL;
6
                21'b10z00zzzzzzzz00001001 :nextstate <= MUL;
7
                21'b10z00zzzzzzzz00001001 :nextstate <= SDS;
8
                21'b100101111111111110001 :nextstate <= BAE;
9
                  default: nextstate <= UNKNOW; //should not happens
10
              endcase

I have no error while simulating but have strange result
(I'm student working on sim vision)

thanks all :)
#2909804
Rate this post
useful
not useful
Lattice User wrote:
> 'z' ist not don't care, it stands for high impedance, a clearly defined
> state, at least for the simulator.

It is actually casez that is preferable here. Specifically for this 
reason Verilog defines '?' as synonym for 'z'. With casex you wouldn't 
be able to distinguish unknowns and dont-cares since both use the same 
symbol.

Kind regards
Marcus
Guest #2909882
Rate this post
useful
not useful
Marcus Harnisch wrote:
> It is actually casez that is preferable here. Specifically for this
> reason Verilog defines '?' as synonym for 'z'. With casex you wouldn't
> be able to distinguish unknowns and dont-cares since both use the same
> symbol.

You are right, see IEEE Std 1364-2001 Chapter 9.5.1
To make the intent more vissible i suggest using casez with '?'.

(Sometimes i have to ask what standard writer are smoking)

Reply

Please log in before posting.

or

Log in with Google account

Registration is free and takes only a minute.

Register now