EDA技術(shù)項目教程-基于VHDL與FPGA 課件全套 于潤偉 項目1-7 數(shù)據(jù)比較器的設(shè)計與實現(xiàn)-數(shù)字系統(tǒng)設(shè)計實訓_第1頁
EDA技術(shù)項目教程-基于VHDL與FPGA 課件全套 于潤偉 項目1-7 數(shù)據(jù)比較器的設(shè)計與實現(xiàn)-數(shù)字系統(tǒng)設(shè)計實訓_第2頁
EDA技術(shù)項目教程-基于VHDL與FPGA 課件全套 于潤偉 項目1-7 數(shù)據(jù)比較器的設(shè)計與實現(xiàn)-數(shù)字系統(tǒng)設(shè)計實訓_第3頁
EDA技術(shù)項目教程-基于VHDL與FPGA 課件全套 于潤偉 項目1-7 數(shù)據(jù)比較器的設(shè)計與實現(xiàn)-數(shù)字系統(tǒng)設(shè)計實訓_第4頁
EDA技術(shù)項目教程-基于VHDL與FPGA 課件全套 于潤偉 項目1-7 數(shù)據(jù)比較器的設(shè)計與實現(xiàn)-數(shù)字系統(tǒng)設(shè)計實訓_第5頁
已閱讀5頁,還剩509頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

EDA項目教程

——基于VHDL與FPGA本章要點

EDA技術(shù)的內(nèi)涵

QuartusⅡ軟件的使用數(shù)據(jù)比較器的設(shè)計項目1數(shù)據(jù)比較器的設(shè)計與實現(xiàn)1.1.1發(fā)展歷史

1.計算機輔助設(shè)計(CAD)

1.1認識EDA技術(shù)

這一階段是EDA發(fā)展的初級階段,其主要特征是利用計算機輔助進行電路原理圖的編輯、PCB(印刷電路板)布線。CAD工具可以減少設(shè)計人員繁瑣重復的勞動,但自動化程度低,需要人工干預整個設(shè)計過程。CAD工具大多以計算機為工作平臺,易學易用,現(xiàn)仍有很多這類專用軟件應用于中小規(guī)模的電子系統(tǒng)工程設(shè)計。1.1.1發(fā)展歷史2.計算機輔助工程設(shè)計(CAE)

這一階段的主要特征是以邏輯模擬、定時分析、故障仿真、自動布局布線為核心,重點解決電路設(shè)計的功能檢測等問題,使工程師能在產(chǎn)品制作之前預知產(chǎn)品的功能與性能。CAE工具已經(jīng)具備了自動布局布線、電路的邏輯仿真、電路分析和測試等功能。與CAD技術(shù)相比,CAE技術(shù)除了具有圖形繪制功能外,又增加了電路功能設(shè)計和結(jié)構(gòu)設(shè)計,并且通過電氣連接網(wǎng)絡(luò)表將兩者結(jié)合在一起,以實現(xiàn)工程設(shè)計。1.1認識EDA技術(shù)1.1.1發(fā)展歷史3.電子系統(tǒng)設(shè)計自動化(ESDA)

這一階段采用一種新的設(shè)計概念,即自頂而下(Top-to-Down)的設(shè)計程式和并行工程的設(shè)計方法,設(shè)計者的精力主要集中在所要設(shè)計電子產(chǎn)品的準確定義上,而由EDA系統(tǒng)去完成電子產(chǎn)品的系統(tǒng)級至物理級的設(shè)計,開始實現(xiàn)“概念驅(qū)動工程”的夢想。電子設(shè)計工程師們擺脫了大量的輔助設(shè)計工作,而把精力集中于創(chuàng)造性的方案與概念構(gòu)思上,從而極大地提高了設(shè)計效率,使設(shè)計更復雜的電路和系統(tǒng)成為可能,并且使產(chǎn)品的研制周期大大縮短。

1.1認識EDA技術(shù)(1)在一個可編程芯片上完成系統(tǒng)級的集成已成為可能,即可編程片上系統(tǒng)(SOPC)。(2)計算機硬件平臺性能大幅度提高,為復雜的SOC(系統(tǒng)級芯片)設(shè)計提供了物理基礎(chǔ)。(3)EDA工具和IP(知識產(chǎn)權(quán)核)應用更為廣泛。(4)高性能的EDA工具軟件得到長足的發(fā)展,其自動化和智能化程度不斷提高,為嵌入系統(tǒng)設(shè)計提供了功能強大的開發(fā)環(huán)境。總的趨勢表現(xiàn)在以下幾個方面:

1.采用自頂向下設(shè)計方案

2.應用硬件描述語言(HDL)

3.能夠自動完成仿真和測試

4.開發(fā)技術(shù)的標準化和規(guī)范化

5.對工程技術(shù)人員的硬件知識和經(jīng)驗要求低1.1.2EDA技術(shù)的特點1.硬件描述語言(HDL)

硬件描述語言是各種描述方法中最能體現(xiàn)EDA優(yōu)越性的描述方法。所謂硬件描述語言就是一個描述工具,其描述的對象是設(shè)計電路系統(tǒng)的邏輯功能、實現(xiàn)該功能的算法、選用的電路結(jié)構(gòu)以及其他各種約束條件等。通常要求硬件描述語言既能描述系統(tǒng)的行為,又能描述系統(tǒng)的結(jié)構(gòu)。

目前主要使用Verilog-HDL和VHDL兩種硬件描述語言。1.1.3EDA技術(shù)的內(nèi)涵2.可編程邏輯器件:是實現(xiàn)數(shù)字系統(tǒng)的主要載體??删幊踢壿嬈骷≒LD)是一種可以由用戶編程來實現(xiàn)某種邏輯功能的新型邏輯器件,不僅速度快、集成度高,能夠完成用戶定義的邏輯功能外,還可以加密和重新定義編程,其允許編程次數(shù)可多達上萬次。使用可編程邏輯器件可大大簡化硬件系統(tǒng)、降低成本、提高系統(tǒng)的可靠性和靈活性。目前,PLD主要分為FPGA(現(xiàn)場可編程門陣列)和CPLD(復雜可編程邏輯器件)兩大類。1.1.3EDA技術(shù)的內(nèi)涵3.EDA工具軟件:用于在計算機上仿真、調(diào)試設(shè)計的數(shù)字系統(tǒng)。EDA技術(shù)的核心是利用計算機軟件完成電路設(shè)計的全程自動化,即自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線、仿真,直至對于特定目標芯片(可編程邏輯器件)的適配編譯、邏輯映射和編程下載等工作。1.1.3EDA技術(shù)的內(nèi)涵1.1.4EDA技術(shù)的設(shè)計流程1.設(shè)計準備2.設(shè)計輸入3.設(shè)計處理4.設(shè)計校驗5.器件編程1.組合邏輯電路的設(shè)計(1)分析設(shè)計要求,列出真值表。根據(jù)題意設(shè)定輸入變量和輸出函數(shù),然后將輸入變量以自然數(shù)二進制順序的各種取值組合排列,根據(jù)題意,推導輸出函數(shù)的狀態(tài),列出真值表。(2)根據(jù)真值表寫出輸出函數(shù)的邏輯表達式。將真值表中輸出函數(shù)取值為1所對應輸入變量的各個最小項進行邏輯相加后,便得到輸出邏輯函數(shù)表達式。(3)對輸出邏輯函數(shù)表達式進行化簡。用公式法對邏輯函數(shù)表達式進行化簡,得到邏輯函數(shù)的最簡與非式(或最簡或非式)。(4)畫出邏輯電路圖??筛鶕?jù)最簡輸出邏輯函數(shù)式,也可以根據(jù)要求將輸出邏輯函數(shù)變換為與非表達式、或非表達式、與或非表達式來畫邏輯電路圖。

按照同比較器的定義,設(shè)輸入的兩個1位二進制數(shù)分別為A、B,用Y表示比較結(jié)果。若兩數(shù)相等,輸出1;兩數(shù)不等輸出0。

表1-1同比較器真值表1.2同比較器的設(shè)計輸入端輸出端ABY0010101001111.2.2項目建立1.項目準備

