Case-statement in synchronous process.

Status
Not open for further replies.

khaila

Full Member level 2
Joined
Jan 13, 2007
Messages
121
Helped
5
Reputation
10
Reaction score
1
Trophy points
1,298
Activity points
2,105
synchronous process with non blocking

when I have a case statment in a synchronous process, can I leave WHEN OTHERS with no value???

In Aynchronous process I should insert values to make sure that no latch will be produced. but what about synchronous process???
 

Yes, I think so . It will hold the last value if case-statement was not met.
 

can you please repeat your question in easy language.i do not get it
 

No. A synchronous process will simply create a register. As such, there is no requirement for branches to be "complete". Be careful if you're relying on ordered assignments, though. For instance, the following:

signal1 = 1'b0;
case(condition_sig)
1'b0:
signal1 = 1'b1;
endcase

Some synthesizers (particularly if you have the synopsys_full and synopsys_parallel options on) will not do preemption and simply ignore the blocking statements if this is a clocked block. That is, it will treat the blocking assignment as non-blocking.

To avoid this, a rule of thumb is to always use non-blocking assignments in registered blocks.
 

Hi..

You can write as

when others=>
null;

end case;l

Hope it helps

Thanks
 

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