Verilog_HDL_課件課件_第1頁
Verilog_HDL_課件課件_第2頁
Verilog_HDL_課件課件_第3頁
Verilog_HDL_課件課件_第4頁
Verilog_HDL_課件課件_第5頁
已閱讀5頁,還剩281頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程數(shù)字系統(tǒng)設(shè)計(jì)教程EDA技術(shù)技術(shù)一、一、EDA技術(shù)課程簡介技術(shù)課程簡介 EDA技術(shù)是電氣類本科專業(yè)基礎(chǔ)課,屬必修課程。技術(shù)是電氣類本科專業(yè)基礎(chǔ)課,屬必修課程。EDA (Electronic Design Automation,電子設(shè)計(jì)自動化,電子設(shè)計(jì)自動化) 技術(shù)技術(shù)是指設(shè)計(jì)者可以利用計(jì)算機(jī)以及相關(guān)應(yīng)用軟件完成電子系統(tǒng)是指設(shè)計(jì)者可以利用計(jì)算機(jī)以及相關(guān)應(yīng)用軟件完成電子系統(tǒng)的設(shè)計(jì)工作。電子設(shè)計(jì)自動化(的設(shè)計(jì)工作。電子設(shè)計(jì)自動化(EDA)技術(shù)是一個廣泛的概)技術(shù)是一個廣泛的概念,凡在電子設(shè)計(jì)過程中用到計(jì)算機(jī)輔助手段的相關(guān)步驟都念,凡在電子設(shè)計(jì)過程中用到計(jì)算機(jī)輔助手段的相

2、關(guān)步驟都可作為可作為EDA的組成部分。電子系統(tǒng)的設(shè)計(jì)已經(jīng)無法脫離的組成部分。電子系統(tǒng)的設(shè)計(jì)已經(jīng)無法脫離EDA工具的支持,并且依賴性越來越強(qiáng)。掌握工具的支持,并且依賴性越來越強(qiáng)。掌握EDA技術(shù)已經(jīng)成為技術(shù)已經(jīng)成為現(xiàn)代電子設(shè)計(jì)的基本技能。現(xiàn)代電子設(shè)計(jì)的基本技能。 常用常用EDA軟件有軟件有Max+plus、Quartus、Protel 99SE和和EWB等。等。 EDA技術(shù)課程介紹技術(shù)課程介紹二、二、EDA技術(shù)課程內(nèi)容技術(shù)課程內(nèi)容1、HDL硬件描述語言硬件描述語言2、大規(guī)??删幊踢壿嬈骷ā⒋笠?guī)??删幊踢壿嬈骷–PLD/FPGA) 設(shè)計(jì)設(shè)計(jì)3、EWB電子線路仿真電子線路仿真4、Protel99電

3、路設(shè)計(jì)與制板電路設(shè)計(jì)與制板三、課程內(nèi)容三、課程內(nèi)容 本課程主要學(xué)習(xí)本課程主要學(xué)習(xí)Verilog HDL硬件描述語言,通過學(xué)習(xí)硬件描述語言,通過學(xué)習(xí)能應(yīng)用該語言進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)。能應(yīng)用該語言進(jìn)行數(shù)字系統(tǒng)的設(shè)計(jì)。 學(xué)習(xí)內(nèi)容包括:學(xué)習(xí)內(nèi)容包括: Verilog的基本知識的基本知識 Verilog語法的基本概念語法的基本概念 模塊的結(jié)構(gòu)、數(shù)據(jù)類型、變量和基本運(yùn)算符號模塊的結(jié)構(gòu)、數(shù)據(jù)類型、變量和基本運(yùn)算符號 運(yùn)算符、賦值語句和結(jié)構(gòu)說明語句運(yùn)算符、賦值語句和結(jié)構(gòu)說明語句 條件語句、循環(huán)語句、塊語句與生成語句條件語句、循環(huán)語句、塊語句與生成語句 結(jié)構(gòu)語句、系統(tǒng)任務(wù)、函數(shù)語句和顯示系統(tǒng)任務(wù)結(jié)構(gòu)語句、系統(tǒng)任務(wù)

4、、函數(shù)語句和顯示系統(tǒng)任務(wù) 調(diào)試用系統(tǒng)任務(wù)和常用編譯預(yù)處理語句調(diào)試用系統(tǒng)任務(wù)和常用編譯預(yù)處理語句 初級建模實(shí)例初級建模實(shí)例EDA技術(shù)簡介技術(shù)簡介一、一、EDA的基本概念的基本概念 電子設(shè)計(jì)自功化電子設(shè)計(jì)自功化(EDA:Electronic Design Automation)就是利用計(jì)算機(jī)作為工作平臺進(jìn)行電子自動化就是利用計(jì)算機(jī)作為工作平臺進(jìn)行電子自動化設(shè)計(jì)的一項(xiàng)技術(shù)。設(shè)計(jì)的一項(xiàng)技術(shù)。 電路設(shè)計(jì)與仿真電路設(shè)計(jì)與仿真系統(tǒng)設(shè)計(jì)與仿真系統(tǒng)設(shè)計(jì)與仿真PCB設(shè)計(jì)與校驗(yàn)設(shè)計(jì)與校驗(yàn)集成電路集成電路IC設(shè)計(jì)與測試設(shè)計(jì)與測試數(shù)字?jǐn)?shù)字/模擬電路設(shè)計(jì)模擬電路設(shè)計(jì)嵌入式系統(tǒng)路設(shè)計(jì)嵌入式系統(tǒng)路設(shè)計(jì)數(shù)字?jǐn)?shù)字/模擬電路設(shè)計(jì)模

5、擬電路設(shè)計(jì)專用集成電路設(shè)計(jì)專用集成電路設(shè)計(jì)可編程邏輯器件設(shè)計(jì)可編程邏輯器件設(shè)計(jì)EDA技術(shù)所涉及的范圍:技術(shù)所涉及的范圍: IP核是集成電路知識產(chǎn)權(quán)模塊的簡稱,這里將其定義為:核是集成電路知識產(chǎn)權(quán)模塊的簡稱,這里將其定義為:經(jīng)過預(yù)先設(shè)計(jì)、預(yù)先驗(yàn)證,具有相對獨(dú)立的功能可以重復(fù)經(jīng)過預(yù)先設(shè)計(jì)、預(yù)先驗(yàn)證,具有相對獨(dú)立的功能可以重復(fù)使用在使用在SOC(System on Chip)和復(fù)雜和復(fù)雜ASIC中的電路模塊。中的電路模塊。通常按照其在設(shè)計(jì)流通常按照其在設(shè)計(jì)流程中的位置將程中的位置將IP分為分為軟核軟核IP硬核硬核IP固核固核IP 軟核軟核IP(Soft IP)是用可綜合硬件描述語言是用可綜合硬件描述

6、語言HDL描述的描述的RTL級電路功能塊。級電路功能塊。 優(yōu)點(diǎn):設(shè)計(jì)周期短,設(shè)計(jì)投入少,與元器件的生產(chǎn)工藝優(yōu)點(diǎn):設(shè)計(jì)周期短,設(shè)計(jì)投入少,與元器件的生產(chǎn)工藝無關(guān),增大了無關(guān),增大了IP的靈活性和適應(yīng)性,用戶可對軟核的功能及的靈活性和適應(yīng)性,用戶可對軟核的功能及參數(shù)進(jìn)行剪裁設(shè)置。參數(shù)進(jìn)行剪裁設(shè)置。 缺點(diǎn):在性能上缺點(diǎn):在性能上(比如時序、面積、功耗等方面比如時序、面積、功耗等方面)有較大有較大的不可預(yù)知性。另外,有的軟核的不可預(yù)知性。另外,有的軟核IP 是受知識產(chǎn)權(quán)保護(hù)的。是受知識產(chǎn)權(quán)保護(hù)的。軟核軟核IP硬核硬核IP 硬核硬核IP(Hard IP)是經(jīng)過布局、布線并針對某一特定工是經(jīng)過布局、布線并

