verilog中if else和case的比較

2021-08-20 14:43:47 字數 954 閱讀 5773

比較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任務 任務必須包含在呼叫該任務的模組中。它可以有輸入輸出埠,任務的埠僅用來在模組和任務...