在計算機的E盤建立E:\EDAFILE\Example1_1文件夾作為項目文件夾。注意:文件夾名不能有漢字,也不要全是數(shù)字。2.啟動軟件3.打開項目建立向?qū)马椖拷⑾驅(qū)υ捒?.添加文件6.選擇器件7.選擇EDA工具

8.摘要1.建立圖形輸入文件:單擊菜單File→New選項1.2.3編輯文件編輯窗口輸入元件及管腳同比較器電路

單擊圖形編輯窗口File→Save菜單,不要做任何改動,直接以默認的SameComp為文件名,保存在當前文件夾E:\EDAFILE\Example1_1下。

如果發(fā)現(xiàn)保存的文件名或文件夾不是這樣,可單擊File→SaveAs...菜單,在彈出的對話框中進行修改或選擇文件夾。注意:文件名與項目名必須相同且在同一個文件夾下。1.2.4編譯

單擊菜單欄中的Processing→StartCompilation選項或工具欄的

按鈕,啟動編譯。1.3大小比較器的設(shè)計

不但能夠比較兩個數(shù)字是否相等,還能比較兩數(shù)大小的比較器稱為大小比較器。大小比較器包含同比較器,可以代替同比較器。

設(shè)輸入的兩個二進制數(shù)分別為A、B,用Y1、Y2和Y3表示比較結(jié)果。

若A>B,則Y1=1、Y2=0、Y3=0;

若A=B,則Y1=0、Y2=1、Y3=0;

若A<B,則Y1=0、Y2=0、Y3=1。大小比較器邏輯圖(1)仿真前必須建立波形文件。單擊File→New選項,打開文件選擇窗口,展開Verification/DebuggingFiles選項卡,選擇其中的UniversityProgramVWF選項,單擊【OK】按鈕。2.仿真(2)為了使仿真時間設(shè)置在一個合理的時間區(qū)域上,單擊波形編輯器的菜單Edit→SetEndTime選項,在彈出窗口中的Time輸入框輸入1,單位選us,即整個仿真域的時間設(shè)定為1微秒;單擊波形編輯器的菜單Edit→GridSize…選項,在彈出窗口中的Period輸入框輸入100,單位選ns,即設(shè)定仿真周期為100納秒。結(jié)束設(shè)置后,要將波形文件存盤。(3)雙擊波形編輯器“Name”下的空白處,會打開插入管腳或總線對話框。(5)編輯輸入波形1.3.3時序波形仿真1.44位比較器的設(shè)計1.4.174LS85芯片4位比較器邏輯圖4位比較器仿真波形仿真分析能夠?qū)⒃O(shè)計電路的邏輯功能用波形的形式表現(xiàn)出來,檢驗電路功能。通過仿真分析后,就可以使用QuartusⅡ軟件的編程器把設(shè)計下載到可編程邏輯器件中,進一步驗證電路功能并實現(xiàn)電路。1.管腳鎖定(1)單擊標題欄中的Assignments→PinPlanner選項,出現(xiàn)管腳規(guī)劃窗口1.4.3器件編程(2)在Location輸入框中,雙擊鼠標,再單擊出現(xiàn)的彈出式菜單的下拉式箭頭,出現(xiàn)的下拉菜單列出所選用芯片的所有可用管腳,可根據(jù)所使用的實驗箱或開發(fā)板的管腳分配情況鎖定管腳。將輸入信號管腳鎖定為按鍵、輸出管腳鎖定為發(fā)光二極管。(3)按照同樣的方法,將其他管腳一一鎖定。(4)關(guān)閉配置編輯器。(5)單擊標題欄中的Processing→StartCompilation選項,再次啟動全程編譯。編譯成功后,就可以將設(shè)計的程序下載到可編程邏輯芯片中。在編譯成功后,QuartusⅡ軟件將自動生成編程數(shù)據(jù)文件,如.pof(專用配置器件)和.sof(通過連接計算機上的下載電纜直接對FPGA進行配置)等編程數(shù)據(jù)文件,這些文件可以被編程器使用,對器件進行編程。編程的方式可以是JTAG方式或AS方式,JTAG方式將程序下載到可編程邏輯器件;AS方式將程序下載到存儲器(使用.pof文件)。(1)如果使用ByteBlasterMV編程器,可將ByteBlasterMV下載電纜接到計算機的并行端口;如果使用MasterBlaster編程器,可將MasterBlaster下載電纜連接到計算機的串行端口。編程器下載電纜連接后,要打開EDA實驗箱或開發(fā)板的電源。2.編程(2)如果使用USB-Blaster編程器,需要安裝USB驅(qū)動程序。將USB-Blaster編程器一端連接到計算機的USB端口,另一端連接到EDA實驗箱或開發(fā)板的JTAG接口,打開EDA實驗箱或開發(fā)板的電源。這時會彈出一個USB驅(qū)動程序?qū)υ捒?,根?jù)對話框的提示,選擇用戶手動搜索驅(qū)動程序,如果QuartusⅡ安裝在D盤的ALTERA文件夾下,則驅(qū)動程序的路徑為D:\ALTERA\QUARTUS\DRIVERS\USB-BLASTER。(3)單擊Tools→Programmer選項(4)單擊圖中的【HardwareSetup】按鈕(5)單擊Availablehardwareitems列表框,雙擊USB-Blaster[USB-0],然后單擊【Close】按鈕,關(guān)閉硬件配置對話框。(6)在編程窗口中,單擊Mode下拉框右端的下拉按鈕,選中JTAG編程方式。JTAG編程方式支持在系統(tǒng)編程,可對FPGA、DSP等器件進行編程,是通用的編程方式。另外,ActiveSerialProgramming模式可對FLASH存儲器進行編程。(7)單擊【AddFiles】按鈕,在彈出的對話框中,再打開output_files文件夾,選中.sof文件。根據(jù)實驗箱或開發(fā)板的實際情況,測試電路。本書使用的開發(fā)板:輸入信號為按鍵按下時,輸入信號為1,按鍵指示燈亮;按鍵抬起時,輸入信號為0,按鍵指示燈暗。輸出信號為1時,信號燈亮;輸出信號為0時,信號燈暗。3.電路測試1.題目說明

設(shè)計一個比較兩個4位二進制數(shù)是否相同的同比較器。要求:設(shè)計出4位同比較器的原理圖,建立項目,編輯原理圖文件,完成編譯和波形仿真后,依據(jù)開發(fā)板或?qū)嶒炏涞木唧w情況鎖定管腳,再次編譯成功后,下載到實驗箱驗證4位同比較器的功能。1.5實訓:四位同比較器的設(shè)計與實現(xiàn)

兩個4位二進制數(shù)的同比較器,可以在一位二進制數(shù)同比較器的基礎(chǔ)上完成。

如果兩個4位二進制數(shù)的每一數(shù)據(jù)位都相同,則兩個數(shù)據(jù)相同;

只要有一個數(shù)據(jù)位不相同,則兩個數(shù)據(jù)不同。

