作者Zephyr750 (紅蓮西風750)
看板Electronics
標題Re: [問題] 請問一個Verilog語法問題
時間Wed Jun 15 23:40:51 2011
※ 引述《potatojerry (智)》之銘言:
: 請問一下Verilog的case語法,如果選擇的是一個範圍時,要怎麼寫呢?
: EX.
: always@(sel)
: begin
: case(sel)
: 0: xx
: 1: xx
: .....
: 100:
: endcase
: end
排版請好好排
: 若 0~20, 20~50, 50~100三個要選擇的範圍都一樣
: 這樣
: case(sel)
: <20: xx
: 20<, <50: oo
: 50<=, <100: xxx
: endcase
: 請問可以這樣寫嗎? 還是該怎麼寫呢?
: 感謝~
//合成一個....不知道什麼東西的邏輯電路XDDD
//它不受clk控制,輸出因輸入改變馬上反應
assign xEn = (sel<20)? 2'b01 : (sel<50)? 2'b10 : 2'b11 ;
always@(posedge clk) //合成一個2bit的多工器(再加正反器做時序控制)
begin
if(xEn == 00) xxx;
else if(xEn == 01) oxox;
else if(xEn == 10) xoxo;
else oo;
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.224.25
→ sasako:這種寫法會有priority 假如想parallel 還是得換寫法 06/16 08:36
→ sasako:不過結果會是相同的 06/16 08:36
→ sasako:要加上clk還是加上reset比較好 不然用nLint檢查語法 會叫錯 06/16 08:40