7、針對某一特定工藝庫優(yōu)化過的網(wǎng)表或是物理級版圖,通常是藝庫優(yōu)化過的網(wǎng)表或是物理級版圖,通常是GDS的文件的文件形式。形式。 特點(diǎn):硬核特點(diǎn):硬核IP在功耗、尺寸等方面部做了充分的優(yōu)化。在功耗、尺寸等方面部做了充分的優(yōu)化。硬核硬核IP可靠性高,有著很好的可預(yù)知性,能很快的投入使可靠性高,有著很好的可預(yù)知性,能很快的投入使用。但由于對工藝的依賴性使得其靈活性和可移植性都較用。但由于對工藝的依賴性使得其靈活性和可移植性都較差。差。固核固核IP 固核固核IP(Firm IP)是已經(jīng)基于一般工藝庫進(jìn)行了綜合和是已經(jīng)基于一般工藝庫進(jìn)行了綜合和布局布局IP核,通常以網(wǎng)表的形式提交客戶使用。因此其在結(jié)構(gòu)、核,通

8、常以網(wǎng)表的形式提交客戶使用。因此其在結(jié)構(gòu)、面積以及性能的安排上都已進(jìn)行了優(yōu)化。面積以及性能的安排上都已進(jìn)行了優(yōu)化。 特點(diǎn):固核特點(diǎn):固核IP提供了介于軟核提供了介于軟核IP和硬核和硬核IP之間的一個之間的一個折中方案。比起硬核折中方案。比起硬核IP。它具有較好的靈活性和可移植性。它具有較好的靈活性和可移植性。比起軟核比起軟核IP它又在性能和面積上有較好的可預(yù)知性。它又在性能和面積上有較好的可預(yù)知性。微處理微處理器核器核DSP核核USB接口核接口核RAM/ROM核核 上圖為一個由微處理器核、數(shù)字信號處理器核、存儲器上圖為一個由微處理器核、數(shù)字信號處理器核、存儲器核及核及USB接口核等接口核等IP

9、核構(gòu)成一個片上系統(tǒng)(核構(gòu)成一個片上系統(tǒng)(SOC)。用戶設(shè))。用戶設(shè)計(jì)該系統(tǒng)時,可以自行設(shè)計(jì)各個功能模塊,也可以用計(jì)該系統(tǒng)時,可以自行設(shè)計(jì)各個功能模塊,也可以用IP模塊模塊來構(gòu)建。來構(gòu)建?;诨贗P核構(gòu)成的片上系統(tǒng)核構(gòu)成的片上系統(tǒng)二、二、EDA的發(fā)展概況的發(fā)展概況一般認(rèn)為,一般認(rèn)為,EDA技術(shù)歷經(jīng)了三個發(fā)展階段。技術(shù)歷經(jīng)了三個發(fā)展階段。1. CAD階段階段2. CAE階段階段3. EDA階段階段(Computer Aided Design)(Computer Aided Engineering)( Electronic Design Automation )EDA技術(shù)的使用包括電子工程師進(jìn)行電

10、子系統(tǒng)開發(fā)的全過程,以及進(jìn)行技術(shù)的使用包括電子工程師進(jìn)行電子系統(tǒng)開發(fā)的全過程,以及進(jìn)行開發(fā)涉及的諸多方面。開發(fā)涉及的諸多方面。EDA工具工具系統(tǒng)級設(shè)計(jì)系統(tǒng)級設(shè)計(jì)寄存器傳輸級設(shè)計(jì)寄存器傳輸級設(shè)計(jì)(RTL)版圖級設(shè)計(jì)版圖級設(shè)計(jì)門級設(shè)計(jì)門級設(shè)計(jì)EDA工具工具混合電路設(shè)計(jì)混合電路設(shè)計(jì)綜合與仿真綜合與仿真系統(tǒng)級設(shè)計(jì)系統(tǒng)級設(shè)計(jì)數(shù)字電路設(shè)計(jì)數(shù)字電路設(shè)計(jì)版圖設(shè)計(jì)版圖設(shè)計(jì)PCB板設(shè)計(jì)板設(shè)計(jì)PLD開發(fā)開發(fā)高速電路設(shè)計(jì)高速電路設(shè)計(jì)模擬電路設(shè)計(jì)模擬電路設(shè)計(jì)三、三、EDA技術(shù)的特征技術(shù)的特征EDA技術(shù)的主要特征有:技術(shù)的主要特征有:(1)硬件采用工作站和)硬件采用工作站和PC機(jī)。大型機(jī)。大型EDA軟件采用軟件采用UNI

11、X和和Linux操作系統(tǒng),而普通操作系統(tǒng),而普通EDA軟件采用軟件采用windows操作系統(tǒng)。操作系統(tǒng)。(2)具有)具有IP核模塊化設(shè)計(jì)和可重復(fù)利用功能。核模塊化設(shè)計(jì)和可重復(fù)利用功能。IP核的規(guī)范核的規(guī)范化設(shè)計(jì)和化設(shè)計(jì)和EDA文檔的兼容性,使得不同文檔的兼容性,使得不同EDA軟件可以相互軟件可以相互兼容。兼容。(3)EDA技術(shù)采用高級硬件描述語言描述硬件結(jié)構(gòu)、參數(shù)技術(shù)采用高級硬件描述語言描述硬件結(jié)構(gòu)、參數(shù)和功能,具有系統(tǒng)仿真和綜合能力。和功能,具有系統(tǒng)仿真和綜合能力。2.可編程可編程(PLD)數(shù)字系統(tǒng)設(shè)計(jì)數(shù)字系統(tǒng)設(shè)計(jì)1.印制電路板印制電路板(PCB)設(shè)計(jì)設(shè)計(jì)3. IC設(shè)計(jì)設(shè)計(jì)(包含(包含F(xiàn)PG

12、A、CPLD、ISP、SOPC等)等)(包含定制(包含定制ASlC,SOC等)等)四、四、EDA應(yīng)用范圍應(yīng)用范圍數(shù)字?jǐn)?shù)字IC設(shè)計(jì)設(shè)計(jì)模擬模擬IC設(shè)計(jì)設(shè)計(jì) EDA軟件的功能可以分為兩個大類:設(shè)計(jì)工具和綜合軟件的功能可以分為兩個大類:設(shè)計(jì)工具和綜合工具。設(shè)計(jì)工具以人機(jī)接口環(huán)境為主,綜合工具用以處理工具。設(shè)計(jì)工具以人機(jī)接口環(huán)境為主,綜合工具用以處理設(shè)計(jì)目標(biāo)。設(shè)計(jì)目標(biāo)。五、五、EDA工具軟件簡介工具軟件簡介按使用目的來分:按使用目的來分:EDA軟件軟件PCB設(shè)計(jì)工具設(shè)計(jì)工具PLD設(shè)計(jì)工具設(shè)計(jì)工具IC設(shè)計(jì)工具設(shè)計(jì)工具按使用平臺來分:按使用平臺來分:PC機(jī)機(jī)(windowsLinux)版本版本工作站工作站

13、(UNIX)版本版本按照器件屬性來分:按照器件屬性來分:數(shù)字電路設(shè)計(jì)工具數(shù)字電路設(shè)計(jì)工具模擬電路設(shè)計(jì)工具模擬電路設(shè)計(jì)工具按照設(shè)計(jì)流程來分:按照設(shè)計(jì)流程來分:綜合工具綜合工具驗(yàn)證工具驗(yàn)證工具版圖設(shè)計(jì)工具版圖設(shè)計(jì)工具1. PCB設(shè)計(jì)工具設(shè)計(jì)工具 以印制電路板以印制電路板(PCB)為設(shè)計(jì)目標(biāo)的設(shè)計(jì)工具是最基本為設(shè)計(jì)目標(biāo)的設(shè)計(jì)工具是最基本的的EDA軟件,國內(nèi)最為常用的兩個軟件,國內(nèi)最為常用的兩個PCB軟件是軟件是Protel和和OrCAD 。2. PLD設(shè)計(jì)工具設(shè)計(jì)工具 專門用于專門用于PLD開發(fā)的工具一般選用器件開發(fā)商提供的開開發(fā)的工具一般選用器件開發(fā)商提供的開發(fā)系統(tǒng),主要有:發(fā)系統(tǒng),主要有:Alt