使用四個同比較器比較4位二進制數(shù)的每一位,得到四個輸出結(jié)果,再接入一個4輸入端的與門,與門的輸出端就是4位同比較器的輸出端。2.設(shè)計提示設(shè)輸入的兩個4位二進制數(shù)分別為A[3..0]、B[3..0],用Y表示比較結(jié)果。若兩數(shù)相同,輸出1;兩數(shù)不同輸出0。4位同比較器的原理圖如圖所示。(4)命名節(jié)點線:選中與總線連接的節(jié)點線(在線上單擊),即可輸入節(jié)點線名稱,但需要注意連接信號輸入、輸出端的節(jié)點線,其名稱要與相應管腳的名稱對應。例如與管腳A[3..0]相連的4條節(jié)點線分別命名為A[3]、A[2]、A[1]、A[0],不同的節(jié)點線名代表總線的數(shù)據(jù)分配關(guān)系。還要注意輸入的節(jié)點線名稱的顏色與節(jié)點線的顏色必須相同,不同就是沒有選中,需要重新做。按照邏輯關(guān)系將其連接,按照總線和節(jié)點的規(guī)則命名管腳和連接導線的名稱后,可不用連接。(1)單擊File→New選項,選中UniversityProgramVWF選項,單擊【OK】按鈕,建立波形輸入文件。(2)單擊Edit→SetEndTime選項,設(shè)定仿真時間為2us;單擊Edit→GridSize…選項,設(shè)定仿真時間周期為100ns。(3)雙擊波形編輯器“Name”下的空白處,打開插入管腳或總線對話框。(4)單擊該對話框的[NodeFind]按鈕,打開管腳搜索對話框,選中Pins:all,然后單擊【list】按鈕。在下方的NodesFinder窗口中會出現(xiàn)設(shè)計項目的所有端口管腳名。(5)選中輸入端口節(jié)點和輸出信號節(jié)點后,單擊窗口中間的方向按鈕,將管腳進入窗口右側(cè)的選擇區(qū),單擊OK按鈕;回到插入管腳或總線對話框,再次單擊OK按鈕。(6)調(diào)整波形坐標間距后,選中輸入管腳A,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入100,單位選ns;選中輸入管腳B,單擊波形編輯按鈕

,并在Period輸入框內(nèi)輸入200,單位選ns。4.波形仿真(7)單擊菜單欄中的Simulation→RunFunctionalSimulation選項或工具欄中的

按鈕,啟動仿真。使用調(diào)整焦距工具調(diào)整波形坐標間距。(1)單擊標題欄中的Assignments→PinPlanner選項,出現(xiàn)管腳規(guī)劃窗口。(2)在Location輸入框中,雙擊鼠標,再單擊出現(xiàn)的彈出式菜單的下拉式箭頭,出現(xiàn)的下拉菜單列出所選用芯片的所有可用管腳,可根據(jù)所使用的實驗箱或開發(fā)板的管腳分配情況鎖定管腳。將輸入信號管腳鎖定為按鍵、輸出管腳鎖定為發(fā)光二極管。注意:多位的總線管腳需要按位鎖定,例如管腳A需要分別鎖定A[3]、A[2]、A[1]、A[0],不要鎖定A??偩€管腳B與A的處理相同。(3)單擊標題欄中的Processing→StartCompilation選項,再次啟動全程編譯。編譯成功后,就可以將設(shè)計的程序下載到可編程邏輯芯片中。(4)使用電纜將計算機和實驗箱連接,接通實驗箱電源。單擊Tools→Programmer選項,再單擊【Start】按鈕,即可開始對芯片編程。5.編程輸入信號為按鍵按下輸入信號為1,按鍵指示燈亮;按鍵抬起輸入信號為0,按鍵指示燈暗。輸出信號為1時,信號燈亮;輸出信號為0時,信號燈暗。例如輸入信號A=“1001”、B=“1001”時,輸出信號Y為高電平;輸入信號A=“1001”、B=“1010”時,輸出信號Y為低電平。6.電路測試EDA項目教程

——基于VHDL與FPGA本章要點

可編程邏輯器件QuartusⅡ軟件的圖形輸入方式QuartusⅡ軟件LPM宏單元庫項目2數(shù)據(jù)運算器的設(shè)計與實現(xiàn)2.1可編程邏輯器件20世紀70年代中期,出現(xiàn)了可編程邏輯陣列(ProgrammableLogicArray,PLA)器件20世紀70年代末期,出現(xiàn)了可編程陣列邏輯(ProgrammableArrayLogic,PAL)器件20世紀80年代初期,Lattice公司最先發(fā)明了通用陣列邏輯(GenericArrayLogic,GAL)20世紀80年代中期,Altera公司(已被Intel收購)推出了可擦除可編程邏輯器件(ErasablePLD,EPLD)現(xiàn)場可編程門陣列(FPGA)是Xilinx公司(已被AMD收購)在1985年首家推出的20世紀80年代末期,復雜可編程邏輯器件(CPLD)由Lattice公司提出20世紀末期,出現(xiàn)了片上可編程系統(tǒng)SOPC器件1.早期PLD的編程工藝

早期PLD主要包括可編程邏輯陣列(PLA)、可編程陣列邏輯(PAL)和通用陣列邏輯(GAL)。采用熔絲編程工藝,其原理是在器件可以編程的互連節(jié)點上設(shè)置有相應的熔絲。在編程時,對需要去除連接的節(jié)點上通以編程電流燒掉熔絲,而需要保持連接的節(jié)點則不通電保留熔絲,編程結(jié)束后器件內(nèi)熔絲的分布情況就決定了器件邏輯功能。

早期的PLD只允許編程一次,不利于設(shè)計調(diào)試與修改。但是,其抗干擾能力強、工作速度快,集成度與可靠性都很高,并且價格相對低廉。2.1.2編程工藝(1)EPROM:采用浮柵編程技術(shù),在斷電時存儲的數(shù)據(jù)不會丟失,保存10年,其電荷損失不大于10%。擦除EPROM時,需要將器件放在紫外線或X射線下照射10~20分鐘。其缺點是擦除時間較長,且需要專門的器件。(2)EEPROM:采用隧道浮柵編程技術(shù),其編程和擦除都是通過在MOS管的漏極和控制柵上,加一定幅度和極性的電脈沖實現(xiàn),不需要紫外線照射。EEPROM的擦除和寫入都是逐點進行的,對每一個點先擦后寫,需要花費一定的時間。與EPROM相比,具有擦除方便、速度快的優(yōu)點,因而受到用戶的歡迎。(3)FlashROM:采用沒有隧道的浮柵編程技術(shù),柵極靠襯底較近,是E2PROM編程器件的改進型。擦寫過程與EEPROM基本一致,但擦除不是逐點進行,而是一次全部擦除,然后再逐點改寫,所以其速度比E2PROM編程器件還要快。2.CPLD的編程工藝(1)反熔絲(Antifuse)

反熔絲技術(shù)是通過擊穿介質(zhì)達到連通線路的目的。(2)靜態(tài)存儲器(SRAM)

每個連接點用一個靜態(tài)觸發(fā)器控制的開關(guān)代替熔絲,當觸發(fā)器被置1時,開關(guān)接通;置0時,開關(guān)斷開。在系統(tǒng)不加電時,編程數(shù)據(jù)存儲在片外的E2PROM器件、FlashROM器件、硬盤或軟盤中。在系統(tǒng)上電時,把這些編程數(shù)據(jù)立即寫入到FPGA中,從而實現(xiàn)對FPGA的動態(tài)配置;系統(tǒng)掉電時,片內(nèi)的編程數(shù)據(jù)將全部丟失。3.FPGA的編程工藝1.邏輯資源量的選擇2.芯片速度的選擇3.器件功耗的選擇2.1.3器件的選用(1)FPGA是“時序豐富”型的,更適合于完成時序邏輯,CPLD是“邏輯豐富”型的,更適合于完成各種算法和組合邏輯,即FPGA更適合于觸發(fā)器豐富的結(jié)構(gòu),而CPLD更適合于觸發(fā)器有限而乘積項豐富的結(jié)構(gòu)。(2)FPGA主要通過改變內(nèi)部連線的布線來編程,CPLD通過修改具有固定內(nèi)連電路的邏輯功能來編程。又由于CPLD有專用連線連接宏單元,信號到每個宏單元的延時相同并且延時最短,所以CPLD比FPGA有較大的時間可預測性,可以預測管腳到管腳的最大延遲時間。(3)CPLD主要是基于E2PROM或FlashROM存儲器編程,其優(yōu)點是在系統(tǒng)斷電后,編程信息不丟失,且無需外部存儲器芯片,使用簡單。FPGA大部分是基于SRAM編程,其優(yōu)點是可進行任意次數(shù)的編程,其缺點是編程信息需存放在外部存儲器上,每次上電時,需從器件的外部存儲器或計算機中將編程數(shù)據(jù)寫入SRAM。4.FPGA與CPLD應用比較2.2.1半加器

