版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VerilogHDL基本語法運(yùn)算符及表達(dá)式過程語句(initial、always)塊語句(begin-end、fork-join)賦值語句條件語句循環(huán)語句task和function說明語句主要內(nèi)容:VerilogHDL的語言基本要素2二、運(yùn)算符及表達(dá)式兩個(gè)整數(shù)進(jìn)行除法運(yùn)算時(shí),結(jié)果為整數(shù),小數(shù)部分被截去。如,6/4=1。在進(jìn)行加法運(yùn)算時(shí),如果結(jié)果和操作數(shù)的位寬相同,則進(jìn)位被截去。1、算術(shù)運(yùn)算符
+-*/%加減乘除模將負(fù)數(shù)賦值給reg或其它無符號(hào)變量使用2的補(bǔ)碼如果操作數(shù)的某一位是x或z,則結(jié)果為x在整數(shù)除法中,余數(shù)舍棄模運(yùn)算中使用第一個(gè)操作數(shù)的符號(hào)integer是有符號(hào)數(shù),而reg是無符號(hào)數(shù)modulearithops();
parameterfive=5;
integerans,int;reg[3:0]rega,regb;
reg[3:0]num;
initialbeginrega=4’d3;regb=4’b1010;int=-3;//int=32’b1111……1_1101
end
initialfork#10ans=five*int;//ans=-15
#20ans=(int+5)/2;//ans=1
#30ans=five/int;//ans=-1
#40num=rega+regb;//num=4’b1101#50num=rega+1;//num=4’b0100
#60
num=int;//num=4'b1101
#70num=regb%rega;//num=4‘b0001
joinendmoduleVerilogHDL的語言基本要素--運(yùn)算符及表達(dá)式3注意:在進(jìn)行算術(shù)運(yùn)算時(shí),Verilog根據(jù)表達(dá)式中變量的長度對表達(dá)式的值自動(dòng)地進(jìn)行調(diào)整。Verilog自動(dòng)截?cái)嗷驍U(kuò)展賦值語句中右邊的值以適應(yīng)左邊變量的長度。將負(fù)數(shù)賦值給reg或其它無符號(hào)變量時(shí),verilog自動(dòng)完成二進(jìn)制補(bǔ)碼計(jì)算。二、運(yùn)算符及表達(dá)式二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素--運(yùn)算符及表達(dá)式4將兩個(gè)操作數(shù)按對應(yīng)位分別進(jìn)行邏輯運(yùn)算。如果兩個(gè)操作數(shù)的位寬不一樣,則仿真軟件會(huì)自動(dòng)將短操作數(shù)向左擴(kuò)展到兩操作數(shù)位寬一致。如果操作數(shù)的某一位為x時(shí)不一定產(chǎn)生x結(jié)果。2、位運(yùn)算符(BitwiseOperators)二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素--運(yùn)算符及表達(dá)式5在進(jìn)行關(guān)系運(yùn)算時(shí),如果聲明的關(guān)系是假,則返回值是0;如果聲明的關(guān)系是真,則返回值是1;如果操作數(shù)的某一位為x或z,則結(jié)果為不確定值。3、關(guān)系運(yùn)算符二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素--運(yùn)算符及表達(dá)式64、等式運(yùn)算符二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素--運(yùn)算符及表達(dá)式7邏輯運(yùn)算符中,“&&”和“||”是雙目運(yùn)算符,它要求有兩個(gè)操作數(shù)?!?”是單目運(yùn)算符,只要求一個(gè)操作數(shù)。5、邏輯運(yùn)算符(運(yùn)算結(jié)果是一位邏輯值)二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素--運(yùn)算符及表達(dá)式86、移位運(yùn)算符7、位拼接運(yùn)算符(Concatation)8、條件運(yùn)算符三目運(yùn)算符,對3個(gè)操作數(shù)進(jìn)行運(yùn)算:
信號(hào)=條件?表達(dá)式1:表達(dá)式2當(dāng)條件成立時(shí),信號(hào)取表達(dá)式1的值,反之取表達(dá)式2的值。例如:assignout=(sel==0)?a:b;{}用于將兩個(gè)或多個(gè)信號(hào)拼接起來,表示一個(gè)整體的信號(hào)例如:assign{cout,sum}=a+b+cin
{4{w}}//等同于{w,w,w,w}{a,{3{b,c}}}//等同于{a,b,c,b,c,b,c}二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素--運(yùn)算符及表達(dá)式9例如:條件運(yùn)算符描述的三態(tài)緩沖器modulelikebufif(in,en,out);inputin;inputen;outputout;assignout=(en==1)?in:‘bz;
??
endmodule
二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素--運(yùn)算符及表達(dá)式109、優(yōu)先級(jí)別二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素--運(yùn)算符及表達(dá)式
VerilogHDL基本語法運(yùn)算符及表達(dá)式過程語句(initial、always)塊語句(begin-end、fork-join)賦值語句條件語句循環(huán)語句task和function說明語句主要內(nèi)容:二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句initialbegin語句1;語句2;......語句n;end
VerilogHDL中多數(shù)過程模塊都從屬于initial和always兩個(gè)過程語句。1、initial語句initial語句指定的內(nèi)容只執(zhí)行一次,initial語句主要用于仿真測試,不能進(jìn)行邏輯綜合。initialbeginfor(index=0;index<size;index=index+1)memory[index]=0; endinitial語句的格式如下:舉例說明:memory存儲(chǔ)器初始化二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句13initial語句為測試變量a,b提供一組激勵(lì)`timescale100ns/100nsmoduletest;rega,b;initialbegina=0;b=0;#2a=1; #2b=1; #2b=0;#2a=0;#2finish; endendmodule二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句14在每一個(gè)模塊(module)中,使用initial次數(shù)是不受限制的,所有的initial語句都是從0時(shí)刻并行執(zhí)行。例如:二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句152、always語句always塊內(nèi)的語句是不斷重復(fù)執(zhí)行的,在仿真和邏輯綜合中均可使用。其聲明格式如下:always@(<敏感信號(hào)表達(dá)式event-expression>)begin//過程賦值
//if-else,case,casex,casez選擇語句
//while,repeat,for循環(huán)
//task,function調(diào)用end二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句161)敏感信號(hào)表達(dá)
又稱事件表達(dá)式或敏感信號(hào)列表,即當(dāng)表達(dá)式中變量的值改變時(shí),就會(huì)引發(fā)塊內(nèi)語句的執(zhí)行。因此,敏感信號(hào)表達(dá)式中應(yīng)列出影響塊內(nèi)取值的所有信號(hào)。若有兩個(gè)或兩個(gè)以上信號(hào),它們之間用“or”連接或者用“,”連接。用always塊設(shè)計(jì)組合邏輯電路的規(guī)則:(1)在賦值表達(dá)式右端參與賦值的所有信號(hào)都必須在always@(敏感電平列表)中列出;
將塊的所有輸入都列入敏感表是很好的描述習(xí)慣。
always@(aorborc)
e=a&b&c;
二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句17(2)如果在賦值表達(dá)式右端引用了敏感信號(hào)列表中沒有列出的信號(hào),在綜合
時(shí)將會(huì)為沒有列出的信號(hào)隱含地產(chǎn)生一個(gè)透明鎖存器。二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句18(3)always中if語句的判斷表達(dá)式必須在敏感電平列表中列出。always@(aorborsel)beginif(sel)c=a;elsec=b;end二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句192)邊沿觸發(fā)
Verilog中,用always塊設(shè)計(jì)時(shí)序電路時(shí),敏感列表中包括時(shí)鐘信號(hào)和控制信號(hào)。always@(posedgeclkornegedgeclr)二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句20每一個(gè)always塊最好只由一種類型的敏感信號(hào)觸發(fā),而不要將邊沿敏感型和電平敏感型信號(hào)列在一起。always@(posedgeclkorclr)
//不建議這樣用。always@(posedgeclkornegedgeclr)
二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句21
在同步時(shí)序邏輯電路中,觸發(fā)器狀態(tài)的變化僅僅發(fā)生在時(shí)鐘脈沖的上升沿或下降沿,VerilogHDL提供了posedge(上升沿)與negedge(下降沿)兩個(gè)關(guān)鍵字來進(jìn)行描述。always@(posedgeclk)beginif(!reset)q=0;elseq<=d;end例如:同步置位/清零的時(shí)序邏輯二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句22例如:同步置位/清零的計(jì)數(shù)器 modulesync(out,d,load,clr,clk)置數(shù)/置位inputd,load,clk,clr;input[7:0]d;output[7:0]out;reg[7:0]out;always@(posedgeclk)//clk上升沿觸發(fā)
beginif(!clr)out<=8’h00;//同步清0,低電平有效
elseif(load)out<=d;//同步置數(shù)
elseout<=out+1;//計(jì)數(shù)
endendmodule二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句23異步清零:
moduleasync(d,clk,clr,q);inputd,clk,clr;outputq:
regq;always@(posedge
clkorposedge
clr)begin if(clr)q<=1’b0;elseq<=d;end
endmodule二、運(yùn)算符及表達(dá)式VerilogHDL的語言基本要素—過程語句“@(敏感事件列表)”引導(dǎo)的事件列表,只要事件發(fā)生就執(zhí)行always中的語句可以使用or或者“,”來隔開多個(gè)事件
always@(a,b)always@(AorBorCorDorS1orS0orEn_)事件過多可用*號(hào)
always@(*)以某一個(gè)信號(hào)的名稱作為敏感事件,表示的是對信號(hào)的電平值敏感,即信號(hào)只要發(fā)生了變化,就要執(zhí)行always結(jié)構(gòu),所有的組合邏輯電路采用的都是這種控制方式時(shí)序邏輯電路采用的敏感列表一般是邊沿敏感的,信號(hào)的邊沿用posedge(上升沿)和negedge(下降沿)來表示
always@(posed
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年科學(xué)育兒知識(shí)與實(shí)操指南培訓(xùn)
- 2026年工程地質(zhì)勘察報(bào)告中的地質(zhì)模型構(gòu)建
- 2025年保倫筆試面試及答案
- 2025年高中語文人才引進(jìn)筆試及答案
- 2026年如何加強(qiáng)市場分析以提升投資決策
- 2025年內(nèi)蒙古烏海人事考試及答案
- 2025年重慶長壽區(qū)事業(yè)單位考試及答案
- 2025年自貢事業(yè)單位考試題目及答案
- 2025年云陽外國語筆試真題及答案
- 2026年數(shù)字資產(chǎn)安全防護(hù)指南培訓(xùn)
- 2025-2026學(xué)年人教版(新教材)小學(xué)數(shù)學(xué)二年級(jí)下冊(全冊)教學(xué)設(shè)計(jì)(附教材目錄P161)
- 委托市場調(diào)研合同范本
- 畜牧安全培訓(xùn)資料課件
- 2025年度黨支部書記述職報(bào)告
- 2026四川省引大濟(jì)岷水資源開發(fā)限公司公開招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2026年安徽糧食工程職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試備考試題及答案詳解
- 內(nèi)科學(xué)總論小兒遺傳代謝病課件
- 雨課堂學(xué)堂在線學(xué)堂云《中國電影經(jīng)典影片鑒賞(北京師范大學(xué))》單元測試考核答案
- 核電站防地震應(yīng)急方案
- 2025江西江新造船有限公司招聘70人模擬筆試試題及答案解析
- 重慶市豐都縣2025屆九年級(jí)上學(xué)期1月期末考試英語試卷(不含聽力原文及音頻答案不全)
評(píng)論
0/150
提交評(píng)論