14、era公司公司MAX+Plus和和Quartus,Lattice公司的公司的ISPexpert/ispLEVER v3.0,Xinlinx公司的公司的ISE等,其中等,其中Altera公司的開發(fā)系統(tǒng)深受業(yè)界歡迎。公司的開發(fā)系統(tǒng)深受業(yè)界歡迎。 最為常用的是最為常用的是Altera公司公司MaxPlus和和Quartus、 Lattice公司的公司的ispLEVER以及以及Xinlinx公司的公司的ISE。 六、六、SOC 系統(tǒng)芯片系統(tǒng)芯片(SOC, System on a Chip)也稱為片上系統(tǒng),是指也稱為片上系統(tǒng),是指把一個完整的系統(tǒng)集成在一個芯片上。把一個完整的系統(tǒng)集成在一個芯片上。 在單

15、一硅芯片上集成在單一硅芯片上集成了數(shù)字電路、模擬電路、信號采集和轉(zhuǎn)換電路、存儲器、了數(shù)字電路、模擬電路、信號采集和轉(zhuǎn)換電路、存儲器、MCU、DSP等,實(shí)現(xiàn)了一個系統(tǒng)的功能。等,實(shí)現(xiàn)了一個系統(tǒng)的功能。SOC芯片芯片MCURAMROMDSPDACADCI/OFLASHUARTSOC芯片上實(shí)現(xiàn)信號采集、轉(zhuǎn)換、存儲、處理和芯片上實(shí)現(xiàn)信號采集、轉(zhuǎn)換、存儲、處理和I/O等功能。等功能。七、七、SOPC SOPC(System On a Programmable Chip)稱為可編)稱為可編程片上系統(tǒng),它是基于可編程邏輯器件(程片上系統(tǒng),它是基于可編程邏輯器件(FPGA/CPLD)可重)可重構(gòu)的構(gòu)的SOC。

16、 SOPC集成了硬核或軟核集成了硬核或軟核CPU、DSP、鎖相環(huán)(、鎖相環(huán)(PLL)、)、存儲器、存儲器、I/O接口及可編程邏輯,可以靈活高效的解決接口及可編程邏輯,可以靈活高效的解決SOC方方案,而且設(shè)計(jì)周期短、設(shè)計(jì)成本低,一般只需要一臺配有案,而且設(shè)計(jì)周期短、設(shè)計(jì)成本低,一般只需要一臺配有SOPC開發(fā)軟件的開發(fā)軟件的PC機(jī)和一臺機(jī)和一臺SOPC開發(fā)系統(tǒng),就可以進(jìn)行開發(fā)系統(tǒng),就可以進(jìn)行SOPC設(shè)計(jì)與開發(fā)。設(shè)計(jì)與開發(fā)。八、嵌入式系統(tǒng)八、嵌入式系統(tǒng) 嵌入式系統(tǒng)是指嵌入到對象體系中的專用計(jì)算機(jī)系統(tǒng),嵌入式系統(tǒng)是指嵌入到對象體系中的專用計(jì)算機(jī)系統(tǒng),包括硬件和軟件兩大部分。硬件包括處理器、存儲器、包括

17、硬件和軟件兩大部分。硬件包括處理器、存儲器、I/O接接口和外部設(shè)備等。軟件包括系統(tǒng)軟件和應(yīng)用軟件??诤屯獠吭O(shè)備等。軟件包括系統(tǒng)軟件和應(yīng)用軟件。 基于基于SOPC的嵌入式系統(tǒng)結(jié)構(gòu)如圖所示。的嵌入式系統(tǒng)結(jié)構(gòu)如圖所示。FPGAPIOCPU核核UARTTimerRAMROMPLLIP模塊模塊DSP存儲器存儲器LEDLCD鍵盤鍵盤通信口通信口 CPU核是嵌入式系統(tǒng)的核心,有硬核和軟核之分。核是嵌入式系統(tǒng)的核心,有硬核和軟核之分。 嵌入式微處理器軟核比硬核使用更加靈活方便。可以根據(jù)需嵌入式微處理器軟核比硬核使用更加靈活方便。可以根據(jù)需要配置輸入要配置輸入/輸出接口(輸出接口(PIO)、通信接口()、通信接

18、口(UART)、定時器、定時器(Timer)、片內(nèi)隨機(jī)存儲器()、片內(nèi)隨機(jī)存儲器(RAM)、片內(nèi)只讀存儲器)、片內(nèi)只讀存儲器(ROM),以及實(shí)現(xiàn)片內(nèi)外通信的總線和總線控制器。),以及實(shí)現(xiàn)片內(nèi)外通信的總線和總線控制器。嵌入式微處理器(嵌入式微處理器(CPU核)核)2. 嵌入式鎖相環(huán)(嵌入式鎖相環(huán)(PLL) 嵌入式鎖相環(huán)可以提供先進(jìn)的時鐘管理功能,例如頻率嵌入式鎖相環(huán)可以提供先進(jìn)的時鐘管理功能,例如頻率合成、可編程相移、片外時鐘輸出、可編程占空比、鎖定檢合成、可編程相移、片外時鐘輸出、可編程占空比、鎖定檢測、可編程帶寬、輸入時鐘擴(kuò)頻和支持高速差分信號的輸入測、可編程帶寬、輸入時鐘擴(kuò)頻和支持高速差分

19、信號的輸入和輸出。和輸出。3. 嵌入式數(shù)字信號處理器(嵌入式數(shù)字信號處理器(DSP) 基于基于SOPC技術(shù)的技術(shù)的FPGA芯片中包含上百個芯片中包含上百個9*9或或18*18位位的嵌入式乘法器,可以實(shí)現(xiàn)通用數(shù)字信號處理(的嵌入式乘法器,可以實(shí)現(xiàn)通用數(shù)字信號處理(DSP)功能。)功能。如如FIR濾波器、圖像處理和視頻處理等。濾波器、圖像處理和視頻處理等。4. 嵌入式嵌入式IP模塊模塊 除了可以嵌入以上模塊外,還可嵌入其他一些常用數(shù)字除了可以嵌入以上模塊外,還可嵌入其他一些常用數(shù)字電路、放大器、比較器、電路、放大器、比較器、ADC/DAC模塊等。在模塊等。在IP資源庫中,資源庫中,有些有些IP模塊

20、是免費(fèi)的,有些是付費(fèi)。還有些可以用戶自行設(shè)模塊是免費(fèi)的,有些是付費(fèi)。還有些可以用戶自行設(shè)計(jì)添加。計(jì)添加。PLD器件器件一、一、PLD發(fā)展歷程發(fā)展歷程熔絲編程的熔絲編程的PROM和和PLA器件器件 AMD公司公司推出推出PAL器件器件 GAL器件器件 FPGA器器件件 EPLD器器件件 CPLD器器件件 內(nèi)嵌復(fù)雜內(nèi)嵌復(fù)雜功能模塊功能模塊的的SoPC 二、二、PLD器件分類器件分類PLD簡單低密度簡單低密度PLD復(fù)雜高密度復(fù)雜高密度PLDPROMPLAPALGALCPLDFPGAEPLD按集成度來分,按集成度來分,PLD可分為簡單低密度可分為簡單低密度PLD和復(fù)雜高密度和復(fù)雜高密度PLD。一般將一

21、般將GAL22V10(500門門750門門 )作為簡單)作為簡單PLD和高密度和高密度PLD的分水嶺的分水嶺1.按集成度分類按集成度分類四種簡單低密度四種簡單低密度PLD的區(qū)別:的區(qū)別:2. 按編程特點(diǎn)分類按編程特點(diǎn)分類PLD器件按照可以編程的次數(shù)可以分為兩類:器件按照可以編程的次數(shù)可以分為兩類:(1) 一次性編程器件(一次性編程器件(OTP,One Time Programmable)(2) 可多次編程器件可多次編程器件OTP類器件的特點(diǎn)是:只允許對器件編程一次,不能修改,類器件的特點(diǎn)是:只允許對器件編程一次,不能修改,而可多次編程器件則允許對器件多次編程,適合于在科研開而可多次編程器件則允

22、許對器件多次編程,適合于在科研開發(fā)中使用。發(fā)中使用。3. 按編程元件和編程工藝分類按編程元件和編程工藝分類(1)熔絲(熔絲(Fuse)(2)反熔絲(反熔絲(Antifuse)編程元件)編程元件(3)紫外線擦除、電可編程,如紫外線擦除、電可編程,如EPROM。(4)電擦除、電可編程方式,電擦除、電可編程方式,(EEPROM) ),如多數(shù)),如多數(shù)CPLD(5)快閃存儲器(快閃存儲器(Flash Memory)(6)靜態(tài)存儲器(靜態(tài)存儲器(SRAM)結(jié)構(gòu),即采用)結(jié)構(gòu),即采用SRAM查找表結(jié)構(gòu),查找表結(jié)構(gòu),如多數(shù)如多數(shù)FPGA Altera公司的公司的FPGA/CPLD器件器件1. Stratix

23、 II 系列系列FPGA 2. Stratix系列系列FPGA 3. ACEX系列系列FPGA 4. FLEX系列系列FPGA 5. MAX系列系列CPLD 6. Cyclone系列系列FPGA低成本低成本FPGA 7. Cyclone II系列系列FPGA 8. MAX II系列器件系列器件 9. Altera宏功能塊及宏功能塊及IP核核 Altera MAX3000A系列的系列的EPM3128A CPLD開發(fā)板開發(fā)板 第一章第一章 Verilog 的基本知識的基本知識l1.1 1.1 硬件描述語言硬件描述語言HDLHDLl1.2 Verilog HDL1.2 Verilog HDL的歷史的

24、歷史l1.3 Verilog HDL1.3 Verilog HDL和和VHDLVHDL的產(chǎn)生及發(fā)展的產(chǎn)生及發(fā)展l1.4 Verilog1.4 Verilog目前的應(yīng)用情況和適用的設(shè)計(jì)目前的應(yīng)用情況和適用的設(shè)計(jì)l1.5 1.5 采用采用Verilog HDLVerilog HDL設(shè)計(jì)復(fù)雜數(shù)字電路的優(yōu)點(diǎn)設(shè)計(jì)復(fù)雜數(shù)字電路的優(yōu)點(diǎn)l1.6 Verilog HDL1.6 Verilog HDL的設(shè)計(jì)流程簡介的設(shè)計(jì)流程簡介l1.7 1.7 小結(jié)小結(jié)1.1 硬件描述語言硬件描述語言HDL1.1.概念:概念:硬件描述語言硬件描述語言HDLHDL(Hardware Description Hardware Des

25、cription LanguageLanguage)是一種形式化方法來描述數(shù)字電路和系統(tǒng)的語言。)是一種形式化方法來描述數(shù)字電路和系統(tǒng)的語言。 HDL是硬件設(shè)計(jì)人員和是硬件設(shè)計(jì)人員和EDA軟件之間的界面,它主要用于算軟件之間的界面,它主要用于算法級、門級到開關(guān)級的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)的建模。法級、門級到開關(guān)級的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)的建模。2.HDL功能功能:HDL功能功能數(shù)字系統(tǒng)仿真、驗(yàn)證數(shù)字系統(tǒng)仿真、驗(yàn)證數(shù)字系統(tǒng)設(shè)計(jì)、綜合數(shù)字系統(tǒng)設(shè)計(jì)、綜合IEEE標(biāo)準(zhǔn)標(biāo)準(zhǔn)Verilog HDLVHDL 3. HDL兩種國際標(biāo)準(zhǔn):兩種國際標(biāo)準(zhǔn):VHDL全稱為全稱為 VHSIC Hardware D

