Verilog語言 if 語句
三種形式的if語句:
1)if(表達式)語句。如
if(a>b)
out1 = int1;
2)if(表達式)
語句;
else
語句;如
if(a>b)
out1 = int1;
else
out1 = int2;
3)if(表達式1)
語句1;
else if(表達式2) 語句2;
else if(表達式3) 語句3;
…………………。
else if(表達式m) 語句m;
else 語句n;
條件語句必須在過程塊語句中是用(initial和always語句),除了這兩個語句引導的bedin end塊中可以編寫條件語句外,模塊中的其他地方都不能編寫。
在verilog中為什么能用case語句盡量不用if語句
首先從軟件角度考慮
if加若干個else if可以組成一個與case類似的功能
但需要注意的是if-else if是有優先級的,也就是第一個if不成立的話,才判斷第二個else if
那么問題就來了,如果這個if組合里有10個else if條件,那么邏輯就需要做一個在一個時鐘周期內能判斷10個條件的硬件電路來,這樣是不明智也是不合理的,比較容易造成時序不滿足
雖然說if有這樣的缺點,但它的優點是每個else if都可以判斷不同的條件,比較靈活
一般來說,如果判斷的條件只是一個向量的不同值,那么case是最合適的
如果判斷的條件是許多不同的向量或者變量,那么if還是比較合適的
當然也可以選擇case和if的組合,這樣靈活性和時序都比較好
在verilog中為什么能用case語句盡量不用if語句
首先從軟件角度考慮if加若干個else if可以組成一個與case類似的功能但需要注意的是if-else if是有優先級的,也就是第一個if不成立的話,才判斷第二個else if那么問題就來了,如果這個if組合里有10個else if條件,那么邏輯就需要做一個在一個時鐘周期內能判斷10個條件的硬件電路來,這樣是不明智也是不合理的,比較容易造成時序不滿足雖然說if有這樣的缺點,但它的優點是每個else if都可以判斷不同的條件,比較靈活一般來說,如果判斷的條件只是一個向量的不同值,那么case是最合適的如果判斷的條件是許多不同的向量或者變量,那么if還是比較合適的當然也可以選擇case和if的組合,這樣靈活性和時序都比較好。
轉載請注明出處華閱文章網 » verilogif語句