只考慮兩個加數(shù)本身的相加,不考慮來自低位的進位,這樣的加法運算稱為半加,實現(xiàn)這種運算的邏輯電路稱為半加器。半加器可對兩個一位二進制數(shù)進行加法運算,同時產(chǎn)生進位。1.題目要求

利用QuartusⅡ軟件的圖形輸入方式,

設(shè)計一位二進制半加器,完成編譯和波形仿真后,下載到實驗平臺驗證電路功能。2.電路設(shè)計

設(shè)半加器的輸入端為A(被加數(shù))和B(加數(shù));輸出端為S(和)和C(進位)。2.2加法器的設(shè)計半加器的題目要求列出真值表

(1)在計算機的E盤,建立文件夾作為項目文件夾。(2)啟動QuartusⅡ,單擊【CreateaNewProject】按鈕打開新項目建立向?qū)?,也可以單擊菜單File→New→NewQuartusIIProject,在新項目建立向?qū)υ捒蛑蟹謩e輸入項目文件夾、項目名和頂層設(shè)計實體名。項目名為HalfAdd、頂層設(shè)計實體名也為HalfAdd。(3)由于采用圖形輸入方式,在添加文件對話框的Filename中輸入HalfAdd.bdf,然后單擊【Add】按鈕,添加該文件。(4)在器件設(shè)置對話框中,根據(jù)實驗箱或開發(fā)板上使用的器件決定選擇的芯片系列和具體元件,本書選擇CycloneⅣE系列的EP4CE10E22C8芯片。(5)單擊【Finish】按鈕,關(guān)閉新項目建立向?qū)А?.建立項目(1)編輯。單擊File→New選項,選中BlockDiagram/SchematicFile,單擊【OK】按鈕,打開圖形編輯器窗口。(2)打開圖形文件編輯窗口,根據(jù)半加器的邏輯表達式,依次輸入1個XOR(異或門)、1個AND2(與門)、2個INPUT(輸入管腳)和2個OUTPUT(輸出管腳),按照邏輯關(guān)系將其連接。4.編輯與編譯(1)單擊File→New選項,選中UniversityProgramVWF選項,單擊【OK】按鈕,建立波形輸入文件。(2)單擊Edit→SetEndTime選項,設(shè)定仿真時間為1us;單擊Edit→GridSize…選項,設(shè)定仿真時間周期為40ns。將波形文件以HalfAdd為名稱存入文件夾E:\EXAM221文件夾下。(3)雙擊波形編輯器“Name”下的空白處,打開插入管腳或總線對話框。(4)單擊該對話框的【NodeFind…】按鈕,打開管腳搜索對話框,選中Pins:all,然后單擊【list】按鈕。在下方的NodesFinder窗口中會出現(xiàn)設(shè)計項目的所有端口管腳名。5.波形仿真(5)選中輸入端口節(jié)點A、B和輸出信號節(jié)點S、C后,單擊窗口中間的方向按鈕,將管腳進入窗口右側(cè)的選擇區(qū),單擊【OK】按鈕;回到插入管腳或總線對話框,再次單擊【OK】按鈕。(6)調(diào)整波形坐標間距后,選中輸入管腳A,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入40,單位選ns;選中輸入管腳B,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入80,單位選ns。(7)單擊菜單欄中的Simulation→RunFunctionalSimulation選項或工具欄中的

按鈕,啟動仿真。仿真結(jié)果如圖所示(1)單擊標題欄中的Assignments→PinPlanner選項,出現(xiàn)管腳規(guī)劃窗口。(2)在Location輸入框中,雙擊鼠標,再單擊出現(xiàn)的彈出式菜單的下拉式箭頭,出現(xiàn)的下拉菜單列出所選用芯片的所有可用管腳,可根據(jù)所使用的實驗箱或開發(fā)板的管腳分配情況鎖定管腳。將輸入信號管腳鎖定為按鍵、輸出管腳鎖定為發(fā)光二極管。(3)單擊標題欄中的Processing→StartCompilation選項,再次啟動全程編譯。編譯成功后,就可以將設(shè)計的程序下載到可編程邏輯芯片中。6.編程(4)使用電纜將計算機和實驗箱連接,接通實驗箱電源。單擊Tools→Programmer選項,在編程窗口中進行硬件配置,可選擇LPT1接口輸出的ByteBlasterMV、ByteBlasterⅡ或USB-Blaster編程器等硬件類型,編程方式選中JTAG編程方式。(5)單擊【AddFiles】按鈕,在彈出的對話框中,再打開output_files文件夾,單擊選中HalfAdd.sof文件,再單擊【Start】按鈕,即可開始對芯片編程。(6)如果建立項目時選定的芯片和實驗箱適配板上的芯片不同,下載會失敗。這時可單擊Project→Add/RemoveFilesinProject…,打開設(shè)置對話框,單擊右上角的【Device】按鈕,重新選擇器件,重新編譯,重新鎖定管腳,再次編譯后即可重新下載。輸入信號為按鍵按下輸入信號為1,按鍵指示燈亮;按鍵抬起輸入信號為0,按鍵指示燈暗。輸出信號為1時,信號燈亮;輸出信號為0時,信號燈暗。測試結(jié)果如表2-2所示。7.電路測試測試結(jié)果完全正確的電路,可以生成符號元件,該元件可作為獨立的器件供其他設(shè)計項目調(diào)用。回到圖形編輯器窗口,單擊File→Create/Update→CreateSymbolFilesforCurrentFile選項,在彈出的對話框中將此符號文件按默認名稱(即HalfAdd)保存,擴展名為.bsf。8.生成符號元件不僅考慮兩個一位二進制數(shù)的相加,而且還考慮來自低位進位的運算電路,稱為全加器。全加器有3個輸入端、2個輸出端。1.題目要求

利用QuartusⅡ軟件的圖形輸入方式,設(shè)計一位二進制全加器,完成編譯和波形仿真后,下載到實驗平臺驗證電路功能。2.電路設(shè)計

設(shè)全加器的輸入端為A(被加數(shù))、B(加數(shù))、Ci(低位進位);輸出端為S(和)和Co(進位)。2.2.2全加器根據(jù)全加器的題目要求列出真值表(1)在計算機的E盤,建立文件夾作為項目文件夾。(2)啟動QuartusⅡ,單擊【CreateaNewProject】按鈕打開新項目建立向?qū)?,也可以單擊菜單File→New→NewQuartusIIProject,在新項目建立向?qū)υ捒蛑蟹謩e輸入項目文件夾、項目名和頂層設(shè)計實體名。項目名為ComAdd、頂層設(shè)計實體名也為ComAdd。(3)由于采用圖形輸入方式,在添加文件對話框的Filename中輸入ComAdd.bdf,然后單擊【Add】按鈕,添加該文件。(4)在器件設(shè)置對話框中,根據(jù)實驗箱或開發(fā)板上使用的器件決定選擇的芯片系列和具體元件,本書選擇CycloneⅣE系列的EP4CE10E22C8芯片。(5)單擊【Finish】按鈕,關(guān)閉新項目建立向?qū)А?.建立項目4.編輯與編譯(1)編輯。單擊File→New選項,選中BlockDiagram/SchematicFile,單擊【OK】按鈕,打開圖形編輯器窗口。(2)打開圖形文件編輯窗口,依次輸入2個XOR(異或門)、3個AND2(與門)、1個OR3(或門)、3個INPUT(輸入管腳)和2個OUTPUT(輸出管腳),按照邏輯關(guān)系將其連接(1)單擊File→New選項,選中UniversityProgramVWF選項,單擊【OK】按鈕,建立波形輸入文件。(2)單擊Edit→SetEndTime選項,設(shè)定仿真時間為1us;單擊Edit→GridSize…選項,設(shè)定仿真時間周期為40ns。將波形文件以ComAdd為名稱存入文件夾E:\EXAM222文件夾下。(3)雙擊波形編輯器“Name”下的空白處,打開插入管腳或總線對話框。(4)單擊該對話框的【NodeFind…】按鈕,打開管腳搜索對話框,選中Pins:all,然后單擊【list】按鈕。在下方的NodesFinder窗口中會出現(xiàn)設(shè)計項目的所有端口管腳名。5.波形仿真(5)選中輸入端口節(jié)點A、B、Ci和輸出信號節(jié)點S、Co后,單擊窗口中間的方向按鈕,將管腳進入窗口右側(cè)的選擇區(qū),單擊【OK】按鈕;回到插入管腳或總線對話框,再次單擊【OK】按鈕。(6)調(diào)整波形坐標間距后,選中輸入管腳A,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入80,單位選ns;選中輸入管腳B,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入160,單位選ns;選中輸入管腳Ci,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入320,單位選ns。(7)單擊菜單欄中的Simulation→RunFunctionalSimulation選項或工具欄中的