26、escription Language,其中其中VHSIC為為Very High Speed Integerated Circuit。VHDL中文譯名為甚高速集成電路的硬件描述語言。中文譯名為甚高速集成電路的硬件描述語言。4. 為什么要用為什么要用HDL 比起傳統(tǒng)的原理圖設(shè)計(jì)方法來說,比起傳統(tǒng)的原理圖設(shè)計(jì)方法來說,HDL有許多優(yōu)點(diǎn),主有許多優(yōu)點(diǎn),主要有:要有: (1)用用HDL設(shè)計(jì)電路能夠獲得非常抽象級的描述。設(shè)計(jì)者設(shè)計(jì)電路能夠獲得非常抽象級的描述。設(shè)計(jì)者在電路設(shè)計(jì)時不必考慮工藝實(shí)現(xiàn)的具體細(xì)節(jié)。在電路設(shè)計(jì)時不必考慮工藝實(shí)現(xiàn)的具體細(xì)節(jié)。 (2)用用HDL描述電路設(shè)計(jì),在設(shè)計(jì)的前期就可以完成電路描

27、述電路設(shè)計(jì),在設(shè)計(jì)的前期就可以完成電路功能級的驗(yàn)證。功能級的驗(yàn)證。 (3)用用HDL設(shè)計(jì)電路類似于計(jì)算機(jī)編程。帶有注解的文字設(shè)計(jì)電路類似于計(jì)算機(jī)編程。帶有注解的文字性描述更有利于電路的開發(fā)與調(diào)試。性描述更有利于電路的開發(fā)與調(diào)試。1.2 Verilog HDL的歷史的歷史1.2.1 什么是什么是Verilog HDL Verilog HDL是硬件描述語言的一種,用于數(shù)字系統(tǒng)設(shè)是硬件描述語言的一種,用于數(shù)字系統(tǒng)設(shè)計(jì)。設(shè)計(jì)者可用它進(jìn)行各種級別的邏輯設(shè)計(jì),可用它進(jìn)行計(jì)。設(shè)計(jì)者可用它進(jìn)行各種級別的邏輯設(shè)計(jì),可用它進(jìn)行數(shù)字邏輯系統(tǒng)的仿真驗(yàn)證、時序分析、邏輯綜合。數(shù)字邏輯系統(tǒng)的仿真驗(yàn)證、時序分析、邏輯綜合。

28、 Verilog-XL誕生誕生 20世紀(jì)世紀(jì)80年代年代Candence公司公司購買購買Verilog版權(quán)版權(quán)1989Verilog HDL公開發(fā)表公開發(fā)表1990Verilog HDL移交給移交給OVI19901999模擬和數(shù)字都模擬和數(shù)字都適用的適用的Verilog標(biāo)準(zhǔn)公開發(fā)表標(biāo)準(zhǔn)公開發(fā)表Verilog IEEE1364-1995標(biāo)準(zhǔn)公布標(biāo)準(zhǔn)公布19952005Verilog IEEE1364-2005標(biāo)準(zhǔn)公布標(biāo)準(zhǔn)公布Verilog IEEE1364-2001標(biāo)準(zhǔn)公布標(biāo)準(zhǔn)公布20011.3 Verilog HDL和和VHDL的比較的比較共同點(diǎn)共同點(diǎn)能形式化的抽象表示電路的行為和結(jié)構(gòu);能形式

29、化的抽象表示電路的行為和結(jié)構(gòu);支持邏輯設(shè)計(jì)中層次與范圍的描述支持邏輯設(shè)計(jì)中層次與范圍的描述;可借用高級語言的精巧結(jié)構(gòu)來簡化電路行為的描述可借用高級語言的精巧結(jié)構(gòu)來簡化電路行為的描述;具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性;支持電路描述由高層到低層的綜合轉(zhuǎn)換;支持電路描述由高層到低層的綜合轉(zhuǎn)換;硬件描述與實(shí)現(xiàn)工藝無關(guān);硬件描述與實(shí)現(xiàn)工藝無關(guān);便于文檔管理;易于理解和設(shè)計(jì)重用。便于文檔管理;易于理解和設(shè)計(jì)重用。區(qū)別區(qū)別Verilog擁有更廣泛的設(shè)計(jì)群體,成熟的資擁有更廣泛的設(shè)計(jì)群體,成熟的資源也比源也比VHDL豐富;豐富;與與VHDL相比,相比,Veril

