浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » EDA/PLD

Verilog HDL條件語(yǔ)句

發(fā)布時(shí)間:2008/5/28 0:00:00 訪問次數(shù):1790

4.7 條件語(yǔ)句
if 語(yǔ)句的語(yǔ)法如下:
if(condition_1)
procedural_statement_1

2004-08-16 第25頁(yè),共41頁(yè)
版權(quán)所有,侵權(quán)必究


絕密
verilog hdl 入門教程請(qǐng)輸入文檔編號(hào)

{else if(condition_2)

procedural_statement_2}

{else

procedural_statement_3}

如果對(duì)condition_1 求值的結(jié)果為個(gè)非零值,那么procedural_statement_1 被執(zhí),如果
condition_1 的值為0 、x 或z ,那么procedural_statement_1 不執(zhí)行。如果存在一個(gè)else 分支,那么這
個(gè)分支被執(zhí)行。以下是一個(gè)例子。

if(sum < 60)

begin

grade = c;

total_c = total _c + 1;

end

else if(sum < 75)

begin

grade = b;

total_b = total_b + 1;

end

else

begin

grade = a;

total_a = total_a + 1;

end

注意條件表達(dá)式必須總是被括起來,如果使用if - if - else 格式,那么可能會(huì)有二義性,如下例
所示:

if(c l k)
if(r e s e t)
q = 0;
else
q = d;


問題是最后一個(gè)else 屬于哪一個(gè)if? 它是屬于第一個(gè)if 的條件(clk)還是屬于第二個(gè)if的條件
(reset)? 這在verilog hdl 中已通過將else 與最近的沒有else 的if 相關(guān)聯(lián)來解決。在這個(gè)例子中,
else 與內(nèi)層if 語(yǔ)句相關(guān)聯(lián)。

以下是另一些if 語(yǔ)句的例子。
if(sum < 100)
sum = sum + 10;
if(nickel_in)
deposit = 5;


2004-08-16 第26頁(yè),共41頁(yè)
版權(quán)所有,侵權(quán)必究


絕密
verilog hdl 入門教程請(qǐng)輸入文檔編號(hào)

elseif (dime_in)

deposit = 10;

else if(quarter_in)

deposit = 25;

else

deposit = error;

書寫建議:

1、條件表達(dá)式需用括號(hào)括起來。

2、若為if - if 語(yǔ)句,請(qǐng)使用塊語(yǔ)句 begin --- end :

if(c l k)

begin

if(r e s e t)

q = 0;

else

q = d;

end

以上兩點(diǎn)建議是為了使代碼更加清晰,防止出錯(cuò)。
3、對(duì)if 語(yǔ)句,除非在時(shí)序邏輯中,if 語(yǔ)句需要有else 語(yǔ)句。若沒有缺省語(yǔ)句,設(shè)計(jì)將產(chǎn)生一
個(gè)鎖存器,鎖存器在asic設(shè)計(jì)中有諸多的弊端(可看同步設(shè)計(jì)技術(shù)所介紹)。如下一例:
if (t)
q = d;
沒有else 語(yǔ)句,當(dāng)t為1(真)時(shí),d 被賦值給q,當(dāng)t為0(假)時(shí),因?yàn)闆]有else 語(yǔ)句,電路
保持 q 以前的值,這就形成一個(gè)鎖存器。

4.8 case 語(yǔ)句
case 語(yǔ)句是一個(gè)多路條件分支形式,其語(yǔ)法如下:
case(case_expr)
case_item_expr{ ,case_item_expr} :procedural_statement

. . .

. . .

[default:procedural_statement]

endcase

case 語(yǔ)句首先對(duì)條件表達(dá)式case_expr 求值,然后依次對(duì)各分支項(xiàng)求值并進(jìn)行比較,第一個(gè)與

條件表達(dá)式值相匹配的分支中的語(yǔ)句被執(zhí)行?梢栽1 個(gè)分支中定義多個(gè)分支項(xiàng);這些值不需要互
斥。缺省分支覆蓋所有沒有被分支表達(dá)式覆蓋的其他分支。
例:

case (hex)
4'b0001 : led = 7'b1111001; // 1


2004-08-16 第27頁(yè),共41頁(yè)
版權(quán)所有,侵權(quán)必究


絕密
verilog hdl 入門教程請(qǐng)輸入文檔編號(hào)

4'b0010 : led = 7'b0100100; // 2
4'b0011 : led = 7'b0110000; // 3
4'b0100 : led = 7'b0011001; // 4
4'b0101 : led = 7'b0010010; // 5
4'b0110 : led = 7'b0000010; // 6
4'b0111 : led = 7'b1111000; // 7
4'b1000 : led = 7'b0000000; // 8
4'b1001 : led = 7'b0010000; // 9
4'b1010 : led = 7'b0001000; // a
4'b1011 : led = 7'b0000011; // b
4'b1100 : led = 7'b1000110; // c
4'b1101 : led = 7'b0100001; // d
4'b1110 : led = 7'b0000110; // e
4'b1111 : led = 7'b0001110; // f
default :led = 7'b1000000; // 0


endcase

書寫建議:
case 的缺省項(xiàng)必須寫,防止產(chǎn)生鎖存器。



