設(shè)計(jì)背景:
不管是在什么軟件和硬件語(yǔ)言,我們?cè)谖覀兊拇a中都或多或少的用到這兩條語(yǔ)句,if..else與case語(yǔ)句,今天我們將學(xué)習(xí)verilog中的這兩條語(yǔ)句,其實(shí)不管在什么語(yǔ)言中這兩個(gè)語(yǔ)句都是一樣的邏輯。
設(shè)計(jì)原理:
if...else 條件語(yǔ)句的作用是根據(jù)指定的端盤條件是否滿足來(lái)確定下一步要執(zhí)行的操作他們的書(shū)寫(xiě)格式如下
(1)if (條件語(yǔ)句) (2)if(條件語(yǔ)句) (3)if(條件語(yǔ)句)
語(yǔ)句 語(yǔ)句 語(yǔ)句
else else if(條件語(yǔ)句)
語(yǔ)句 語(yǔ)句
else
語(yǔ)句
(1)語(yǔ)句是if(條件語(yǔ)句)滿足則條件成立,也就是這個(gè)邏輯執(zhí)行結(jié)果為1,則執(zhí)行條件語(yǔ)句成立執(zhí)行的語(yǔ)句,如果不滿足,就執(zhí)行else給出的條件語(yǔ)塊,然后才推出這個(gè)條件語(yǔ)句。
(2)語(yǔ)句是if(條件語(yǔ)句)滿足則條件成立,也就是這個(gè)邏輯執(zhí)行結(jié)果為1,則執(zhí)行條件語(yǔ)句成立執(zhí)行的語(yǔ)句,如果不滿足則直接推出條件語(yǔ)句。
(3)語(yǔ)句是if(條件語(yǔ)句)滿足則條件成立,也就是這個(gè)邏輯執(zhí)行結(jié)果為1,則執(zhí)行條件語(yǔ)句成立執(zhí)行的語(yǔ)句,如果不滿足,就判斷else if(語(yǔ)句塊)是否滿足,如果滿足就就執(zhí)行else if 條件給出的語(yǔ)句,如果也不滿足這個(gè)條件就執(zhí)行else 給出的語(yǔ)句,然后執(zhí)行完就退出條件語(yǔ)句。
if ... else 條件語(yǔ)句也允許語(yǔ)句的嵌套也就是
if(...)
..
else
if()
...
else
等語(yǔ)句塊
代碼演示 :
module led_run (a, b, c);
input a, b; //定義輸入輸出
output reg c;
always @ (*)
if(a) //判斷a是否為1
c = b; //如果是1的話,就是b的值給c
else
c = ~b; //如果不是1的話,就把b的反值給c
endmodule
仿真圖:
仿真中我們可以看到和我們寫(xiě)的分析邏輯一樣,a = 1 的時(shí)候。b = 0, c = 0 ,a = 0的時(shí)候, b = 0,c = 1 ........
case 語(yǔ)句是另一種可以實(shí)現(xiàn)多路分支控制的分支語(yǔ)句,和使用if - else 相比,采用case 語(yǔ)句實(shí)現(xiàn)多路控制看起來(lái)代碼邏輯看起來(lái)更加清楚明了。
case (控制表達(dá)式)
<分支表達(dá)式1> : 語(yǔ)句塊 1
<分支表達(dá)式2> : 語(yǔ)句塊 2
<分支表達(dá)式3> : 語(yǔ)句塊 3
...............
default : 語(yǔ)句塊;
endcase
控制表達(dá)式代表著對(duì)程序流向進(jìn)行控制的控制信號(hào),各個(gè)分支語(yǔ)句表達(dá)式代表著控制表達(dá)式的狀態(tài)取值,通常分支表達(dá)式都是一些常量表達(dá)式,各個(gè)語(yǔ)句在分支表達(dá)式滿足的情況下執(zhí)行相應(yīng)的語(yǔ)句塊語(yǔ)句,最后有一個(gè)關(guān)鍵字default 分支項(xiàng),這個(gè)項(xiàng)可以缺失,在case語(yǔ)句中分支語(yǔ)句的值各不相同,如果相同就會(huì)出現(xiàn)矛盾的現(xiàn)象,這應(yīng)該不是我們想要的。
代碼演示 :
0moduleled_run (a,b,sel,c);
1
2 inputa,b; //定義輸入輸出
3 input[1:0]sel;//輸入選擇位
4 outputregc;
5
6 always@(*)
7 case(sel)
8 2'b00 :c =a;//選擇位為0,把a值給c
9 2'b01:c =b; //選擇位為1,把b值給c
10 2'b10:c =~a;//選擇位為2,把a反值給c
11 2'b11:c =~b;//選擇位為3,把a反值給c
12 default:c =0;//否則c =0
13 endcase
14
15endmodule
仿真圖:
仿真中我們可以看到和我們寫(xiě)的分析邏輯一樣,a = 1 的時(shí)候。b = 0,sel = 1;c = 0 ,a = 1的時(shí)候, b = 0,sel = 0,c = 1 ........
-
Case
+關(guān)注
關(guān)注
0文章
27瀏覽量
13402
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論