30、og HDL容易掌握,與容易掌握,與C語言類似。語言類似。Verilog在系統(tǒng)級抽象方面比在系統(tǒng)級抽象方面比VHDL略差一些,略差一些,而在門級開關(guān)電路描述方面比而在門級開關(guān)電路描述方面比VHDL強(qiáng)的多。強(qiáng)的多。 VHDL VITAL開關(guān)電路級開關(guān)電路級邏輯門級邏輯門級寄存器傳輸級寄存器傳輸級算法級算法級系統(tǒng)級系統(tǒng)級Verilog圖圖1.1.2 Verilog HDL與與VHDL建模能力的比較建模能力的比較1.4 Verilog目前的應(yīng)用情況和適用的設(shè)計(jì)目前的應(yīng)用情況和適用的設(shè)計(jì) 學(xué)習(xí)硬件描述語言的設(shè)計(jì)方法,首選學(xué)習(xí)硬件描述語言的設(shè)計(jì)方法,首選Verilog HDL。Verilog HDL適用

31、的描述層次:適用的描述層次:1、系統(tǒng)級(、系統(tǒng)級(System)2、算法級(、算法級(Alogrthem)3、寄存器傳輸級(、寄存器傳輸級(RTL)4、邏輯級(、邏輯級(Logic)5、門級(、門級(Gate)6、電路開關(guān)級(、電路開關(guān)級(Switch) System Verilog是是Verilog語言的擴(kuò)展和延伸,適用于可語言的擴(kuò)展和延伸,適用于可重用的可綜合重用的可綜合IP和可重用的驗(yàn)證用的和可重用的驗(yàn)證用的IP設(shè)計(jì),以及特大型設(shè)計(jì),以及特大型(千萬門級以上)基于(千萬門級以上)基于IP的系統(tǒng)級設(shè)計(jì)和驗(yàn)證。的系統(tǒng)級設(shè)計(jì)和驗(yàn)證。1.5 采用采用Verilog HDL設(shè)計(jì)復(fù)雜數(shù)字電路的優(yōu)點(diǎn)設(shè)

32、計(jì)復(fù)雜數(shù)字電路的優(yōu)點(diǎn)電路的兩種基本計(jì)算機(jī)輸入方式:電路的兩種基本計(jì)算機(jī)輸入方式:原理圖輸入原理圖輸入 (早期使用)(早期使用)硬件描述語言輸入硬件描述語言輸入原理圖設(shè)計(jì)方法原理圖設(shè)計(jì)方法 : 1.查器件手冊查器件手冊 2.選擇器件選擇器件 3.在面包板實(shí)驗(yàn)、設(shè)計(jì)線路板在面包板實(shí)驗(yàn)、設(shè)計(jì)線路板 4.調(diào)試、定型調(diào)試、定型語言輸入與原理圖輸入方式相比的優(yōu)點(diǎn):語言輸入與原理圖輸入方式相比的優(yōu)點(diǎn):1、容易把設(shè)計(jì)移植到不同廠家的不同芯片中去(最大優(yōu)點(diǎn)、容易把設(shè)計(jì)移植到不同廠家的不同芯片中去(最大優(yōu)點(diǎn)是其與工藝無關(guān)性);是其與工藝無關(guān)性);2、信號位數(shù)容易修改,可以很方便的適應(yīng)不同規(guī)模的應(yīng)用;、信號位數(shù)容易

33、修改,可以很方便的適應(yīng)不同規(guī)模的應(yīng)用;3、Verilog HDL綜合器生成標(biāo)準(zhǔn)的電子設(shè)計(jì)互換格式綜合器生成標(biāo)準(zhǔn)的電子設(shè)計(jì)互換格式(EDIF)文件,獨(dú)立于所采用的實(shí)現(xiàn)工藝,方便文檔交換)文件,獨(dú)立于所采用的實(shí)現(xiàn)工藝,方便文檔交換與保存;與保存;4、 IP (完成某種功能的設(shè)計(jì)模塊)核重用。(完成某種功能的設(shè)計(jì)模塊)核重用。l軟核軟核-功能經(jīng)過驗(yàn)證的、可綜合的、實(shí)現(xiàn)后電路結(jié)構(gòu)總功能經(jīng)過驗(yàn)證的、可綜合的、實(shí)現(xiàn)后電路結(jié)構(gòu)總門數(shù)在門數(shù)在5000門以上的門以上的Verilog HDL模型。模型。l固核固核-在某一種現(xiàn)場可編程門陣列(在某一種現(xiàn)場可編程門陣列(FPGA)器件上實(shí))器件上實(shí)現(xiàn)的,經(jīng)驗(yàn)證是正確的

34、總門數(shù)在現(xiàn)的,經(jīng)驗(yàn)證是正確的總門數(shù)在5000門以上電路結(jié)構(gòu)編碼門以上電路結(jié)構(gòu)編碼文件。文件。l硬核硬核-在某一種專用半導(dǎo)體集成電路工藝的(在某一種專用半導(dǎo)體集成電路工藝的(ASIC)器件上實(shí)現(xiàn)的經(jīng)驗(yàn)證是正確的總門數(shù)在器件上實(shí)現(xiàn)的經(jīng)驗(yàn)證是正確的總門數(shù)在 5000門以上的電路門以上的電路結(jié)構(gòu)掩膜。結(jié)構(gòu)掩膜。 1.6 Verilog HDL的設(shè)計(jì)流程的設(shè)計(jì)流程1.6.1 Verilog HDL設(shè)計(jì)方法設(shè)計(jì)方法Verilog HDL的設(shè)計(jì)方法主要有兩種:的設(shè)計(jì)方法主要有兩種: 自下向上(自下向上(Bottom-Up)的設(shè)計(jì)方法)的設(shè)計(jì)方法 自上向下(自上向下(Top-down)的設(shè)計(jì)方法)的設(shè)計(jì)方法1

35、.自下向上(自下向上(Bottom-Up)的設(shè)計(jì)方法)的設(shè)計(jì)方法系統(tǒng)分解系統(tǒng)分解單元設(shè)計(jì)單元設(shè)計(jì)功能塊劃分功能塊劃分子系統(tǒng)設(shè)計(jì)子系統(tǒng)設(shè)計(jì)系統(tǒng)合成系統(tǒng)合成優(yōu)點(diǎn):優(yōu)點(diǎn):1.傳統(tǒng)設(shè)計(jì)方法傳統(tǒng)設(shè)計(jì)方法 2.設(shè)計(jì)子單元電路時間較短設(shè)計(jì)子單元電路時間較短缺點(diǎn):缺點(diǎn):1.容易造成對系統(tǒng)整體功能把握不足容易造成對系統(tǒng)整體功能把握不足 2.必須先完成各個子模塊,實(shí)現(xiàn)整個系統(tǒng)必須先完成各個子模塊,實(shí)現(xiàn)整個系統(tǒng) 需較長時間。需較長時間。 3. 對設(shè)計(jì)人員之間協(xié)作要求較高對設(shè)計(jì)人員之間協(xié)作要求較高2. 自頂向下(自頂向下(Top_Down)的設(shè)計(jì)方法)的設(shè)計(jì)方法行為設(shè)計(jì)行為設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)電路設(shè)計(jì)電路設(shè)計(jì)邏輯設(shè)計(jì)

36、邏輯設(shè)計(jì)版圖設(shè)計(jì)版圖設(shè)計(jì) 先對整個系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,先對整個系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,把系統(tǒng)劃分成基本單元,然后再把每個基本把系統(tǒng)劃分成基本單元,然后再把每個基本單元劃分為下一個層次的基本單元,指導(dǎo)可單元劃分為下一個層次的基本單元,指導(dǎo)可以直接用元件庫中的元件來實(shí)現(xiàn)為止。以直接用元件庫中的元件來實(shí)現(xiàn)為止。優(yōu)點(diǎn):優(yōu)點(diǎn):1.設(shè)計(jì)周期初期做好了系統(tǒng)分析設(shè)計(jì)周期初期做好了系統(tǒng)分析 2.設(shè)計(jì)的仿真和調(diào)試在早期完成,避設(shè)計(jì)的仿真和調(diào)試在早期完成,避免了設(shè)計(jì)工作的浪費(fèi)。免了設(shè)計(jì)工作的浪費(fèi)。 3. 方便了從系統(tǒng)劃分到管理整個項(xiàng)目,方便了從系統(tǒng)劃分到管理整個項(xiàng)目,使得超大規(guī)模復(fù)雜數(shù)字電路的設(shè)計(jì)成為可

37、能。使得超大規(guī)模復(fù)雜數(shù)字電路的設(shè)計(jì)成為可能。缺點(diǎn):缺點(diǎn):1.因采用的綜合工具不同,得到的最因采用的綜合工具不同,得到的最小單元不一致。小單元不一致。 2.制造成本高。制造成本高。系統(tǒng)級設(shè)計(jì)系統(tǒng)級設(shè)計(jì)模塊模塊B模塊模塊A模塊模塊A1模塊模塊A3模塊模塊A2模塊模塊B1模塊模塊B2模塊模塊C模塊模塊C1模塊模塊C3模塊模塊C2Top-Down設(shè)計(jì)思想設(shè)計(jì)思想模塊與系統(tǒng)的關(guān)系:模塊與系統(tǒng)的關(guān)系: 用用Verilog HDL設(shè)計(jì)有點(diǎn)像搭積木,每個模塊都是一設(shè)計(jì)有點(diǎn)像搭積木,每個模塊都是一個積木塊,不同的積木塊有不同的功能要求(不同模塊要個積木塊,不同的積木塊有不同的功能要求(不同模塊要實(shí)現(xiàn)不同的功能)

38、,制作每個積木塊的過程就是模塊編程,實(shí)現(xiàn)不同的功能),制作每個積木塊的過程就是模塊編程,最后把積木塊(模塊)搭在一起完成整個系統(tǒng)設(shè)計(jì)。最后把積木塊(模塊)搭在一起完成整個系統(tǒng)設(shè)計(jì)。 一個復(fù)雜的系統(tǒng),可以劃分成多個小的功能模塊。因一個復(fù)雜的系統(tǒng),可以劃分成多個小的功能模塊。因此系統(tǒng)設(shè)計(jì)可以按下面此系統(tǒng)設(shè)計(jì)可以按下面3步進(jìn)行:步進(jìn)行:l把系統(tǒng)劃分成模塊;把系統(tǒng)劃分成模塊;l規(guī)劃各個模塊的接口;規(guī)劃各個模塊的接口;l對模塊編程并連接各模塊完成系統(tǒng)設(shè)計(jì)。對模塊編程并連接各模塊完成系統(tǒng)設(shè)計(jì)。1.6.2 HDL設(shè)計(jì)流程設(shè)計(jì)流程HDL描述電路描述電路邏輯綜合、適配邏輯綜合、適配軟件模擬和仿真軟件模擬和仿真結(jié)

39、構(gòu)滿意結(jié)構(gòu)滿意功能劃分功能劃分編程下載編程下載YN結(jié)構(gòu)滿意結(jié)構(gòu)滿意NY綜合綜合是指將高層次的設(shè)計(jì)描述自動轉(zhuǎn)化為較低層次描述的是指將高層次的設(shè)計(jì)描述自動轉(zhuǎn)化為較低層次描述的過程。過程。綜合(綜合(Synthesis)行為綜合:行為描述(行為綜合:行為描述(HDL描述)轉(zhuǎn)換到描述)轉(zhuǎn)換到RTL級描述級描述邏輯綜合:邏輯綜合:RTL級描述轉(zhuǎn)換到邏輯門級級描述轉(zhuǎn)換到邏輯門級版圖綜合版圖綜合(結(jié)構(gòu)綜合結(jié)構(gòu)綜合) :邏輯門級轉(zhuǎn)換到版圖或配置網(wǎng)表:邏輯門級轉(zhuǎn)換到版圖或配置網(wǎng)表形式形式綜合器綜合器是將原理圖或是將原理圖或HDL描述的電路功能轉(zhuǎn)化為具體電路結(jié)描述的電路功能轉(zhuǎn)化為具體電路結(jié)構(gòu)網(wǎng)表的工具。構(gòu)網(wǎng)表的工

40、具。適配(適配(Fitter)適配器適配器也稱結(jié)構(gòu)綜合器,功能是將由綜合器產(chǎn)生的網(wǎng)表文件也稱結(jié)構(gòu)綜合器,功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中(進(jìn)行邏輯映射操作),并產(chǎn)生最配置于指定的目標(biāo)器件中(進(jìn)行邏輯映射操作),并產(chǎn)生最終的可下載文件。終的可下載文件。 CPLD產(chǎn)生熔絲圖文件,即產(chǎn)生熔絲圖文件,即JEDEC/POF文件文件 FPGA產(chǎn)生產(chǎn)生Bitstream位流數(shù)據(jù)文件位流數(shù)據(jù)文件適配器多由適配器多由FPGA/CPLD生產(chǎn)商提供,因?yàn)檫m配的過程直接生產(chǎn)商提供,因?yàn)檫m配的過程直接與器件的具體結(jié)構(gòu)相關(guān)與器件的具體結(jié)構(gòu)相關(guān)仿真(仿真(Simulation)仿真也稱為模擬,是對所設(shè)計(jì)

41、電路的功能的驗(yàn)證。仿真也稱為模擬,是對所設(shè)計(jì)電路的功能的驗(yàn)證。仿真仿真功能仿真:又稱前仿真,不考慮信號時延等因素的仿真。功能仿真:又稱前仿真,不考慮信號時延等因素的仿真。時序仿真:又稱后仿真,針對具體器件在完成布局布時序仿真:又稱后仿真,針對具體器件在完成布局布線后進(jìn)行的含時延的仿真。線后進(jìn)行的含時延的仿真。編程(編程(Program)編程又稱下載,是把適配后生成的編程文件裝入編程又稱下載,是把適配后生成的編程文件裝入PLD器件中。器件中。通常將對基于通常將對基于E2PROM工藝的非易失結(jié)構(gòu)工藝的非易失結(jié)構(gòu)CPLD器件的下載稱器件的下載稱為編程(為編程(Program),而將基于),而將基于S

42、RAM工藝結(jié)構(gòu)的工藝結(jié)構(gòu)的FPGA器件器件的下載稱為配置(的下載稱為配置(Configure)。)。小結(jié):小結(jié):1)采用)采用Verilog HDL設(shè)計(jì)方法比采用電路圖輸入的方法更有設(shè)計(jì)方法比采用電路圖輸入的方法更有優(yōu)越性;優(yōu)越性;2)在兩種符合)在兩種符合IEEE標(biāo)準(zhǔn)的硬件描述語言中,標(biāo)準(zhǔn)的硬件描述語言中,Verilog HDL與與VHDL相比更加基礎(chǔ)、更易掌握;相比更加基礎(chǔ)、更易掌握;3)Verilog HDL可用于復(fù)雜數(shù)字邏輯電路和系統(tǒng)的總體仿真、可用于復(fù)雜數(shù)字邏輯電路和系統(tǒng)的總體仿真、子系統(tǒng)仿真和具體電路綜合等各個設(shè)計(jì)階段。子系統(tǒng)仿真和具體電路綜合等各個設(shè)計(jì)階段。1.7 小結(jié)小結(jié)第第2

43、章章 Verilog語法的基本概念語法的基本概念1、用、用Verilog HDL描述的電路設(shè)計(jì)就是該電路的描述的電路設(shè)計(jì)就是該電路的Verilog HDL模型,也稱為模型,也稱為模塊(模塊(module)。)。3、Verilog模型可以是實(shí)際電路的不同級別的抽象。這些抽模型可以是實(shí)際電路的不同級別的抽象。這些抽象的級別和它們所對應(yīng)的模型類型共有以下象的級別和它們所對應(yīng)的模型類型共有以下5種:種: (1)系統(tǒng)級系統(tǒng)級(systemlevel):用語言提供的高級結(jié)構(gòu)能夠用語言提供的高級結(jié)構(gòu)能夠?qū)崿F(xiàn)所設(shè)計(jì)模塊的外部性能的模型。實(shí)現(xiàn)所設(shè)計(jì)模塊的外部性能的模型。 (2)算法級算法級(algorithml

44、evel):用語言提供的高級結(jié)構(gòu)能用語言提供的高級結(jié)構(gòu)能夠?qū)崿F(xiàn)算法運(yùn)行的模型。夠?qū)崿F(xiàn)算法運(yùn)行的模型。(3)RTL級級(Register Transfer Level):描述數(shù)據(jù)在寄存器描述數(shù)據(jù)在寄存器之間的流動和如何處理、控制這些數(shù)據(jù)流動的模型。之間的流動和如何處理、控制這些數(shù)據(jù)流動的模型。 (4)門級門級(gatelevel):描述邏輯門以及邏輯門之間連接的描述邏輯門以及邏輯門之間連接的模型。模型。(5)開關(guān)級開關(guān)級(switchlevel):描述器件中三極管和儲存節(jié)點(diǎn)描述器件中三極管和儲存節(jié)點(diǎn)以及它們之間連接的模型。以及它們之間連接的模型。這種行為描述語言具有以下功能:這種行為描述語言具有

