比較if-else_if-else和case:
1、if(a==2'b00)
語句1;
else if(a==2'b01)
語句2;
else
語句3;
case(a)
2'b00: 語句1;
2'b01: 語句2;
default: 語句3;
endcase
在這種情況下,判斷條件中只有乙個能滿足,不管先判斷哪個條件,都不影響結果,即可視為不存在優先順序關係。兩者綜合後的rtl和tech結果一樣。
2、if(a==1'b1)
語句1;
else if(b==1'b1)
語句2;
else
語句3;
case()
2'b10: 語句1;
2'b01: 語句2;
default: 語句3;
endcase
這種情況下,將else-if中的條件視為b==1'b1&&a!=1'b1,兩者邏輯就不一樣,沒有比較的必要。case語句可改為如下形式。
3、case()
2'b10: 語句1;
2'b01: 語句2;
2'b11: 語句1;
2'b00: 語句3;
endcase
這種情況下,rtl結果可能會不一樣,但tech結果一樣。
其他:1、無復位置位端
2、同步置位或復位(if語句將0或1賦給輸出),將最外層if語句作為復位或置位端。 fdr(同步d觸發器)
3、非同步復位或置位,必須要有if(!rst_n) data_out <= 1'b0 來復位或置位(1置位0復位) fdc(非同步d觸發器)
4、非同步復位端接入了可變的數值。lpm_dff
有點亂,以後有空再整理。
SAS巨集中 if else和if else的區別
sas巨集中 if else和if else的區別 data a set x do m 1 to 3 do q 1 to 5 if x q nan and m id and x q id m q then do id m q 1 put 有值 且id相等 id x q id m q 上面 是正常的i...
If else 條件判斷和If else巢狀
if 條件表示式 else if 條件表示式 else if 條件表示式 else if 條件表示式 else 1 乙個加油站為了鼓勵車主多加油,所以加的多有優惠。92號汽油,每公升6元 如果大於等於20公升,那麼每公升5.9 97號汽油,每公升7元 如果大於等於30公升,那麼每公升6.95 編寫j...
Verilog中的函式和任務
在高階程式語言中,為了避免在程式中多次重複編寫特定的例行程式,可以使用子程式和函式。verilog語言也提供類似的功能,即verilog的函式和任務。它可以把大型程式模組化,從而使 更加容易理解。1。verilog任務 任務必須包含在呼叫該任務的模組中。它可以有輸入輸出埠,任務的埠僅用來在模組和任務...