Case statement in Verilog

Status
Not open for further replies.

hossam abdo

Full Member level 2
Joined
Mar 13, 2011
Messages
122
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,298
Location
Alexandria, Egypt, Egypt
Visit site
Activity points
2,064
Hello

addrs is 5 bits

case (addrs)
5'h10: statement; //case 1
5'h11: statement; //case 2
5'h12: statement; //case 3
5'h20: statement; //case 4
default: statement;
endcase

In cases(2,3), the MSB is dontcare, can I select only the first 4 bits withen the same case statement?

Thanks in advance.
 


It seems the definition a bit error . If it's a 5 bit addr, it cannot represent 5'h20 as it can only be 0 or 1 .
i guess the addr should be
5'b01000 //case 1 , 5'h08
5'b01001 //case 2 , 5'h09
5'b01010 //case 3 , 5'h0A
5'b10000 //case 4 , 5'h10

or 6 bit addr
6'b010000 //case 1 , 6'h10
6'b010001 //case 2 , 6'h11
6'b010010 //case 3 , 6'h12
6'b100000 //case 4 , 6'h20



Then actually you can use only 3 bit of the addr to check the case

assign case_addr = {addrs[4],addr[1],addr[0]};

case (addrs)
3'b000: statement; //case 1
3'b001: statement; //case 2
3'b010: statement; //case 3
3'b100: statement; //case 4
default: statement;
endcase
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…