資源描述:
《veriloghdl語(yǔ)言講義》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、VerilogHDL語(yǔ)言講義北京大學(xué)信息科學(xué)技術(shù)學(xué)院2010.10目錄一VERILOG語(yǔ)言簡(jiǎn)介4二VERILOG模塊的基本概念42.1模塊的結(jié)構(gòu)52.1.1模塊聲明和端口定義52.1.2模塊內(nèi)容6三VERILOG語(yǔ)言要素73.1數(shù)據(jù)類型及常量、變量73.1.1常量73.1.2變量93.2運(yùn)算符及表達(dá)式103.2.1邏輯運(yùn)算符103.2.2位運(yùn)算符103.2.3移位運(yùn)算符113.3賦值語(yǔ)句和塊語(yǔ)句113.3.1賦值語(yǔ)句113.3.2塊語(yǔ)句123.4條件語(yǔ)句和循環(huán)語(yǔ)句133.4.1條件語(yǔ)句133.4.2循環(huán)語(yǔ)句143.5結(jié)構(gòu)說(shuō)明語(yǔ)句153.5.1initial語(yǔ)句163.5.2always語(yǔ)句16
2、3.5.3function語(yǔ)句17四組合邏輯模塊184.1全加器184.2比較器184.3多路選擇器194.4總線和總線操作20五時(shí)序邏輯模塊205.1狀態(tài)機(jī)205.2狀態(tài)機(jī)的置位和復(fù)位235.2.1異步置位和復(fù)位235.2.2同步置位與復(fù)位24六VERILOGHDL的描述方式256.1行為描述方式256.2RTL描述方式266.3結(jié)構(gòu)描述方式27七VERILOGHDL測(cè)試模塊(TESTFIXTURE)28八QUARTUSII和MAXPLUSII、MODELSIM的使用298.1QuartusII的使用298.2MAXPLUSII的使用308.3ModelSim的使用32九參考文獻(xiàn)32其他:3
3、4一Verilog語(yǔ)言簡(jiǎn)介VerilogHDL語(yǔ)言作為硬件描述語(yǔ)言的一種,它在現(xiàn)代電子設(shè)計(jì)中發(fā)揮了巨大作用。用該語(yǔ)言可以對(duì)波形和電路進(jìn)行描述。用該語(yǔ)言可以進(jìn)行仿真驗(yàn)證和面向硬件實(shí)現(xiàn)的可綜合設(shè)計(jì)。VerilogHDL語(yǔ)言可以用于模擬和數(shù)字電路硬件描述,本講義只涉及數(shù)字設(shè)計(jì)部分。1983年GDA公司的PhilMoorby首創(chuàng)VerilogHDL。1989年Cadence公司收購(gòu)了GDA。2001年IEEE發(fā)布了Verilog語(yǔ)言的VerilogHDLIEEE1364-2001國(guó)際標(biāo)準(zhǔn)。VerilogHDL是一種通用的硬件描述語(yǔ)言。它的語(yǔ)法和C語(yǔ)言有很多相似之處,所以有C編程經(jīng)驗(yàn)的人容易學(xué)習(xí)掌握。V
4、erilog語(yǔ)言適用于不同層次的描述,它可用于行為級(jí)、寄存器傳輸級(jí)、和門(mén)級(jí)以及電路開(kāi)關(guān)級(jí)等設(shè)計(jì)。VerilogHDL語(yǔ)言得到絕大多數(shù)流行EDA開(kāi)發(fā)軟件的支持。絕大多數(shù)的制造廠商都支持VerilogHDL設(shè)計(jì),所以用VerilogHDL進(jìn)行IC設(shè)計(jì)容易選擇制造廠商。Verilog具有編程語(yǔ)言接口(PLI),它可以支持C語(yǔ)言對(duì)Verilog內(nèi)部的訪問(wèn)。VerilogHDL的內(nèi)容比較多。本講義對(duì)最基本的Verilog語(yǔ)言語(yǔ)法進(jìn)行簡(jiǎn)要講解,使得讀者對(duì)最Verilog語(yǔ)言有個(gè)初步了解。在掌握這些基本概念后,通過(guò)練習(xí)讀者可用簡(jiǎn)單的寫(xiě)法完成組合邏輯和時(shí)序邏輯設(shè)計(jì)以及測(cè)試程序(testfixture)設(shè)計(jì)。通
5、過(guò)這些學(xué)習(xí)為讀者進(jìn)一步深入學(xué)習(xí)硬件描述語(yǔ)言打下基礎(chǔ)。二Verilog模塊的基本概念VerilogHDL程序的基本設(shè)計(jì)單元是“模塊”。一個(gè)模塊由幾個(gè)部分組成,下面是兩個(gè)簡(jiǎn)單的VerilogHDL程序,從中了解Verilog模塊的基本概念:[例1.1]moduleAOI(a,b,c,d,f);inputa,b,c,d;outputf;wirea,b,c,d,f;assignf=~((a&b)
6、(c&d));endmodule這個(gè)例子是一個(gè)“與-或-非”門(mén)電路的模塊。[例1.2]modulemuxtwo(ain,bin,select,sout);outputsout;inputain,bin,sel
7、ect;mymux2m(.out(sout),.a(ain),.b(bin),.sl(select));//調(diào)用由mymux2模塊定義的實(shí)例元件m,即把已定義過(guò)的模塊mymux2在//本模塊中具體化為mendmodulemodulemymux2(out,a,b,sl);inputa,b,sl;outputout;regout;always@(sloraorb)if(!sl)out=a;elseout=b;endmodule這個(gè)例子描述了一個(gè)二選一多路器,在這個(gè)例子中存在著兩個(gè)模塊。模塊muxtwo調(diào)用了由模塊mymux2定義的實(shí)例部件m,模塊muxtwo是上層模塊,模塊mymux2稱為子模塊。
8、在實(shí)例部件m中,帶“.”的表示被引用模塊的端口,名稱必須與被引用模塊的端口一致,小括號(hào)中表示在本模塊中與之連接的線路。通過(guò)以上兩個(gè)例子可以看到:nVerilog程序是由模塊構(gòu)成的。每個(gè)模塊的內(nèi)容都是位于module和endmodule兩個(gè)語(yǔ)句之間。n模塊是可以層次嵌套的。n每個(gè)模塊要進(jìn)行端口定義,并說(shuō)明是輸入口還是輸出口,然后對(duì)模塊的功能進(jìn)行描述。nVerilogHDL程序的書(shū)寫(xiě)格式自由,一行可以