數(shù)字電子技術(shù)基礎(chǔ) 課件 第5章 Verilog 硬件描述語言和 Quartus軟件_第1頁
數(shù)字電子技術(shù)基礎(chǔ) 課件 第5章 Verilog 硬件描述語言和 Quartus軟件_第2頁
數(shù)字電子技術(shù)基礎(chǔ) 課件 第5章 Verilog 硬件描述語言和 Quartus軟件_第3頁
數(shù)字電子技術(shù)基礎(chǔ) 課件 第5章 Verilog 硬件描述語言和 Quartus軟件_第4頁
數(shù)字電子技術(shù)基礎(chǔ) 課件 第5章 Verilog 硬件描述語言和 Quartus軟件_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)字電子技術(shù)基礎(chǔ)第5章Verilog硬件描述語言和Quartus軟件5.1

Verilog的基本結(jié)構(gòu)1)模塊定義:用module關(guān)鍵字開始定義,后面緊跟著模塊名和端口聲明列表。2)端口聲明:用input、output等關(guān)鍵字聲明,分別代表電路的輸入和輸出。3)內(nèi)部信號(hào)聲明:模塊中可以定義內(nèi)部信號(hào),用于存儲(chǔ)計(jì)算過程中的中間結(jié)果或狀態(tài)。4)功能描述部分:用于描述模塊的功能行為,包括組合邏輯和時(shí)序邏輯。5.1.1模塊聲明5.1.2輸入和輸出端口聲明5.1

Verilog的基本結(jié)構(gòu)5.1.3信號(hào)類型聲明5.1

Verilog的基本結(jié)構(gòu)5.1.4功能描述(1)結(jié)構(gòu)描述結(jié)構(gòu)描述主要用于描述電路中的各種邏輯門電路、寄存器等結(jié)構(gòu)。(2)數(shù)據(jù)流描述數(shù)據(jù)流描述是一種基于行級(jí)的描述方式,常用于組合電路的描述。5.1

Verilog的基本結(jié)構(gòu)(3)行描述行為描述是一種描述電路行為的方式,相對(duì)于數(shù)據(jù)流描述。5.1.5模塊的實(shí)例化5.1

Verilog的基本結(jié)構(gòu)5.2

Verilog語法知識(shí)5.2.1詞法1.分隔符1)空格和制表符:用來分隔不同的關(guān)鍵字、運(yùn)算符、標(biāo)識(shí)符等??崭窈椭票矸赩erilog中被視力相同的分隔符。2)逗號(hào):用來分隔參數(shù)、端口、變量等列表中的不同元素。3)分號(hào):用來表示語句的結(jié)束,通常在模塊實(shí)例化、過程塊結(jié)束等語句后使用。4)括號(hào):用來表示不同的語句塊、表達(dá)式等,包括圓括號(hào)、方括號(hào)、大括號(hào)等。5.2

Verilog語法知識(shí)2.標(biāo)識(shí)符1)模塊名:用于標(biāo)識(shí)模塊,可以包含字母、數(shù)字和下畫線。模塊名是唯一的,不能重復(fù)。2)端口名:用于標(biāo)識(shí)模塊的輸入輸出端口,可以包含字母、數(shù)字和下畫線。5.2

Verilog語法知識(shí)3)信號(hào)名:用于標(biāo)識(shí)各種數(shù)據(jù)類型的變量,包括wire、reg、integer、parameter等。4)參數(shù)名:用于標(biāo)識(shí)模塊的參數(shù)。3.關(guān)鍵字4.注釋5.2

Verilog語法知識(shí)5.2.2常量1.邏輯值常量2.整數(shù)(1)十進(jìn)制整數(shù)表示十進(jìn)制整數(shù)可以使用數(shù)字0~9表示,不帶前綴,可以用負(fù)號(hào)表示負(fù)數(shù),例如-10表示負(fù)十,100表正一百。(2)二進(jìn)制整數(shù)表示二進(jìn)制整數(shù)使用數(shù)字0和1表示,必須以“b”或“B”作為前綴,例如8'b10110101表示二進(jìn)制數(shù)10110101,長度力8位。(3)八進(jìn)制整數(shù)表示八進(jìn)制整數(shù)使用數(shù)字0~7表示,必須以“o”或“O”作前綴,例如16‘047表示八進(jìn)制數(shù)47,長度16位。(4)十六進(jìn)制整數(shù)表示十六進(jìn)制整數(shù)使用數(shù)字0~9和字母A~F(大小寫均可)表示,必須以“h”或“H”作為前綴,例如32‘h1A2B3C4D表示十六進(jìn)制數(shù)1A2B3C.4D,長度32位。5.2

