版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1一、VerilogHDL語言簡介什么是硬件描述語言?硬件描述語言(英文:HardwareDescriptionLanguage,簡稱:HDL)是電子系統(tǒng)硬件行為描述、結(jié)構(gòu)描述、數(shù)據(jù)流描述的語言。利用這種語言,數(shù)字電路系統(tǒng)的設(shè)計可以從頂層到底層(從抽象到具體)逐層描述自己的設(shè)計思想,用一系列分層次的模塊來表示極其復(fù)雜的數(shù)字系統(tǒng)。利用電子設(shè)計自動化(EDA)工具,逐層進行仿真驗證,再把其中需要變?yōu)閷嶋H電路的模塊組合,經(jīng)過自動綜合工具轉(zhuǎn)換到門級電路網(wǎng)表。利用專用集成電路ASIC或現(xiàn)場可編程門陣列FPGA自動布局布線工具,把網(wǎng)表轉(zhuǎn)換為要實現(xiàn)的具體電路布線結(jié)構(gòu)。
VerilogHDL程序模塊及層次化設(shè)計VerilogHDL語言是基于C語言發(fā)展起來的硬件描述語言,于1983年由GDA公司首創(chuàng)。1995年VerilogHDL語言成為IEEE標準,編號:IEEEStd1364-1995。VerilogHDL語言具有簡捷、高效、易學易用、功能強大等優(yōu)點,逐步為設(shè)計人員所接收和喜愛。Verilog語言支持的EDA工具較多,適合于寄存器傳輸級(RTL)和門電路級的描述,其綜合過程比VHDL簡單,但在高級描述方面不如VHDL。
VerilogHDL程序模塊及層次化設(shè)計二、
VerilogHDL設(shè)計流程典型的數(shù)字系統(tǒng)FPGA/CPLD設(shè)計流程
綜合:通過工具把用HDL描述的模塊自動轉(zhuǎn)換為用門級電路網(wǎng)表表示的模塊的過程。布局布線:把門級網(wǎng)表通過布局布線工具,使其與具體的某種FPGA或某種ASIC工藝庫器件對應(yīng)起來,并加以連接的過程。HDLsourceVerilogHDL程序模塊及層次化設(shè)計34時序仿真功能仿真接近真實器件運行特性的仿真,仿真文件中己包含了器件硬件特性參數(shù),真實精度高。直接對VHDL、原理圖描述的邏輯功能進行測試模擬,以了解其實現(xiàn)的功能是否滿足原設(shè)計要求的過程,仿真過程不涉及任何具體器件的硬件特性。仿真:VerilogHDL程序模塊及層次化設(shè)計5綜合:功能:將軟件描述與給定的硬件結(jié)構(gòu)用某種網(wǎng)表文件的方式對應(yīng)起來,成為相應(yīng)互的映射關(guān)系。條件:給定軟件描述的設(shè)計輸入與硬件結(jié)構(gòu)參數(shù)過程:將在EDA平臺上編輯輸入的HDL文本、原理圖或狀態(tài)圖形描述,依據(jù)給定的硬件結(jié)構(gòu)組件和約束控制條件進行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級電路甚至更底層的電路描述網(wǎng)表文件。VerilogHDL程序模塊及層次化設(shè)計6適配:功能:將網(wǎng)表文件配置于指定的目標器件中,產(chǎn)生最終的下載文件;條件:綜合后網(wǎng)表文件和適配所選定的目標器件;過程:將綜合后網(wǎng)表文件針對某一具體的目標器件進行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、邏輯布局布線操作。適配完成后可以利用適配所產(chǎn)生的仿真文件作精確的時序仿真,同時產(chǎn)生可用于編程的文件。VerilogHDL程序模塊及層次化設(shè)計7通過下載電纜連接PC機(并口、串口、USB口)和器件電路板上的下載接口,將設(shè)計文件下載到PLD器件中。器件編程:將含有載入了設(shè)計文件的FPGA或CPLD的硬件系統(tǒng)進行統(tǒng)一測試,以便最終驗證設(shè)計項目在目標系統(tǒng)上的實際工作情況,以排除錯誤,改進和完善設(shè)計。硬件測試:VerilogHDL程序模塊及層次化設(shè)計8三、程序模塊實例1:2輸入與門moduleand2(//and2是模塊名稱//端口列表c,a,b);//端口定義inputa,b;outputc;//端口數(shù)據(jù)類型說明wirea,b;regc;//邏輯功能描述always@(aorb)beginc=a&b;endendmodule1.什么是模塊
VerilogHDL程序是由模塊構(gòu)成的VerilogHDL程序模塊及層次化設(shè)計9實例2:1位半加器電路的描述:modulehalf_adder(//half_adder是模塊名稱//端口列表
co,sum,a,b);//端口定義inputa,b;
outputco,sum;//端口數(shù)據(jù)類型說明wirea,b;
regco,sum;//邏輯功能描述assign{co,sum}=a+b;endmodule4.3程序模塊1011010101100000CSBA輸出輸入ABSCCO∑VerilogHDL程序模塊及層次化設(shè)計104.3程序模塊
實例3:
1位全加器
通過調(diào)用1位半加器模塊構(gòu)建1位全加器。modulefull_adder(
//端口列表fco,fsum,cin,a,b);//端口定義inputcin,a,b;outputfco,fsum;//數(shù)據(jù)類型說明(端口)wirecin,a,b;regfco,fsum;//數(shù)據(jù)類型說明(內(nèi)部變量)wirec1,s1,c2;//邏輯功能描述部分half_adderU1(c1,s1,a,b);half_adderU2(c2,fsum,s1,cin);orU3(fco,c1,c2);endmoduleVerilogHDL程序模塊及層次化設(shè)計114.3程序模塊2、VerilogHDL程序的基本結(jié)構(gòu)1)模塊聲明模塊聲明包括模塊名和端口列表。其格式如下:module模塊名(端口1,端口2,端口3,…);模塊結(jié)束的標志為關(guān)鍵字:endmodule。2)端口定義output(輸出端口)和inout(雙向端口)。格式如下:input端口名1,端口名2,………,端口名N;//輸入端口output端口名1,端口名2,………,端口名N;//輸出端口
inout
端口名1,端口名2,………,端口名N;//輸入輸出端口
也可以寫在端口聲明語句里,其格式如下:modulemodule_name(inputport1,input
port2,…outputport1,outputport2…);
VerilogHDL程序模塊及層次化設(shè)計124.3程序模塊3)信號類型說明
信號可以分為端口信號和內(nèi)部信號所有信號都必須進行數(shù)據(jù)類型的定義:寄存器類型(reg等),連線類型(wire等)端口的位寬最好定義在端口定義中,不要放在信號類型定義中//要這樣定義端口的位寬moduletest(addr,read,write,datain,dataout)
input[7:0]datain;input[15:0]addr;inputread,write;output[7:0]dataout;wireaddr,read,write,datain;regdataout;//不要這樣定義端口的位寬moduletest(addr,read,write,datain,dataout)
inputdatain,addr,read,write;outputdataout;wire[15:0]addr;wire[7:0]datain;wireread,write;reg[7:0]dataout;VerilogHDL程序模塊及層次化設(shè)計134.3程序模塊4)邏輯功能描述
模塊中最核心的部分是邏輯功能描述,最基本的描述方式有3種:結(jié)構(gòu)化建模描述方式、數(shù)據(jù)流建模描述方式和行為建模描述方式。結(jié)構(gòu)化建模描述方式(模塊例化)按照系統(tǒng)的電路圖實例化(即調(diào)用)已有的功能模塊或原語數(shù)據(jù)流建模描述方式
采用連續(xù)賦值語句assign語句,assign{co,sum}=a+b;行為建模描述方式使用always語句或initial語句塊中的過程賦值語句VerilogHDL程序模塊及層次化設(shè)計14四、VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)在一個模塊中引用另一個模塊,對其端口
進行相關(guān)連接,叫做模塊例化;模塊例化建立了描述的層次;信號端口可以通過位置或名稱關(guān)聯(lián),端口連接也必須遵循一些規(guī)則;除頂層模塊外,每個模塊完成一項較為獨立的功能。1.VerilogHDL層次化設(shè)計的表現(xiàn)形式VerilogHDL程序模塊及層次化設(shè)計154.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)結(jié)構(gòu)化的建模描述方式通過對電路結(jié)構(gòu)的描述來建模,實例化各個器件,并使用線網(wǎng)來連接各器件,描述出邏輯電路圖中的元件及元件之間的連接關(guān)系。結(jié)構(gòu)化的建模描述方式可以實例化的器件包括:VerilogHDL中內(nèi)置的基本門級元件:(GateLevelPrimitives門級原語)模塊(module)用戶定義的原語(User-DefinedPrimitive,UDP)
基本門級元件是VerilogHDL中自帶的一套標準原語,可以直接實例化。VerilogHDL中內(nèi)置了12種類型的基本門級元件模型,包括多輸入與門、多輸入與非門、多輸入或門、多輸入或非門、多輸入異或門、多輸入異或非門、多輸出緩沖器、多輸出反相器、控制信號高/低電平有效的三態(tài)緩沖器、控制信號高/低電平有效的三態(tài)反相器等。VerilogHDL程序模塊及層次化設(shè)計164.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)表1VerilogHDL中內(nèi)置的12個基本門級元件類型元件符號功能說明多輸入門and多輸入端的與門nand多輸入端的與非門or多輸入端的或門nor多輸入端的或非門xor多輸入端的異或門xnor多輸入端的異或非門(同或門)多輸出門buf多輸出端的緩沖器not多輸出端的反相器三態(tài)門bufif0控制信號低電平有效的三態(tài)緩沖器bufif1控制信號高電平有效的三態(tài)緩沖器nofif0控制信號低電平有效的三態(tài)反相器nofif1控制信號高電平有效的三態(tài)反相器VerilogHDL程序模塊及層次化設(shè)計174.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)VerilogHDL中內(nèi)置的6種類型多輸入門的邏輯真值表如表2所示。輸入有四種可能:0,1,x,z。由于多輸入門的輸出不可能為高阻態(tài)z,故只要
任意一個輸入為x或z,則輸出必定為x。
表2多輸入門的邏輯真值表(a)與門
(b)與非門and輸入101xz輸入200000101xxx0xxxz0xxxnand輸入101xz輸入201111110xxx1xxxz1xxxVerilogHDL程序模塊及層次化設(shè)計184.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)表2多輸入門的邏輯真值表(e)異或門
(f)同或門
xor輸入101xz輸入2001xx110xxxxxxxzxxxxxnor輸入101xz輸入2010xx101xxxxxxxzxxxxVerilogHDL程序模塊及層次化設(shè)計194.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)多輸入門可以有多個輸入,但只允許有一個輸出
圖中輸入變量的個數(shù)可根據(jù)實際應(yīng)用的需要確定多輸入門的元件模型VerilogHDL程序模塊及層次化設(shè)計4.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)VerilogHDL中內(nèi)置了2種類型的多輸出門元件:緩沖器buf和反相器not可以有多個輸出端但只有一個輸入端。多輸入緩沖器和反相器的元件模型的示意圖圖中輸出端的個數(shù)可根據(jù)實際應(yīng)用的需要確定VerilogHDL程序模塊及層次化設(shè)計4.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)VerilogHDL中內(nèi)置了4種類型的三態(tài)門元件:控制信號低電平有效的三態(tài)緩沖器控制信號高電平有效的三態(tài)緩沖器控制信號低電平有效的三態(tài)反相器控制信號高電平有效的三態(tài)反相器三態(tài)門的輸出除了0,1外,還有可能是高阻態(tài)z。三態(tài)門元件模型的示意圖一個數(shù)據(jù)輸入端、一個輸出端和一個控制輸入端VerilogHDL程序模塊及層次化設(shè)計22程序例化語法
VerilogHDL語言中,有3種模塊調(diào)用的方法:位置映射法、信號名映射法、混合映射法。(1)位置映射法模塊名例化名(鏈接端口1信號名,鏈接端口2信號名,……)例1:nandNA1(out,in1,in2,in3);
xorXOR1(out,in1,in2,in3);
其中,實例化名NA1,XOR1可省略;圓括號中輸入變量、輸出變量需與原理圖對應(yīng)且第一個變量必須是輸出變量。上述實例化代表的含義為:
與非門NA1的輸出為out,輸入分別為in1,in2,in3,其邏輯關(guān)系為out=in1·in2·in3異或門XOR1的輸出為out,輸入分別為in1,in2,in3其邏輯關(guān)系為4.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)2.模塊例化元件符號實例化名(輸出,輸入)實例化多輸入門元件的一般形式為:VerilogHDL程序模塊及層次化設(shè)計4.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)元件符號實例化名(輸出1,輸出2,…輸出n,輸入);例如:bufB1(out1,out2,out3,…,in);
notN1(out1,out2,out3,…,in);其中,實例化名B1,N1可省略;圓括號中輸入變量、輸出變量需與原理圖對應(yīng)且輸入變量必須放在最后。上述實例化代表的含義為:緩沖器B1的輸入為in,輸出為out1,out2,out3,…;反相器N1的輸入為in,輸出為out1,out2,out3,…。實例化多輸出門元件的一般形式為:
VerilogHDL程序模塊及層次化設(shè)計4.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)實例化三態(tài)緩沖器、三態(tài)反相器元件的一般形式為:元件符號實例化名(輸出,輸入,控制);例如:bufif0B1(out,in1,ctrl);
bufif1B1(out,in1,ctrl);
notif0N1(out,in1,ctrl);
notif1N1(out,in1,ctrl);其中,實例化名B0,B1,N0,N1可省略;圓括號中輸入變量、輸出變量、控制信號需與原理圖對應(yīng)且順序不能改變。4.4VerilogHDL層次化(結(jié)構(gòu)化建模描述方式)【例1】位置映射法實現(xiàn)4輸入相等比較器modulecompare_core(result,a,b);input[7:0]a,b;outputresult;assignresult=(a==b)?1:0;endmodulemodulecompare_app0(result0,a0,b0,result1,a1,b1);input[7:0]a0,b0,a1,b1;output
result0,result1;compare_coreinst_compare_core0(result0,a0,b0);compare_coreinst_compare_core1(result1,a1,b1
);endmoduleVerilogHDL程序模塊及層次化設(shè)計26(2)信號名映射法
模塊名例化名(.端口1信號名(鏈接端口1信號名),.端口2信號名(鏈接端口2信號名))
【例2】信號名映射法實現(xiàn)4輸入相等比較器modulecompare_core(result,a,b);input[7:0]a,b;outputresult;assignresult=(a==b)?1:0;endmodulemodulecompare_app1(result0,a0,b0,result1,a1,b1);input[7:0]a0,b0,a1,b1;output
result0,result1;compare_coreinst_compare_core0(.result(result0),.a(a0),
.b(b0));compare_coreinst_compare_core1(
.a(a1),.b(b1),.result(result1));endmoduleVerilogHDL程序模塊及層次化設(shè)計27B.特殊處理說明(1)懸空端處理空白處理
DFFd1(.Q(QS),.Qbar(),.Data(D),.Preset(),.Clock(CK)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 消防公考面試題目及答案
- 過境通過制度
- 跨村聯(lián)建議事制度
- 試論北京高職院校自主招生制度
- 2026年及未來5年市場數(shù)據(jù)中國醫(yī)療責任保險行業(yè)發(fā)展?jié)摿︻A(yù)測及投資戰(zhàn)略、數(shù)據(jù)研究報告
- 2025年央企在線筆試題目及答案
- 2025年筆試錄取前幾名去面試及答案
- 2025年上海事業(yè)編應(yīng)屆生考試及答案
- 2025年燕山石化校招筆試題庫及答案
- 2025年亳州骨科醫(yī)院筆試題目及答案
- 單鳳儒《管理學基礎(chǔ)》教案
- 客戶開發(fā)流程圖
- 音樂節(jié)活動場地租賃合同
- 鋼琴樂理知識考試題庫200題(含答案)
- 風險管理顧問協(xié)議
- 一年級下冊字帖筆順
- 2024屆高考語文復(fù)習:散文訓練王劍冰散文(含解析)
- SWITCH暗黑破壞神3超級金手指修改 版本號:2.7.7.92380
- 二尖瓣狹窄講課課件
- 腸造瘺術(shù)后護理查房
- GB/T 9126.1-2023管法蘭用非金屬平墊片第1部分:PN系列
評論
0/150
提交評論