45、以下功能:l可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu)??擅枋鲰樞驁?zhí)行或并行執(zhí)行的程序結(jié)構(gòu)。l用延遲表達(dá)式或事件表達(dá)式來明確地控制過程的啟動時間。用延遲表達(dá)式或事件表達(dá)式來明確地控制過程的啟動時間。l通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為。通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為。l提供了條件、提供了條件、if-else、case、循環(huán)程序結(jié)構(gòu)。、循環(huán)程序結(jié)構(gòu)。l提供了可帶參數(shù)且非零延遲時間的任務(wù)提供了可帶參數(shù)且非零延遲時間的任務(wù)(task)程序結(jié)構(gòu)。程序結(jié)構(gòu)。l提供了可定義新的操作符的函數(shù)結(jié)構(gòu)提供了可定義新的操作符的函數(shù)結(jié)構(gòu)(function):l提供了用于建立表達(dá)式的算術(shù)運(yùn)算

46、符、邏輯運(yùn)算符、位運(yùn)算提供了用于建立表達(dá)式的算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。符。lVerilog HDL語言作為一種結(jié)構(gòu)化的語言也非常適合于門級語言作為一種結(jié)構(gòu)化的語言也非常適合于門級和開關(guān)級的模型設(shè)計(jì)。和開關(guān)級的模型設(shè)計(jì)。 2.1 Verilog模塊的基本概念模塊的基本概念2.2.1 模塊的概念及結(jié)構(gòu)模塊的概念及結(jié)構(gòu) 模塊(模塊(module)是是Verilog HDL語言的基本單元,每語言的基本單元,每個個Verilog HDL設(shè)計(jì)的系統(tǒng)都是由若干個模塊組成的。設(shè)計(jì)的系統(tǒng)都是由若干個模塊組成的。 模塊作用模塊作用:用于描述某個設(shè)計(jì)的功能或結(jié)構(gòu)及其與其:用于描述某個設(shè)計(jì)的功能或結(jié)構(gòu)及其與其

47、他模塊通信的外部接口。每個模塊都有接口部分,用來描他模塊通信的外部接口。每個模塊都有接口部分,用來描述與其它模塊之間的連接。述與其它模塊之間的連接。模塊的基本結(jié)構(gòu)如下:模塊的基本結(jié)構(gòu)如下:module () 端口說明(端口說明(input ,output,inout) 參數(shù)定義(可選)參數(shù)定義(可選) 數(shù)據(jù)類型定義數(shù)據(jù)類型定義 連續(xù)賦值語句(連續(xù)賦值語句(assign) 過程塊(過程塊(initial或或always) 行為描述語句行為描述語句 底層模塊實(shí)例底層模塊實(shí)例 任務(wù)和函數(shù)任務(wù)和函數(shù) 延時說明塊延時說明塊endmodule模塊名是模塊的唯一模塊名是模塊的唯一的標(biāo)識符。端口列表的標(biāo)識符。

48、端口列表是輸入輸出和雙向端是輸入輸出和雙向端口的列表,這些端口口的列表,這些端口用來與其他模塊進(jìn)行用來與其他模塊進(jìn)行連接。連接。數(shù)據(jù)類型定義部分用數(shù)據(jù)類型定義部分用來指定模塊內(nèi)用到的來指定模塊內(nèi)用到的數(shù)據(jù)對象為寄存器型、數(shù)據(jù)對象為寄存器型、存儲器型或線型存儲器型或線型過程塊包括過程塊包括initial和和always兩種,行為描兩種,行為描述語句只能出現(xiàn)在過述語句只能出現(xiàn)在過程塊中。程塊中。輸出與輸入端口間輸出與輸入端口間的路徑延時說明的路徑延時說明下面以一個與非門模塊來說明模塊結(jié)構(gòu):下面以一個與非門模塊來說明模塊結(jié)構(gòu): 輸出輸出out是輸入是輸入in1和和in2相與后求反的結(jié)果。相與后求反的

49、結(jié)果。 module nand (in1, in2, out ) ; /nand 模塊模塊 input in1, in2 ; /輸入端口說明輸入端口說明 output out ; /輸出端口說明輸出端口說明 wire in1, in2, out ; /數(shù)據(jù)類型定義數(shù)據(jù)類型定義 assign out = ( in1 & in2 ) ; / 連續(xù)賦值語句連續(xù)賦值語句 endmodule / 模塊結(jié)束模塊結(jié)束nandoutin1in2endmodule表明模塊的結(jié)束,其后沒有分號。表明模塊的結(jié)束,其后沒有分號。 模塊是由兩部分組成的:模塊是由兩部分組成的: 一部分描述接口,另一部分描述邏輯功能,即定

50、義輸入一部分描述接口,另一部分描述邏輯功能,即定義輸入是如何影響輸出的,電路符號的引腳就是程序模塊的接口,是如何影響輸出的,電路符號的引腳就是程序模塊的接口,而程序模塊描述了電路符號所實(shí)現(xiàn)的邏輯功能。而程序模塊描述了電路符號所實(shí)現(xiàn)的邏輯功能。 Verilog HDL程序包括程序包括4個主要部分:端口定義、個主要部分:端口定義、I/O說說明、內(nèi)部信號聲明和功能定義。明、內(nèi)部信號聲明和功能定義。 一、端口定義一、端口定義 模塊的端口聲明了模塊的輸入輸出口。其格式如下:模塊的端口聲明了模塊的輸入輸出口。其格式如下: module 模塊名模塊名(口口1,口,口2,口,口3,口,口4,);二、模塊內(nèi)容二

51、、模塊內(nèi)容 模塊的內(nèi)容包括模塊的內(nèi)容包括: IO說明、內(nèi)部信號聲明和功能定義。說明、內(nèi)部信號聲明和功能定義。 1IO說明的格式說明的格式 輸入口:輸入口:input 信號位寬信號位寬-1:0 端口名端口名1; input 信號位寬信號位寬-1:0 端口名端口名i; 輸出口:輸出口:output 信號位寬信號位寬-1:0 端口名端口名1; output 信號位寬信號位寬-1:0 端口名端口名j;輸入輸出口:輸入輸出口:inout 信號位寬信號位寬-1:0 端口名端口名1; inout 信號位寬信號位寬-1:0 端口名端口名k; 當(dāng)同一類信號的位寬相同時,可以合并在一起。例如:當(dāng)同一類信號的位寬相

52、同時,可以合并在一起。例如: input 2:0 a,b,c;該例中該例中a,b,c三個輸入信號的位寬同為三個輸入信號的位寬同為3位。位。IO說明也可以寫在端口聲明語句里。其格式如下:說明也可以寫在端口聲明語句里。其格式如下:module module_name (input port1,input port2, output port1,output port2);2內(nèi)部信號說明內(nèi)部信號說明 在模塊內(nèi)在模塊內(nèi),除了進(jìn)行除了進(jìn)行I/O口說明,還要聲明數(shù)據(jù)類型,口說明,還要聲明數(shù)據(jù)類型,wire和和reg類型變量。類型變量。 如:如:reg width-1:0 R變量變量1,R變量變量2; wi

53、re width-1:0 W變量變量1,W變量變量2; reg為寄存器型變量,為寄存器型變量,wire為連線型變量。為連線型變量。3功能定義功能定義 模塊中最重要的部分是邏輯功能定義部分。有模塊中最重要的部分是邏輯功能定義部分。有3種方法種方法可以產(chǎn)生模塊中所要實(shí)現(xiàn)的邏輯功能??梢援a(chǎn)生模塊中所要實(shí)現(xiàn)的邏輯功能。 v1. assign 語句被賦值的變量必須是語句被賦值的變量必須是wire型,操作數(shù)可以型,操作數(shù)可以是是 wire型、型、reg型。型。v2.總是處于激活狀態(tài)??偸翘幱诩せ顮顟B(tài)。v3.可用于描述一個完整的設(shè)計(jì)??捎糜诿枋鲆粋€完整的設(shè)計(jì)。1) 用用“assign”聲明語句(連續(xù)賦值語句

54、)聲明語句(連續(xù)賦值語句) 如:如:assign ab & c; 只需寫一個關(guān)鍵詞只需寫一個關(guān)鍵詞“assign”,后面再加一個方程式即,后面再加一個方程式即可??伞!啊笔沁壿嬇c運(yùn)算符。是邏輯與運(yùn)算符。例例:2選選1數(shù)據(jù)選擇器數(shù)據(jù)選擇器 module mux ( out,a,b,sel); input a,b,sel; output out; assign out = (sel=0) ?a : b; endmodule 2)用實(shí)例元件用實(shí)例元件 (元件調(diào)用)元件調(diào)用) Verilog HDL內(nèi)部定義了一些基本門級元件模塊。使內(nèi)部定義了一些基本門級元件模塊。使用實(shí)例元件的調(diào)用語句,不必重新編寫這

55、些基本門級元件用實(shí)例元件的調(diào)用語句,不必重新編寫這些基本門級元件模塊,直接調(diào)用這些模塊。模塊,直接調(diào)用這些模塊。 元件調(diào)用類似于在電路圖輸入方式下調(diào)入元件圖形符元件調(diào)用類似于在電路圖輸入方式下調(diào)入元件圖形符號來完成設(shè)計(jì)。這種方式側(cè)重于電路的結(jié)構(gòu)描述。號來完成設(shè)計(jì)。這種方式側(cè)重于電路的結(jié)構(gòu)描述。使用實(shí)例元件的格式:使用實(shí)例元件的格式: 門類型關(guān)鍵字門類型關(guān)鍵字 (端口列表);(端口列表);如:如: and #2 u1(q,a,b); Verilog的內(nèi)置門元件如下圖所示:的內(nèi)置門元件如下圖所示:3) 用用“always”過程塊(過程賦值語句)過程塊(過程賦值語句)用用always過程塊來描述邏輯

56、功能,稱為行為描述。多用過程塊來描述邏輯功能,稱為行為描述。多用于描述時序邏輯。于描述時序邏輯。 如:如:always (posedge clk or posedge clr) begin if (clr) q=0; else if(en) qd: end always()語句的括號內(nèi)表示)語句的括號內(nèi)表示的是敏感信號或表達(dá)式。即當(dāng)敏感信號或表達(dá)式的值發(fā)生變的是敏感信號或表達(dá)式。即當(dāng)敏感信號或表達(dá)式的值發(fā)生變化時,執(zhí)行化時,執(zhí)行always塊內(nèi)語句。塊內(nèi)語句。 postedge表示上升沿觸發(fā),表示上升沿觸發(fā),negedge表示下降沿觸發(fā)。表示下降沿觸發(fā)。在功能定義部分可以同時使用這三種表示方法