Verilog語法知識(shí)3.買數(shù)5.2

Verilog語法知識(shí)4.字符串5.參數(shù)常量5.2

Verilog語法知識(shí)5.2.3變量1.wire型5.2

Verilog語法知識(shí)2.reg型3.數(shù)字型5.3運(yùn)算符5.3.1算術(shù)運(yùn)算符5.3.1算術(shù)運(yùn)算符1)邏輯非(!):用于取反操作,例如!a。2)邏輯與(&):用于執(zhí)行按位邏輯與操作,例如a&b。3)邏輯或(I):用于執(zhí)行按位邏輯或操作,例如alb。5.3運(yùn)算符4)邏輯異或(^):用于執(zhí)行按位邏輯異或操作,例如a^b。5)邏輯同或(~^):用于執(zhí)行按位邏輯同或操作,例如a~b。5.3.3位運(yùn)算符1)按位與(&):對(duì)兩個(gè)操作數(shù)的每個(gè)二進(jìn)制位執(zhí)行邏輯與操作,結(jié)果是一個(gè)具有相同位數(shù)的新數(shù)。2)按位或(I):對(duì)兩個(gè)操作數(shù)的每個(gè)二進(jìn)制位執(zhí)行邏輯或操作,結(jié)果是一個(gè)具有相同位數(shù)的新數(shù)。3)按位異或(^):對(duì)兩個(gè)操作數(shù)的每個(gè)二進(jìn)制位執(zhí)行邏輯異或操作,結(jié)果是一個(gè)具有相同位數(shù)的新數(shù)。4)按位取反(~):對(duì)操作數(shù)的每個(gè)二進(jìn)制位執(zhí)行邏輯取反操作,結(jié)果是一個(gè)具有相同位數(shù)的新數(shù)。5.3運(yùn)算符5.3.4關(guān)系運(yùn)算符(1)大于(>)如果左操作數(shù)大于右操作數(shù),則該運(yùn)算符返回1,否則返回0。(2)小于(<)如果左操作數(shù)小于右操作數(shù),則該運(yùn)算符返回1,否則返回0。(3)大于或等于(>=)如果左操作數(shù)大于或等于右操作數(shù),則該運(yùn)算符返回1,否則返回0。(4)小于或等于(<=)如果左操作數(shù)小于或等于右操作數(shù),則該運(yùn)算符返回1,否則返回0。5.3.5等式運(yùn)算符(1)相等運(yùn)算符(==)當(dāng)兩個(gè)操作數(shù)相等時(shí),返回1,否則返回0。(2)不等運(yùn)算符(!=)當(dāng)兩個(gè)操作數(shù)不等時(shí),返回1,否則返回0。5.3運(yùn)算符5.3運(yùn)算符5.3.6移位運(yùn)算符5.3.6移位運(yùn)算符5.3.7條件運(yùn)算符5.3運(yùn)算符5.3.8位拼接運(yùn)算符(1)1}運(yùn)算符用于將兩個(gè)或多個(gè)值拼接在一起,形成一個(gè)向量。(2){n{|}運(yùn)算符用于將一個(gè)值重復(fù)n次并形成一個(gè)向量。(3){,}|運(yùn)算符用于將一個(gè)向量分成幾個(gè)部分,并且每個(gè)部分的位數(shù)可以是不同的。5.4語句5.4.1塊語句5.4.2賦值語句5.4語句5.4.3結(jié)構(gòu)聲明語句5.4.4任務(wù)語句和函數(shù)語句1.任務(wù)語句5.4語句5.4語句2.函數(shù)語句5.4語句5.4.5條件語句(1)if語句i語句用于在滿足某個(gè)條件時(shí)執(zhí)行特定的操作,其基本語法如下:5.4語句5.4語句(2)case語句case語句用于根據(jù)一個(gè)選擇變量的不同取值,執(zhí)行不同的操作,其基本語法如下:5.4語句5.4.6循環(huán)語句1.for循環(huán)5.4語句2.while循環(huán)5.4語句3.forever語句5.4語句4.repeat語句5.4.7編譯預(yù)處理1)'define:用于定義宏,例如defineWIDTH32。2)'ifde/ifndef/else/endif:用于條件編譯,例如'ifdefDEBUG…'endif。3)'include:用于包含文件,例如'include"myfile.v"。5.4語句5.4語句5.4.8系統(tǒng)任務(wù)(1)$display/Swrite用于在仿真時(shí)顯示消息。(2)$monitor用于在仿真時(shí)監(jiān)視信號(hào)的變化。(3)Stime用于獲取當(dāng)前仿真的時(shí)間。(4)$random用于生成偽隨機(jī)數(shù)。(5)$stop/$finish用于停止仿真。(6)$fatal/$error/$warning用于生成致命錯(cuò)誤、一般錯(cuò)誤和警告信息。5.5