按鈕,啟動仿真。使用調(diào)整焦距工具調(diào)整波形坐標間距,仿真結(jié)果如圖2-6所示1)單擊標題欄中的Assignments→PinPlanner選項,出現(xiàn)管腳規(guī)劃窗口。(2)在Location輸入框中,雙擊鼠標,再單擊出現(xiàn)的彈出式菜單的下拉式箭頭,出現(xiàn)的下拉菜單列出所選用芯片的所有可用管腳,可根據(jù)所使用的實驗箱或開發(fā)板的管腳分配情況鎖定管腳。將輸入信號管腳鎖定為按鍵、輸出管腳鎖定為發(fā)光二極管。(3)單擊標題欄中的Processing→StartCompilation選項,再次啟動全程編譯。編譯成功后,就可以將設(shè)計的程序下載到可編程邏輯芯片中。6.編程(4)使用電纜將計算機和實驗箱連接,接通實驗箱電源。單擊Tools→Programmer選項,在編程窗口中進行硬件配置,可選擇USB-Blaster編程器等硬件類型,編程方式選中JTAG編程方式。(5)單擊【AddFiles】按鈕,在彈出的對話框中,再打開output_files文件夾,單擊選中ComAdd.sof文件,再單擊【Start】按鈕,即可開始對芯片編程。(6)如果建立項目時選定的芯片和實驗箱適配板上的芯片不同,下載會失敗。這時可單擊Project→Add/RemoveFilesinProject…,打開設(shè)置對話框,單擊右上角的【Device】按鈕,重新選擇器件,重新編譯,重新鎖定管腳,再次編譯后即可重新下載。輸入信號為按鍵按下輸入信號為1,按鍵指示燈亮;按鍵抬起輸入信號為0,按鍵指示燈暗。輸出信號為1時,信號燈亮;輸出信號為0時,信號燈暗。7.電路測試測試結(jié)果完全正確的電路,可以生成符號元件,該元件可作為獨立的器件供其他設(shè)計項目調(diào)用?;氐綀D形編輯器窗口,單擊File→Create/Update→CreateSymbolFilesforCurrentFile選項,在彈出的對話框中將此符號文件按默認名稱(即ComAdd)保存,擴展名為.bsf。8.生成符號元件四位加法器是可以對2個四位二進制數(shù)進行加法運算,并考慮來自低位的進位。1.題目要求

利用QuartusⅡ軟件的圖形輸入方式,設(shè)計四位加法器,完成編譯和波形仿真后,下載到實驗平臺驗證電路功能。2.電路設(shè)計

四位加法器可以在半加器和全加器的基礎(chǔ)上進行,利用1個半加器和3個全加器分別運算四位二進制數(shù)的每個數(shù)位。其應具備的管腳為輸入端:A[3..0]、B[3..0];輸出端:S[3..0]、Bit(Bit=1代表進位)。2.2.3四位加法器(1)在計算機的E盤,建立文件夾作為項目文件夾。(2)啟動QuartusⅡ,單擊【CreateaNewProject】按鈕打開新項目建立向?qū)?,也可以單擊菜單File→New→NewQuartusIIProject,在新項目建立向?qū)υ捒蛑蟹謩e輸入項目文件夾、項目名和頂層設(shè)計實體名,項目名為FCAdd、頂層設(shè)計實體名也為FCAdd。(3)采用圖形輸入方式,在添加文件對話框的Filename中輸入FCAdd.bdf,然后單擊【Add】按鈕,添加該文件。3.建立項目(4)由于需要使用先前生成的半加器元件HalfAdd.bsf和全加器元件ComAdd.bsf,可單擊添加文件對話框的Filename右側(cè)的按鈕,找到HalfAdd.bdf,單擊【Add】按鈕添加該文件;再找到的ComAdd.bdf,再次單擊【Add】按鈕,添加該文件。(5)在器件設(shè)置對話框中,根據(jù)實驗箱或開發(fā)板上使用的器件決定選擇的芯片系列和具體元件,本書選擇CycloneⅣE系列的EP4CE10E22C8芯片。(6)單擊【Finish】按鈕,關(guān)閉新項目建立向?qū)А#?)編輯。單擊File→New選項,選中BlockDiagram/SchematicFile,單擊【OK】按鈕,打開圖形編輯器窗口。(2)雙擊圖形文件編輯窗口的編輯區(qū),打開元件輸入對話框。單擊元件輸入對話框中Name輸入框右側(cè)按鈕,在彈出的“打開”對話框選擇HalfAdd.bsf文件;再選擇ComAdd.bsf文件,并復制成3個,再依次輸入2個INPUT(輸入管腳)和2個OUTPUT(輸出管腳)。4.編輯與編譯(3)命名節(jié)點線:選中與總線連接的節(jié)點線(在線上單擊),即可輸入節(jié)點線名稱,但需要注意連接信號輸入、輸出端的節(jié)點線,其名稱要與相應管腳的名稱對應。例如與管腳A[3..0]相連的4條節(jié)點線分別命名為A[0]、A[1]、A[2]、A[3],不同的節(jié)點線名代表總線的數(shù)據(jù)分配關(guān)系。還要注意輸入的節(jié)點線名稱的顏色與節(jié)點線的顏色必須相同,不同就是沒有選中,需要重新做。(4)更改連線類型:選中連線單擊右鍵,在彈出的下拉菜單中選擇BusLine(總線)或NodeLine(節(jié)點線)選項。傳送兩個以上信號時,必須選用總線。(1)單擊File→New選項,選中UniversityProgramVWF選項,單擊【OK】按鈕,建立波形輸入文件。(2)單擊Edit→SetEndTime選項,設(shè)定仿真時間為1us;單擊Edit→GridSize…選項,設(shè)定仿真時間周期為40ns。將波形文件以HalfAdd為名稱存入文件夾當前文件夾下。(3)雙擊波形編輯器“Name”下的空白處,打開插入管腳或總線對話框。(4)單擊該對話框的【NodeFind…】按鈕,打開管腳搜索對話框,選中Pins:all,然后單擊【list】按鈕。在下方的NodesFinder窗口中會出現(xiàn)設(shè)計項目的所有端口管腳名。5.波形仿真(5)選中輸入端口節(jié)點A、B和輸出信號節(jié)點S、Bit后,單擊窗口中間的方向按鈕,將管腳進入窗口右側(cè)的選擇區(qū),單擊【OK】按鈕;回到插入管腳或總線對話框,再次單擊【OK】按鈕。(6)調(diào)整波形坐標間距后,選中輸入管腳A,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入80,單位選ns;選中輸入管腳B,單擊波形編輯按鈕

,并在Startvalue輸入框內(nèi)輸入“0101”,在Countevery輸入框內(nèi)輸入80,單位選ns。(7)單擊菜單欄中的Simulation→RunFunctionalSimulation選項或工具欄中的

