[sv-bc] Case Statement Enhancement Proposal Idea

From: Clifford E. Cummings <cliffc_at_.....>
Date: Wed Jul 04 2007 - 12:21:14 PDT
Hi, All -

Matt - could I have time to bounce this idea off of the BC on Monday?

Don & Heath are well aware of the simple 2-to-4 decoder example that 
we use when teaching synthesis with full_case, priority case or unique case

always_comb begin
   y = '0;
   unique case ({en,a})
     3'b100: y[a]='1;
     3'b101: y[a]='1;
     3'b110: y[a]='1;
     3'b111: y[a]='1;
   endcase
end

In this example, if you remove the unique keyword, this simulates and 
synthesizes to a very efficient 2-to-4 decoder, but with the unique 
keyword, this still simulates like a 2-to-4 decoder and issues a 
run-time warning whenever en=0 and the always_comb block is executed. 
It also optimizes away the en-input to give the wrong logic when synthesized.

If the default (y = '0;) assignment could be moved to just inside of 
the case statement and always executed before testing the other case 
items, the problem would be solved.

Attached is a first-cut proposal to address this problem. If the idea 
receives favorable attention, I will take it as an action item to 
make a formal proposal.

Regards - Cliff

----------------------------------------------------
Cliff Cummings - Sunburst Design, Inc.
14314 SW Allen Blvd., PMB 501, Beaverton, OR 97005
Phone: 503-641-8446 / FAX: 503-641-8486
cliffc@sunburst-design.com / www.sunburst-design.com
Expert Verilog, SystemVerilog, Synthesis and Verification Training

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Received on Wed Jul 4 12:21:46 2007

This archive was generated by hypermail 2.1.8 : Wed Jul 04 2007 - 12:22:16 PDT