Quartus軟件的基本操作與使用5.5.1Quartus簡介5.5.2QuartusPrime17.1軟件安裝5.5

Quartus軟件的基本操作與使用1)將下載的文件解壓到同一個(gè)文件下,如圖5-2所示,不改變文件夾下文件的位置。2)雙擊“QuartusLiteSetup-17.1.0.590-windows.exe”文件,進(jìn)入安裝界面,如圖5-3所示。3)單擊“Next”按鈕,進(jìn)入“LicenseAgreement”界面,選擇“Iaccepttheagreement”選項(xiàng),如圖5-4所示。4)單擊“Next”按鈕,進(jìn)入“Installationdirectory”界面,選擇安裝路徑,如圖5-5所示。5.5

Quartus軟件的基本操作與使用5.5

Quartus軟件的基本操作與使用5.5

Quartus軟件的基本操作與使用5)單擊“Next”按鈕,進(jìn)入“SelectComponents”界面,選擇對(duì)應(yīng)的器件庫,并選擇仿真軟件ModelSim,如圖5-6所示。5.5

Quartus軟件的基本操作與使用6)單擊“Next”按鈕,進(jìn)入“ReadytoInstall”界面,在此界面確認(rèn)上述幾步操作設(shè)定的安裝信息,如圖5-7所示。5.5

Quartus軟件的基本操作與使用7)單擊“Next”按鈕,進(jìn)入“Installing”界面,顯示安裝的進(jìn)度信息,如圖5-8所示。5.5

Quartus軟件的基本操作與使用8)安裝完成后,進(jìn)入安裝完成界面,顯示軟件安裝成功后的勾選框信息,如圖5-9所示。9)單擊“Finish”按鈕,完成QuartusPrime軟件、選擇的元器件及ModelSim軟件的安裝。5.5

Quartus軟件的基本操作與使用5.5.3QuartusPrime17.1的基本操作1)単由“始”→所有程序”→“Allera”→QuartusPrime17.1”,或者雙擊桌面上的QuartusPrime快捷方式圖標(biāo),運(yùn)行QuartusPrime17.1軟件,出現(xiàn)圖5-10所不界面。5.5

Quartus軟件的基本操作與使用2)單擊“File”?“NewProjectWizard”,新建一個(gè)工程,如圖5-11所示。5.5

Quartus軟件的基本操作與使用2)單擊“File”“NewProjectWizard”,新建一個(gè)工程,如圖5-11所示。5.5

Quartus軟件的基本操作與使用3)單擊圖5-11中的“Next”按鈕進(jìn)入工程名稱設(shè)定對(duì)話框,如圖5-12所示。5.5

Quartus軟件的基本操作與使用4)單擊“Next”按鈕,進(jìn)入工程類型選擇界面,此處可以選擇新建一個(gè)空的工程(Emptyproject)或者工程模板(Projecttemplate),如圖5-13所示。5.5

