verilog中case判斷多個情況 verilog中的case語法使用,求助?
verilog中的case語法使用,求助?總結(jié)一些常用和遺忘的語法。這并不是說如果您在代碼中定義一個reg類型變量,合成器將合成一個寄存器。大小寫必須在always塊中,always中指定的變量必須是
verilog中的case語法使用,求助?
總結(jié)一些常用和遺忘的語法。這并不是說如果您在代碼中定義一個reg類型變量,合成器將合成一個寄存器。大小寫必須在always塊中,always中指定的變量必須是reg類型。這是語法規(guī)則,只能遵守。在編寫代碼時,不加觸發(fā)器(不加觸發(fā)器邊),最后的合成還是一個組合電路。Case還應(yīng)該添加default,否則它將被集成到內(nèi)存中。
verilog語言always中不完整if語句與case同時存在的問題?
首先,從軟件的角度來看,if加上幾個else if可以形成一個類似case的函數(shù),但需要注意的是,如果else if有優(yōu)先級,即如果第一個if不成立,那么如果這個if組合中有10個elseif條件,則判斷第二個else,然后邏輯需要制作一個硬件電路,在一個時鐘周期內(nèi)可以判斷10個條件。這是不明智和不合理的,很容易造成時機不符。雖然if有這樣的缺點,但它的優(yōu)點是每個elseif可以判斷不同的條件,一般來說比較靈活,如果判斷條件只是一個向量的不同值,那么case是最合適的。如果判斷條件是多個不同的向量或變量,那么If更合適。當(dāng)然,你可以選擇case和if的組合,這樣靈活性和時機會更好