4.7 條件語(yǔ)句
if 語(yǔ)句的語(yǔ)法如下:
if(condition_1)
procedural_statement_1

2004-08-16 第25頁(yè),共41頁(yè)
版權(quán)所有,侵權(quán)必究


絕密
verilog hdl 入門教程請(qǐng)輸入文檔編號(hào)

{else if(condition_2)

procedural_statement_2}

{else

procedural_statement_3}

如果對(duì)condition_1 求值的結(jié)果為個(gè)非零值,那么procedural_statement_1 被執(zhí),如果
condition_1 的值為0 、x 或z ,那么procedural_statement_1 不執(zhí)行。如果存在一個(gè)else 分支,那么這
個(gè)分支被執(zhí)行。以下是一個(gè)例子。

if(sum < 60)

begin

grade = c;

total_c = total _c + 1;

end

else if(sum < 75)

begin

grade = b;

total_b = total_b + 1;

end

else

begin

grade = a;

total_a = total_a + 1;

end

注意條件表達(dá)式必須總是被括起來,如果使用if - if - else 格式,那么可能會(huì)有二義性,如下例
所示:

if(c l k)
if(r e s e t)
q = 0;
else
q = d;


問題是最后一個(gè)else 屬于哪一個(gè)if? 它是屬于第一個(gè)if 的條件(clk)還是屬于第二個(gè)if的條件
(reset)? 這在verilog hdl 中已通過將else 與最近的沒有else 的if 相關(guān)聯(lián)來解決。在這個(gè)例子中,
else 與內(nèi)層if 語(yǔ)句相關(guān)聯(lián)。

以下是另一些if 語(yǔ)句的例子。
if(sum < 100)
sum = sum + 10;
if(nickel_in)
deposit = 5;


2004-08-16 第26頁(yè),共41頁(yè)
版權(quán)所有,侵權(quán)必究


絕密
verilog hdl 入門教程請(qǐng)輸入文檔編號(hào)

elseif (dime_in)

deposit = 10;

else if(quarter_in)

deposit = 25;

else

deposit = error;

書寫建議:

1、條件表達(dá)式需用括號(hào)括起來。

2、若為if - if 語(yǔ)句,請(qǐng)使用塊語(yǔ)句 begin --- end :

if(c l k)

begin

if(r e s e t)

q = 0;

else

q = d;

end

以上兩點(diǎn)建議是為了使代碼更加清晰,防止出錯(cuò)。
3、對(duì)if 語(yǔ)句,除非在時(shí)序邏輯中,if 語(yǔ)句需要有else 語(yǔ)句。若沒有缺省語(yǔ)句,設(shè)計(jì)將產(chǎn)生一
個(gè)鎖存器,鎖存器在asic設(shè)計(jì)中有諸多的弊端(可看同步設(shè)計(jì)技術(shù)所介紹)。如下一例:
if (t)
q = d;
沒有else 語(yǔ)句,當(dāng)t為1(真)時(shí),d 被賦值給q,當(dāng)t為0(假)時(shí),因?yàn)闆]有else 語(yǔ)句,電路
保持 q 以前的值,這就形成一個(gè)鎖存器。

4.8 case 語(yǔ)句
case 語(yǔ)句是一個(gè)多路條件分支形式,其語(yǔ)法如下:
case(case_expr)
case_item_expr{ ,case_item_expr} :procedural_statement

. . .

. . .

[default:procedural_statement]

endcase

case 語(yǔ)句首先對(duì)條件表達(dá)式case_expr 求值,然后依次對(duì)各分支項(xiàng)求值并進(jìn)行比較,第一個(gè)與

條件表達(dá)式值相匹配的分支中的語(yǔ)句被執(zhí)行。可以在1 個(gè)分支中定義多個(gè)分支項(xiàng);這些值不需要互
斥。缺省分支覆蓋所有沒有被分支表達(dá)式覆蓋的其他分支。
例:

case (hex)
4'b0001 : led = 7'b1111001; // 1


2004-08-16 第27頁(yè),共41頁(yè)
版權(quán)所有,侵權(quán)必究


絕密
verilog hdl 入門教程請(qǐng)輸入文檔編號(hào)

4'b0010 : led = 7'b0100100; // 2
4'b0011 : led = 7'b0110000; // 3
4'b0100 : led = 7'b0011001; // 4
4'b0101 : led = 7'b0010010; // 5
4'b0110 : led = 7'b0000010; // 6
4'b0111 : led = 7'b1111000; // 7
4'b1000 : led = 7'b0000000; // 8
4'b1001 : led = 7'b0010000; // 9
4'b1010 : led = 7'b0001000; // a
4'b1011 : led = 7'b0000011; // b
4'b1100 : led = 7'b1000110; // c
4'b1101 : led = 7'b0100001; // d
4'b1110 : led = 7'b0000110; // e
4'b1111 : led = 7'b0001110; // f
default :led = 7'b1000000; // 0


endcase

書寫建議:
case 的缺省項(xiàng)必須寫,防止產(chǎn)生鎖存器。



相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

聲道前級(jí)設(shè)計(jì)特點(diǎn)
    與通常的Hi-Fi前級(jí)不同,EP9307-CRZ這臺(tái)分... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!