Quartus軟件的基本操作與使用5)單擊“Next”按鈕,進(jìn)入添加設(shè)計(jì)文件界面,如圖5-14所示。5.5

Quartus軟件的基本操作與使用6)單擊“Next”按鈕,進(jìn)入器件選擇界面,在此選擇合適的PLD/FPGA芯片型號(hào),如圖5-15所示。5.5

Quartus軟件的基本操作與使用7)單擊“Next”按鈕,進(jìn)入EDA工具設(shè)置界面,在此選擇EDA綜合、仿真、時(shí)序分析工具,如圖5-16所示。8)單擊“Next”按鈕,出現(xiàn)新工程的所有設(shè)定信息,如圖5-17所示,單擊“Finish”按鈕完成新工程的建立。9)單擊“File”?“New”,彈出新建對(duì)話框,在“DesignFiles”選項(xiàng)下選擇“VerilogHDLFile”,如圖5-18所示。5.5

Quartus軟件的基本操作與使用5.5

Quartus軟件的基本操作與使用10)建立了VerilogHIDL文件后,則自動(dòng)打開VerilogHDL編程界面,如圖5-19所示。5.5

Quartus軟件的基本操作與使用11)在編程界面中進(jìn)行程序的編寫。12)代碼輸入結(jié)束后,單擊“Processing”“StartCompilation”對(duì)編寫的代碼進(jìn)行編譯,直到編譯通過。13)編譯通過后才能在工程中進(jìn)行仿真,可以仿真整個(gè)設(shè)計(jì),也可以只仿真設(shè)計(jì)的一部分。5.5

Quartus軟件的基本操作與使用14)單擊“OK”按鈕,彈出圖5-22所示的信號(hào)仿真界面,在“Name”區(qū)域雙擊以添加觀察信號(hào),彈出圖5-23所示對(duì)話框。5.5

Quartus軟件的基本操作與使用15)單擊“NodeFinder”按鈕,彈出圖5-24所示的對(duì)話框。5.5

Quartus軟件的基本操作與使用16)信號(hào)選擇確認(rèn)后,回到信號(hào)仿真界面,如圖5-26所示,所選擇的信號(hào)已經(jīng)添加到信號(hào)仿真界面。5.5

Quartus軟件的基本操作與使用5.5

Quartus軟件的基本操作與使用17)添加信號(hào)后,還需要選擇和調(diào)整相應(yīng)的激勵(lì)輸入信號(hào)。5.5

