Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top