按鈕,啟動仿真。使用調(diào)整焦距工具調(diào)整波形坐標間距,仿真結(jié)果如圖所示(1)單擊Assignments→AssignmentsEditor選項,出現(xiàn)配置編輯器窗口,單擊Category輸入框右側(cè)的下拉按鈕,從中選擇Pin選項,根據(jù)使用實驗箱的具體情況鎖定管腳。注意:多位管腳需要按位鎖定,例如管腳A需要分別鎖定A[3]、A[2]、A[1]、A[0],不要鎖定A。管腳B、S與A的處理相同。(2)再次編譯成功后,就可以將鎖定的管腳信息加入到設(shè)計文件中。(3)使用電纜將計算機和實驗箱連接,接通實驗箱電源。單擊Tools→Programmer選項,編程方式選中JTAG編程方式。(4)在編程窗口中,單擊選中FCAdd.sof文件,再單擊【Start】按鈕,即可開始對芯片編程。6.編程輸入信號A(例如1001)和B(例如0101),輸出信號S應該為1110、輸出信號Bit應該為0(表示沒有進位);改變A和B,再觀察輸出信號S和Bit。7.電路測試LPM(LibraryParameterizedModules)即參數(shù)化的宏功能模塊庫。應用這些功能模塊庫可以大大提高IC設(shè)計的效率。調(diào)用LPM庫函數(shù)非常方便,既可以在圖形輸入法中直接調(diào)用,也可以在HDL源文件中調(diào)用。2.3.1乘法器的設(shè)計1.題目要求

利用QuartusⅡ軟件的圖形輸入方式,設(shè)計一個能實現(xiàn)3位二進制數(shù)和4位二進制數(shù)乘法運算的電路,完成編譯和波形仿真后,下載到實驗平臺驗證電路功能。2.電路設(shè)計

使用LPM庫函數(shù)實現(xiàn)。2.3LPM宏單元庫(1)在計算機的E盤,建立文件夾作為項目文件夾。(2)啟動QuartusⅡ,單擊【CreateaNewProject】按鈕打開新項目建立向?qū)?,也可以單擊菜單File→New→NewQuartusIIProject,在新項目建立向?qū)υ捒蛑蟹謩e輸入項目文件夾、項目名和頂層設(shè)計實體名。項目名為EXMULT、頂層設(shè)計實體名也為EXMULT。(3)由于采用圖形輸入方式,在添加文件對話框的Filename中輸入EXMULT.bdf,然后單擊【Add】按鈕,添加該文件。(4)在器件設(shè)置對話框中,根據(jù)實驗箱或開發(fā)板上使用的器件決定選擇的芯片系列和具體元件,本書選擇CycloneⅣE系列的EP4CE10E22C8芯片。(5)單擊【Finish】按鈕,關(guān)閉新項目建立向?qū)А?.建立項目(1)雙擊圖形編輯窗口右側(cè)的Library→BasicFunctions→Arithmetic→LPM_MULT,打開保存IP變量對話框,如圖所示。4.生成乘法運算模塊(2)單擊【OK】按鈕。在彈出的MegaWizardPlug_1對話框中按照題意,被乘數(shù)是3位、乘數(shù)是4位,乘積是7位。如圖所示。(3)單擊【Next】按鈕。彈出MegaWizardPlug_2對話框,從上到下依次為乘數(shù)是否設(shè)置為常數(shù)(以及常數(shù)值)、乘運算的類型(無符號或有符號)、乘運算的實現(xiàn)方式(缺省、部分器件自帶的乘法電路、邏輯單元)。(4)單擊【Next】按鈕。彈出MegaWizardPlug_3對話框,上一條為是否使用流水線功能,如使用可以需要設(shè)置時鐘、復位端和使能端;下一條為優(yōu)化方式,可選(缺省、面積和速度)。(5)單擊【Next】按鈕。彈出MegaWizardPlug_4對話框,確定仿真模式。(6)單擊【Next】按鈕。彈出MegaWizardPlug_5對話框,確定生成文件的類型。(7)單擊【Finish】按鈕。彈出QuartusⅡIPFiles對話框。5.編輯與編譯(1)編輯。單擊File→New選項,選中BlockDiagram/SchematicFile,單擊【OK】按鈕,打開圖形編輯器窗口。(2)雙擊圖形文件編輯窗口的編輯區(qū),打開元件輸入對話框。單擊元件輸入對話框中Name輸入框右側(cè)按鈕,在彈出的“打開”對話框選擇MULT.bsf文件,再依次輸入2個INPUT(輸入管腳)和1個OUTPUT(輸出管腳)。(1)單擊File→New選項,選中UniversityProgramVWF選項,單擊【OK】按鈕,建立波形輸入文件。(2)單擊Edit→SetEndTime選項,設(shè)定仿真時間為2us;單擊Edit→GridSize…選項,設(shè)定仿真時間周期為100ns。將波形文件以EXMULT為名稱存入文件夾當前文件夾下。(3)雙擊波形編輯器“Name”下的空白處,打開插入管腳或總線對話框。(4)單擊該對話框的【NodeFind…】按鈕,打開管腳搜索對話框,選中Pins:all,然后單擊【list】按鈕。在下方的NodesFinder窗口中會出現(xiàn)設(shè)計項目的所有端口管腳名。(5)選中輸入端口節(jié)點A、B和輸出信號節(jié)點S后,單擊窗口中間的方向按鈕,將管腳進入窗口右側(cè)的選擇區(qū),單擊【OK】按鈕;回到插入管腳或總線對話框,再次單擊【OK】按鈕。6.波形仿真(6)調(diào)整波形坐標間距后,選中輸入管腳A,在管腳名右側(cè)的B000(取值)上雙擊,打開管腳參數(shù)對話框,將其設(shè)置為UnsignedDecimal(無符號十進制)(7)單擊【OK】按鈕。選中輸入管腳A,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入100,單位選ns;選中輸入管腳B,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入200,單位選ns;選中輸出管腳S,在管腳名右側(cè)的B0000000(取值)上雙擊,打開管腳參數(shù)對話框,將其設(shè)置為UnsignedDecimal(無符號十進制)。

(8)單擊菜單欄中的Simulation→RunFunctionalSimulation選項或工具欄中的

按鈕,啟動仿真。使用調(diào)整焦距工具調(diào)整波形坐標間距。(1)單擊標題欄中的Assignments→PinPlanner選項,出現(xiàn)管腳規(guī)劃窗口。(2)在Location輸入框中,雙擊鼠標,再單擊出現(xiàn)的彈出式菜單的下拉式箭頭,出現(xiàn)的下拉菜單列出所選用芯片的所有可用管腳,可根據(jù)所使用的實驗箱或開發(fā)板的管腳分配情況鎖定管腳。將輸入信號管腳鎖定為按鍵、輸出管腳鎖定為發(fā)光二極管。(3)單擊標題欄中的Processing→StartCompilation選項,再次啟動全程編譯。編譯成功后,就可以將設(shè)計的程序下載到可編程邏輯芯片中。7.編程(4)使用電纜將計算機和實驗箱連接,接通實驗箱電源。單擊Tools→Programmer選項,在編程窗口中進行硬件配置,可選擇LPT1接口輸出的ByteBlasterMV、ByteBlasterⅡ或USB-Blaster編程器等硬件類型,編程方式選中JTAG編程方式。(5)單擊【AddFiles】按鈕,在彈出的對話框中,再打開output_files文件夾,單擊選中EXMULT.sof文件,再單擊【Start】按鈕,即可開始對芯片編程。(6)如果建立項目時選定的芯片和實驗箱適配板上的芯片不同,下載會失敗。這時可單擊Project→Add/RemoveFilesinProject…,打開設(shè)置對話框,單擊右上角的【Device】按鈕,重新選擇器件,重新編譯,重新鎖定管腳,再次編譯后即可重新下載。按照二進制乘法運算規(guī)則驗證電路。例如輸入信號A為“101”(十進制數(shù)字5)、輸入信號B為“1011”(十進制數(shù)字11),輸出信號應該為“0110111”(十進制數(shù)字55)。測試時注意二進制數(shù)字的高、低位的排列順序。8.電路測試1.題目要求

利用QuartusⅡ軟件的圖形輸入方式,設(shè)計一個能實現(xiàn)4位二進制數(shù)和十進制常數(shù)(數(shù)值=3)的除法運算的電路,完成編譯和波形仿真后,下載到實驗平臺驗證電路功能。2.電路設(shè)計