57、,例如下例:在功能定義部分可以同時使用這三種表示方法,例如下例: module ex (); input ; output .; reg .; assign a=b&c; always (.) begin end and u1(a,b,c); endmodule always語句為順序語句,內(nèi)部語語句為順序語句,內(nèi)部語句是順序執(zhí)行。句是順序執(zhí)行。并行執(zhí)行并行執(zhí)行 要點(diǎn)總結(jié)要點(diǎn)總結(jié) (1)在在Verilog模塊中所有過程塊模塊中所有過程塊(如:如:initial塊、塊、always塊塊)、連續(xù)賦值語句、實(shí)例引用都是并行的;連續(xù)賦值語句、實(shí)例引用都是并行的; (2)它們表示的是一種通過變量名互相連

58、接的關(guān)系;它們表示的是一種通過變量名互相連接的關(guān)系; (3)在同一模塊中這三者出現(xiàn)的先后順序沒有關(guān)系;在同一模塊中這三者出現(xiàn)的先后順序沒有關(guān)系; (4)只有連續(xù)賦值語句只有連續(xù)賦值語句assign和實(shí)例引用語句可以獨(dú)立于過和實(shí)例引用語句可以獨(dú)立于過程塊而存在于模塊的功能定義部分。程塊而存在于模塊的功能定義部分。2.2.2 模塊的調(diào)用模塊的調(diào)用 Verilog HDL是通過是通過“模塊調(diào)用模塊調(diào)用”或稱為或稱為“模塊實(shí)例化模塊實(shí)例化”的方法實(shí)現(xiàn)子模塊與高層模塊的連接。的方法實(shí)現(xiàn)子模塊與高層模塊的連接。 下面通過一個與門建模來說明模塊調(diào)用。該模塊是通過下面通過一個與門建模來說明模塊調(diào)用。該模塊是通

