1樓:海天盛
case變成ca***再加上default:y=1'b0就可以解決此問題,使用方法。
如下參考:
1.首先,右鍵單擊專案並單擊newsource以建立一個新的**檔案。
2.選擇使用者文件建立一個自定義文件文件,檔名和字尾隨意。
3.建立完成後,切換到檔案面板底部,雙擊開啟檔案,根據自己喜歡的形式輸入資料。
4.寫完資料檔案後,右鍵單擊專案,單擊newsource,然後選擇verilog測試裝置,輸入檔名並繼續,選擇要測試的模組,然後建立檔案。
5.雙擊開啟檔案,可以看到要測試的模組塊的輸入對應一些reg暫存器型別,輸出對應一些wire型別。新增兩個引數常量,然後為for迴圈新增計數變數j,並新增一個向量陣列來儲存檔案讀取的資料。
6.下面是程式生成的用於例項化和連線接收測試模組的**。只需編寫end之間的測試**。
2樓:匿名使用者
always@(sel or a or b or c or d)begin
case(sel)
2'b00:y=a;
2'b01:y=b;
2'b10:y=c;
2'b11:y=d;
default:y=1'bz; //這裡給一個預設值就行了endcaseend
3樓:匿名使用者
把case 變成ca***試試 再加上default:y=1'b0;
verilog中的case語法使用,求助!
4樓:宋桓公
是不是沒寫endcase啊, 每個加上begin endcase(ihex)
4'b0000:
begin
seg1=7'b1100110;
seg2=7'b0111111;
seg3...
end4'b0001:
begin
seg1=7'b1100110;
seg2=7'b0111111;
seg3...
endendcase
5樓:黑炎之龍斬者
case(ihex)
=14』11001100111111;
.....
endcase
6樓:檢霽杜鵾
預設是的。包括if
else
也是一樣。
但是可以利用begin
end結構讓其執行中間所有的語句。
不知道你是不是這個意思,歡迎追問~
在verilog中為什麼能用case語句儘量不用if語句?
7樓:匿名使用者
首先從軟體角度考慮
if加若干個else if可以組成一個與case類似的功能但需要注意的是if-else if是有優先順序的,也就是第一個if不成立的話,才判斷第二個else if
那麼問題就來了,如果這個if組合裡有10個else if條件,那麼邏輯就需要做一個在一個時鐘週期內能判斷10個條件的硬體電路來,這樣是不明智也是不合理的,比較容易造成時序不滿足
雖然說if有這樣的缺點,但它的優點是每個else if都可以判斷不同的條件,比較靈活
一般來說,如果判斷的條件只是一個向量的不同值,那麼case是最合適的如果判斷的條件是許多不同的向量或者變數,那麼if還是比較合適的當然也可以選擇case和if的組合,這樣靈活性和時序都比較好
8樓:匿名使用者
case語句在編譯成硬體電路後,各個分支之間是平行的,優先順序是相同的;
if語句則具有優先順序。
verilog case語句的一點問題
9樓:匿名使用者
可以,最好是用一個wire(或者reg) a 等於表示式,然後在case(a); 還有上式中s1s2是什麼關係?乘的話最好做成乘法器,然後結果再來相加
Verilog中與的區別
verilog中 與 的區別為 性質不同 計算結果不同 引數不同。一 性質不同 1 是位運算子,表示是按位與。2 是邏輯運算子,表示是邏輯與。二 計算結果不同 1 的計算結果為十進位制數。2 的計算結果為true或false。三 引數不同 1 的引數為進位制數,可以是二進位制 十進位制 十六進位制數...
c語言switch case中的case1,case2,其中的1 2這些數學意思是
給你舉個例子吧 switch xyz switch case語句的執行順序是,將變數xyz的值與各個case逐個進行比較。當變數xyz的值是0時,執行dotaskzero 並退出switch case語句體 當變數xyz的值不是0 而是1時,執行dotaskone 並退出switch case語句體...
VB中Case語句有點不明白,VB中Case是什麼意思
if a 1 then 事件a if a 2 then 事件b if a 3 then 事件c if a 4 then 事件d if a 5 then 事件e 轉換為case 語句 select case a case 1 事件acase 2 事件bcase 3 事件ccase 4 事件dcase ...