使用LPM庫函數(shù)實現(xiàn)。3.建立項目(1)在計算機的E盤,建立文件夾作為項目文件夾。2.3.2除法器的設(shè)計(2)啟動QuartusⅡ,單擊【CreateaNewProject】按鈕打開新項目建立向?qū)?,也可以單擊菜單File→New→NewQuartusIIProject,在新項目建立向?qū)υ捒蛑蟹謩e輸入項目文件夾、項目名和頂層設(shè)計實體名。項目名為EXMULT、頂層設(shè)計實體名也為EXDID。(3)由于采用圖形輸入方式,在添加文件對話框的Filename中輸入EXDID.bdf,然后單擊【Add】按鈕,添加該文件。(4)在器件設(shè)置對話框中,根據(jù)實驗箱或開發(fā)板上使用的器件決定選擇的芯片系列和具體元件,本書選擇CycloneⅣE系列的EP4CE10E22C8芯片。(5)單擊【Finish】按鈕,關(guān)閉新項目建立向?qū)?。?)雙擊圖形編輯窗口右側(cè)的Library→BasicFunctions→Arithmetic→LPM_DIVIDE,打開保存IP變量對話框。4.生成除法運算模塊(2)單擊【OK】按鈕。在彈出的MegaWizardPlug_1對話框中按照題意,被除數(shù)是4位、除數(shù)是2位,商是4位、余數(shù)是2位。(3)單擊【Next】按鈕。彈出MegaWizardPlug_2對話框,上一條為是否使用流水線功能,如使用可以需要設(shè)置時鐘、復位端和使能端;左下一條為優(yōu)化方式,可選(缺省、面積和速度)、右下一條為是否總是返回正的余數(shù)。(4)單擊【Next】按鈕。彈出MegaWizardPlug_3對話框,確定仿真模式。(5)單擊【Next】按鈕。彈出MegaWizardPlug_4對話框,確定生成文件的類型,單擊單選按鈕DIV.bsf。(6)單擊【Finish】按鈕。彈出QuartusⅡIPFiles對話框。5.生成常數(shù)模塊(1)雙擊圖形編輯窗口右側(cè)的Library→BasicFunctions→Miscellaneous→LPM_CONSTANT,打開保存IP變量對話框.(2)單擊【OK】按鈕。在彈出的MegaWizardPlug_1對話框中按照題意,除數(shù)是十進制數(shù)字3,數(shù)據(jù)寬帶2bits。(1)編輯。單擊File→New選項,選中BlockDiagram/SchematicFile,單擊【OK】按鈕,打開圖形編輯器窗口。(2)雙擊圖形文件編輯窗口的編輯區(qū),打開元件輸入對話框。單擊元件輸入對話框中Name輸入框右側(cè)按鈕,在彈出的“打開”對話框選擇DIV.bsf;同樣添加CON3.bsf文件;再依次輸入1個INPUT(輸入管腳)和2個OUTPUT(輸出管腳)。6.編輯與編譯(1)單擊File→New選項,選中UniversityProgramVWF選項,單擊【OK】按鈕,建立波形輸入文件。(2)單擊Edit→SetEndTime選項,設(shè)定仿真時間為2us;單擊Edit→GridSize…選項,設(shè)定仿真時間周期為100ns。將波形文件以EXDID為名稱存入文件夾E:\EXAM232文件夾下。(3)雙擊波形編輯器“Name”下的空白處,打開插入管腳或總線對話框。(4)單擊該對話框的【NodeFind…】按鈕,打開管腳搜索對話框,選中Pins:all,然后單擊【list】按鈕。在下方的NodesFinder窗口中會出現(xiàn)設(shè)計項目的所有端口管腳名。(5)選中輸入端口節(jié)點N和輸出信號節(jié)點Q、R后,單擊窗口中間的方向按鈕,將管腳進入窗口右側(cè)的選擇區(qū),單擊【OK】按鈕;回到插入管腳或總線對話框,再次單擊【OK】按鈕。7.波形仿真(6)調(diào)整波形坐標間距后,選中輸入管腳N,在管腳名右側(cè)的B0000(取值)上雙擊,打開管腳參數(shù)對話框,將其設(shè)置為UnsignedDecimal(無符號十進制)。同樣設(shè)置輸出信號節(jié)點Q、R。(7)單擊【OK】按鈕。選中輸入管腳N,單擊波形編輯按鈕

,并在Countevery輸入框內(nèi)輸入100,單位選ns。(8)單擊菜單欄中的Simulation→RunFunctionalSimulation選項或工具欄中的

按鈕,啟動仿真。使用調(diào)整焦距工具調(diào)整波形坐標間距。(1)單擊標題欄中的Assignments→PinPlanner選項,出現(xiàn)管腳規(guī)劃窗口。(2)在Location輸入框中,雙擊鼠標,再單擊出現(xiàn)的彈出式菜單的下拉式箭頭,出現(xiàn)的下拉菜單列出所選用芯片的所有可用管腳,可根據(jù)所使用的實驗箱或開發(fā)板的管腳分配情況鎖定管腳。將輸入信號管腳鎖定為按鍵、輸出管腳鎖定為發(fā)光二極管。(3)單擊標題欄中的Processing→StartCompilation選項,再次啟動全程編譯。編譯成功后,就可以將設(shè)計的程序下載到可編程邏輯芯片中。8.編程(4)使用電纜將計算機和實驗箱連接,接通實驗箱電源。單擊Tools→Programmer選項,在編程窗口中進行硬件配置,可選擇LPT1接口輸出的ByteBlasterMV、ByteBlasterⅡ或USB-Blaster編程器等硬件類型,編程方式選中JTAG編程方式。(5)單擊【AddFiles】按鈕,在彈出的對話框中,再打開output_files文件夾,單擊選中EXDID.sof文件,再單擊【Start】按鈕,即可開始對芯片編程。(6)如果建立項目時選定的芯片和實驗箱適配板上的芯片不同,下載會失敗。這時可單擊Project→Add/RemoveFilesinProject…,打開設(shè)置對話框,單擊右上角的【Device】按鈕,重新選擇器件,重新編譯,重新鎖定管腳,再次編譯后即可重新下載。按照除法運算規(guī)則驗證電路。例如輸入信號A為“1101”(十進制數(shù)字13),除以十進制常數(shù)3,輸出信號商Q為“0100”(十進制數(shù)字4)、余數(shù)R為“0001”(十進制數(shù)字1)。測試時注意二進制數(shù)字的高、低位的排列順序。9.電路測試1.題目說明

利用QuartusⅡ軟件的原理圖輸入方式,使用LPM宏單元庫設(shè)計一個能實現(xiàn)4位二進制數(shù)和3位二進制數(shù)的除法運算電路,完成編譯和波形仿真后,下載到實驗平臺驗證電路功能。2.建立項目3.生成除法運算模塊4.編輯與編譯2.4實訓:除法器的設(shè)計與實現(xiàn)除法器原理圖文件

除法器仿真波形(1)記錄并說明仿真波形。(2)整理電路測試記錄表,分析測試結(jié)果。(3)分析被除數(shù)或除數(shù)為零時的運算結(jié)果。實訓報告EDA項目教程

——基于VHDL與FPGA本章要點

VHDL的程序結(jié)構(gòu)VHDL的數(shù)據(jù)結(jié)構(gòu)VHDL的并行語句項目3數(shù)據(jù)編碼器的設(shè)計與實現(xiàn)VHDL是一種用普通文本形式設(shè)計數(shù)字系統(tǒng)的硬件描述語言,主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,可以在任何文字處理軟件環(huán)境中編輯。編寫VHDL程序時允許使用一些符號(字符串)作為標識符,標識符的命名規(guī)則如下:(1)由26個英文字母、數(shù)字0~9及下劃線“_”組成。(2)第一個字符必須以字母開頭。(3)下劃線不能連用,最后一個字符不能是下劃線。(4)對大小寫字母不敏感(英文字母不區(qū)分大小寫)。在VHDL中把具有特定意義的標識符號稱為關(guān)鍵字,只能作固定用途使用,用戶不能將關(guān)鍵字作為一般標識符來使用,如ENTITY,PORT,BEGIN,END等。3.1VHDL的程序結(jié)構(gòu)3.1.1VHDL的基本結(jié)構(gòu)--庫和程序包部分LIBRARYIEEE;--IEEE庫