59、過調(diào)用與非門模塊來實(shí)現(xiàn)的。與非門模塊是子模塊,而與門是調(diào)用與非門模塊來實(shí)現(xiàn)的。與非門模塊是子模塊,而與門是頂層模塊。頂層模塊。 與非門模塊程序與非門模塊程序NAND1NAND2w1in1outin2AND這個這個AND模塊含有兩個模塊含有兩個NAND模塊實(shí)例,分別是模塊實(shí)例,分別是NAND1和和NAND2,通過內(nèi)部連線,通過內(nèi)部連線w1連接起來,實(shí)現(xiàn)與門的邏輯功能。連接起來,實(shí)現(xiàn)與門的邏輯功能。module AND (out , in1, in2); /AND模塊模塊 input in1, in2; /兩個輸入端口兩個輸入端口in1和和 in2 output out; /一個輸出端口一個輸出端

60、口out wire w1; /一個模塊內(nèi)部連線一個模塊內(nèi)部連線wire NAND NAND1 (w1, in1, in2); /*調(diào)用(實(shí)例化)一個調(diào)用(實(shí)例化)一個NAND模塊模塊*/ NAND NAND2 (out, w1, w1); /*調(diào)用(實(shí)例化)一個調(diào)用(實(shí)例化)一個NAND模塊模塊*/endmodule /AND模塊結(jié)束模塊結(jié)束 調(diào)用模塊實(shí)例的一般形式為:調(diào)用模塊實(shí)例的一般形式為: () 其中其中是要調(diào)用子模塊的名稱。是要調(diào)用子模塊的名稱。 是傳輸?shù)阶幽K的參數(shù)值,一般為定義是傳輸?shù)阶幽K的參數(shù)值,一般為定義的門級時延。的門級時延。 是把子模塊調(diào)用過來后對他的命名。是把子模塊調(diào)用

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論