Quartus軟件的基本操作與使用18)單擊“Simulation”>“RunFunctionalSimulation”,系統(tǒng)開始仿真。19)仿真結(jié)束后,顯示界面如圖5-29所示,圖中cout、sum的波形為仿真得到的波形,可查看此仿真結(jié)果是否符合電路設(shè)計(jì)要求。5.6可編程邏輯器件5.6.1可編程邏輯器件的種類1.CPLD(1)可預(yù)測的計(jì)時(shí)特性由于CPLD的結(jié)構(gòu)固定,因此其計(jì)時(shí)特性是可預(yù)測的,這便得它在需要嚴(yán)格計(jì)時(shí)控制的設(shè)計(jì)中非常有用。(2)非易失性CPLD使用閃存或抗熔絲技術(shù)進(jìn)行編程,因此它是非易失性的。(3)低功耗相比于FPGA,CPL.D通常具有較低的靜態(tài)和動(dòng)態(tài)功耗。5.6可編程邏輯器件2.FPGA(1)高度靈活性FPGA的可編程邏輯塊和可編程的路由資源提供了極高的設(shè)計(jì)靈活性,使得它能夠?qū)崿F(xiàn)各種復(fù)雜的數(shù)字設(shè)計(jì)。(2)高門密度FPGA通常提供了極高的門密度,這使得它能夠?qū)崿F(xiàn)非常復(fù)雜的設(shè)計(jì)。(3)易失性FPGA通常使用SRAM進(jìn)行編程,因此它是易失性的。(4)高性能FPGA通常提供了非常高的性能,尤其是在處理并行計(jì)算和信號(hào)處理任務(wù)時(shí)。3.CPLD和FPGA的適用場景5.6可編程邏輯器件5.6.2基于可編程邏輯器件的設(shè)計(jì)流程1.設(shè)計(jì)輸入2.邏輯綜合3.適配4.編程5.仿真測試5.6可編程邏輯器件5.6.3可編程邏輯器件的優(yōu)缺點(diǎn)1.PLD的優(yōu)點(diǎn)(1)靈活性PLD(如FPGA和CPLD)的最大優(yōu)點(diǎn)就是其靈活性。(2)可重配置性FPGA和CPLD都是可重配置的,這意味著設(shè)計(jì)人員可以在設(shè)備工作過程中或者之后修改其硬件配置。(3)并行處理能力PLD可以并行執(zhí)行多個(gè)操作,這使得它在處理并行計(jì)算和信號(hào)處理任務(wù)時(shí)具有較高的效率。(4)快速原型設(shè)計(jì)使用PL.D,設(shè)計(jì)人員可以快速地進(jìn)行原型設(shè)計(jì)和驗(yàn)證,大大縮短了產(chǎn)品的開發(fā)周期。2.PLD的缺點(diǎn)(1)功耗盡管現(xiàn)代的PLD已經(jīng)作了許多功耗優(yōu)化,但是相比于定制的ASIC芯片,F(xiàn)PGA和CPLD5.6可編程邏輯器件通常仍然具有較高的功耗。(2)成本在大規(guī)模生產(chǎn)時(shí),PLD的成本通常高于定制的ASIC芯片。(3)性能由于FPGA和CPLD的資源是通用和可編程的,因此它們的性能通常無法達(dá)到定制的ASIC芯片的水平。(4)易失性許多FPGA使用SRAM進(jìn)行編程,因此它是易失性的,即當(dāng)電源關(guān)閉后,其配置信息將會(huì)丟失,需要在每次上電時(shí)重新配置。3.與傳統(tǒng)的數(shù)字電路設(shè)計(jì)方法進(jìn)行比較(1)復(fù)雜性和可擴(kuò)展性基本的數(shù)字電路器件通常用于實(shí)現(xiàn)簡單的邏輯功能,而且當(dāng)設(shè)計(jì)的復(fù)雜性增加時(shí),使用這些基本器件的難度也會(huì)隨之增加。(2)靈活性和重用性使用基本的數(shù)字電路器件實(shí)現(xiàn)的設(shè)計(jì)通常是固定的,一旦硬件被實(shí)現(xiàn),就很難修改或更新。(3)開發(fā)周期和成本使用基本的數(shù)字電路器件實(shí)現(xiàn)設(shè)計(jì)通常需要較長的開發(fā)周期和較高的成本,5.6可編程邏輯器件因?yàn)檫@可能需要進(jìn)行物理的硬件設(shè)計(jì)、制造和測試。5.6.4可編程邏輯器件在現(xiàn)代電子系統(tǒng)設(shè)計(jì)中的應(yīng)用(1)嵌入式系統(tǒng)設(shè)計(jì)PLD,尤其是FPGA,由于其在處理并行運(yùn)算和實(shí)時(shí)任務(wù)方面的優(yōu)勢,常被用于嵌入式系統(tǒng)設(shè)計(jì)。(2)高性能計(jì)算在高性能計(jì)算領(lǐng)域,F(xiàn)PGA通常用作計(jì)算加速器。(3)數(shù)字信號(hào)處理(DSP)在音頻和視頻處理領(lǐng)域,F(xiàn)PGA可以用來實(shí)現(xiàn)各種復(fù)雜的數(shù)字信號(hào)處理算法。(4)通信系統(tǒng)設(shè)計(jì)在無線通信領(lǐng)域,F(xiàn)PGA可以用來實(shí)現(xiàn)各種先進(jìn)的通信協(xié)議。(5)系統(tǒng)測試和驗(yàn)證FPGA的可重配置性使其可以用于電子系統(tǒng)的測試和驗(yàn)證。(6)原型設(shè)計(jì)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論