USEIEEE.STD_LOGIC_1164.ALL;--調(diào)用IEEE庫中STD_LOGIC_1164程序包--實體部分ENTITYnotgateIS--實體名為notgatePORT(--端口說明

a:INSTD_LOGIC;--定義端口類型

和數(shù)據(jù)類型

y:OUTSTD_LOGIC);ENDnotgate;--實體結(jié)束--結(jié)構(gòu)體部分ARCHITECTUREinvOFnotgateIS--結(jié)構(gòu)體名為invBEGINy<=NOTa;--將a取反后賦值給輸出端口yENDinv;--結(jié)構(gòu)體結(jié)束3.1.2庫和程序包1.庫LIBRARY庫名;常用的庫有IEEE庫、STD庫和WORK庫。2.程序包調(diào)用程序包的通用模式為:USE庫名.程序包名.ALL;例如調(diào)用STD_LOGIC_1164程序包中的項目需要使用以下語句:LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;3.1.3VHDL的實體實體的格式如下:ENTITY實體名IS[GENERIC(類屬說明)][PORT(端口說明)]END[ENTITY]實體名;1.類屬說明GENERIC(常數(shù)名1:數(shù)據(jù)類型1:=設(shè)定值1;

……;常數(shù)名n:數(shù)據(jù)類型n:=設(shè)定值n);2.端口說明PORT(端口信號名1:端口模式1數(shù)據(jù)類型1;

……;端口信號名n:端口模式n數(shù)據(jù)類型n);3.1.4VHDL的結(jié)構(gòu)體

一個實體中可以有一個結(jié)構(gòu)體,也可以有多個結(jié)構(gòu)體,但各個結(jié)構(gòu)體不應有重名,其格式如下:ARCHITECTURE結(jié)構(gòu)體名OF實體名IS[結(jié)構(gòu)體說明部分;]BEGIN

功能描述語句;END[ARCHITECTURE]結(jié)構(gòu)體名;3.1.5VHDL的特點1.語法規(guī)范標準、開發(fā)周期短VHDL具有嚴格的語法規(guī)范和統(tǒng)一的標準,可讀性強。用VHDL書寫的源文件既是程序,又是文檔,可以直接用于設(shè)計成果的交流。VHDL采用基于模塊庫的設(shè)計方法,這樣在設(shè)計一個大規(guī)模集成電路或數(shù)字系統(tǒng)的過程中,技術(shù)人員就不需要從門級電路開始一步步地進行設(shè)計,可以用原來設(shè)計好的模塊直接進行累加,這些模塊可以預先設(shè)計或者使用以前設(shè)計中的存檔模塊,這些模塊存放在資源庫中,就可以在以后的設(shè)計中進行復用。不難看出,復用減小了硬件電路設(shè)計的工作量,縮短了開發(fā)周期。3.1.5VHDL的特點2.與工藝無關(guān)

當設(shè)計人員用VHDL進行硬件電路設(shè)計時,并沒有涉及到與工藝有關(guān)的信息。當一個設(shè)計描述進行完編譯、模擬和綜合后,就可以采用不同的工具軟件將設(shè)計映射到不同的器件上去。映射不同的器件,只需要改變相應的工具軟件,而無需修改設(shè)計描述。3.1.5VHDL的特點3.易于ASIC(專用集成電路)移植

當產(chǎn)品的數(shù)量達到相當?shù)囊?guī)模時,采用VHDL開發(fā)的數(shù)字系統(tǒng)能夠很容易地轉(zhuǎn)成ASIC的設(shè)計。有時用于PLD的程序可以直接用于ASIC,并且由于VHDL是一種IEEE的工業(yè)標準硬件描述語言,所以使用VHDL設(shè)計可以確保ASIC廠商生產(chǎn)出高質(zhì)量的芯片產(chǎn)品。3.1.5VHDL的特點4.上市時間短、成本低VHDL和可編程邏輯器件很好地結(jié)合,可以大大提高數(shù)字產(chǎn)品芯片化設(shè)計的實現(xiàn)速度。VHDL使設(shè)計描述更加方便、快捷,可編程邏輯器件的應用可以將產(chǎn)品設(shè)計的前期風險降至最低,并使設(shè)計的快速復制簡單易行。3.2編碼器的設(shè)計

在一些場合,需要用特定的符號或數(shù)碼表示特定的對象,例如一個班級中的每個同學都有不重復的學號,每個電話用戶都有一個特定的號碼等。在數(shù)字電路中,需要將具有某種特定含義的信號變成代碼,利用代碼表示具有特定含義對象的過程,稱為編碼。能夠完成編碼功能的器件,稱為編碼器(Encoder)。編碼器分為普通編碼器和優(yōu)先級編碼器兩類。3.2.1數(shù)據(jù)對象1.常量CONSTANT常量名[,常量名…]:數(shù)據(jù)類型:=表達式;CONSTANTVCC:REAL:=3.3;--常量VCC的類型是實

數(shù),值為3.3CONSTANTGND:INTEGER:=0;--常量GND的類型是

整數(shù),值為0CONSTANTDELAY:TIME:=100ns;--常量DELAY是

時間類型,初值為100ns。數(shù)值和單位之間要留空格。3.2.1數(shù)據(jù)對象2.變量VARIABLE變量名[,變量名…]:數(shù)據(jù)類型[約束條件][:=表達式];VARIABLEs1,s2:INTEGER:=256;VARIABLEcont:INTEGERRANGE0TO10;第一條語句中變量s1和s2都為整數(shù)類型,初值都是256;第二條語句中,RANGE…TO…是約束條件,表示變量cont的數(shù)據(jù)限制在0~10的整數(shù)范圍內(nèi)。變量CONT沒有指定初值,則取默認值,默認值為該類型數(shù)據(jù)的最小值或最左端值,那么本條語句中cont初值為0(最左端值)。3.2.1數(shù)據(jù)對象3.信號SIGNAL信號名[,信號名…]:數(shù)據(jù)類型[約束條件][:=表達式];SIGNALa,b:INTEGER:RANGE0TO7:=5;SIGNALground:BIT:='0';第一條語句定義整數(shù)類型信號a、b,取值范圍限定在0~7,并賦初值5;第二條語句定義位信號ground并賦初值'0'。在VHDL程序中,信號和變量是兩個經(jīng)常使用的對象,都要求先聲明,后使用,具有一定的相似性,其主要區(qū)別如下:(1)在聲明中賦初值,都使用:=運算符;聲明后使用時,信號賦值使用<=運算符,變量賦值仍然使用:=運算符;(2)信號賦值有附加延時,變量賦值則沒有。(3)對于進程語句,進程只對信號敏感,不對變量敏感。(4)外部信號表示端口,內(nèi)部信號可看成硬件中的一根連線。變量在硬件中沒有類似的對應關(guān)系,常用于保存運算的中間結(jié)果。描述硬件邏輯時,還是應以信號為主,盡量減少變量的使用。3.2.2VHDL的運算符(1)邏輯運算符。(2)關(guān)系運算符。(3)移位運算符。(4)符號運算符。(5)連接運算符。(6)算術(shù)運算符。3.2.3賦值語句賦值語句是將一個值或者一個表達式的結(jié)果傳遞給某一個數(shù)據(jù)對象,數(shù)據(jù)在實體內(nèi)部的傳遞以及對端口外的傳遞都必須通過賦值語句來實現(xiàn)。VHDL語言提供了兩種類型的賦值語句:信號賦值語句和變量賦值語句。變量賦值語句和信號賦值語句的語法格式如下:變量:=表達式;信號<=表達式;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYvote_3ISPORT(A,B,C:INSTD_LOGIC;Y:OUTSTD_LOGIC);ENDvote_3;ARCHITECTUREdeOFvote_3ISSIGNALe:STD_LOGIC;--定義e為信號BEGINY<=(AANDB)OR(AANDC)ORe;--以下兩條并行語句與書寫順序無關(guān)e<=BAN

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論