EDA技術項目教程-基于VHDL與FPGA 課件 于潤偉 項目1、2 數(shù)據(jù)比較器的設計與實現(xiàn)、數(shù)據(jù)運算器的設計與實現(xiàn)_第1頁
EDA技術項目教程-基于VHDL與FPGA 課件 于潤偉 項目1、2 數(shù)據(jù)比較器的設計與實現(xiàn)、數(shù)據(jù)運算器的設計與實現(xiàn)_第2頁
EDA技術項目教程-基于VHDL與FPGA 課件 于潤偉 項目1、2 數(shù)據(jù)比較器的設計與實現(xiàn)、數(shù)據(jù)運算器的設計與實現(xiàn)_第3頁
EDA技術項目教程-基于VHDL與FPGA 課件 于潤偉 項目1、2 數(shù)據(jù)比較器的設計與實現(xiàn)、數(shù)據(jù)運算器的設計與實現(xiàn)_第4頁
EDA技術項目教程-基于VHDL與FPGA 課件 于潤偉 項目1、2 數(shù)據(jù)比較器的設計與實現(xiàn)、數(shù)據(jù)運算器的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩125頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

EDA項目教程

——基于VHDL與FPGA本章要點

EDA技術的內涵

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

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

1.1認識EDA技術

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

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

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

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

1.采用自頂向下設計方案

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

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

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

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

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

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

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

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

在計算機的E盤建立E:\EDAFILE\Example1_1文件夾作為項目文件夾。注意:文件夾名不能有漢字,也不要全是數(shù)字。2.啟動軟件3.打開項目建立向導新項目建立向導對話框5.添加文件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ù)分別為A、B,用Y1、Y2和Y3表示比較結果。

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

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

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

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

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

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

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

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

按鈕,啟動仿真。使用調整焦距工具調整波形坐標間距。(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選項,再次啟動全程編譯。編譯成功后,就可以將設計的程序下載到可編程邏輯芯片中。(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ù)運算器的設計與實現(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é)點上設置有相應的熔絲。在編程時,對需要去除連接的節(jié)點上通以編程電流燒掉熔絲,而需要保持連接的節(jié)點則不通電保留熔絲,編程結束后器件內熔絲的分布情況就決定了器件邏輯功能。

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

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

每個連接點用一個靜態(tài)觸發(fā)器控制的開關代替熔絲,當觸發(fā)器被置1時,開關接通;置0時,開關斷開。在系統(tǒng)不加電時,編程數(shù)據(jù)存儲在片外的E2PROM器件、FlashROM器件、硬盤或軟盤中。在系統(tǒng)上電時,把這些編程數(shù)據(jù)立即寫入到FPGA中,從而實現(xiàn)對FPGA的動態(tài)配置;系統(tǒng)掉電時,片內的編程數(shù)據(jù)將全部丟失。3.FPGA的編程工藝1.邏輯資源量的選擇2.芯片速度的選擇3.器件功耗的選擇2.1.3器件的選用(1)FPGA是“時序豐富”型的,更適合于完成時序邏輯,CPLD是“邏輯豐富”型的,更適合于完成各種算法和組合邏輯,即FPGA更適合于觸發(fā)器豐富的結構,而CPLD更適合于觸發(fā)器有限而乘積項豐富的結構。(2)FPGA主要通過改變內部連線的布線來編程,CPLD通過修改具有固定內連電路的邏輯功能來編程。又由于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Ⅱ軟件的圖形輸入方式,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

按鈕,啟動仿真。使用調整焦距工具調整波形坐標間距,仿真結果如圖所示(1)單擊Assignments→AssignmentsEditor選項,出現(xiàn)配置編輯器窗口,單擊Category輸入框右側的下拉按鈕,從中選擇Pin選項,根據(jù)使用實驗箱的具體情況鎖定管腳。注意:多位管腳需要按位鎖定,例如管腳A需要分別鎖定A[3]、A[2]、A[1]、A[0],不要鎖定A。管腳B、S與A的處理相同。(2)再次編譯成功后,就可以將鎖定的管腳信息加入到設計文件中。(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設計的效率。調用LPM庫函數(shù)非常方便,既可以在圖形輸入法中直接調用,也可以在HDL源文件中調用。2.3.1乘法器的設計1.題目要求

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

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

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

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

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

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

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

使用LPM庫函數(shù)實現(xiàn)。3.建立項目(1)在計算機的E盤,建立文件夾作為項目文件夾。2.3.2除法器的設計(2)啟動QuartusⅡ,單擊【CreateaNewProject】按鈕打開新項目建立向導,也可以單擊菜單File→New→NewQuartusIIProject,在新項目建立向導對話框中分別輸入項目文件夾、項目名和頂層設計實體名。項目名為EXMULT、頂層設計實體名也為EXDID。(3)由于采用圖形輸入方式,在添加文件對話框的Filename中輸入EXDID.bdf,然后單擊【Add】按鈕,添加該文件。(4)在器件設置對話框中,根據(jù)實驗箱或開發(fā)板上使用的器件決定選擇的芯片系列和具體元件,本書選擇CycloneⅣE系列的EP4CE10E22C8芯片。(5)單擊【Finish】按鈕,關閉新項目建立向導。(1)雙擊圖形編輯窗口右側的Library→BasicFunctions→Arithmetic→LPM_DIVIDE,打開保存IP變量對話框。4.生成除法運算模塊(2)單擊【OK】按鈕。在彈出的MegaWizardPlug_1對話框中按照題意,被除數(shù)是4位、除數(shù)是2位,商是4位、余數(shù)是2位。(3)單擊【Next】按鈕。彈出MegaWizardPlug_2對話框,上一條為是否使用流水線功能,如使用可以需要設置時鐘、復位端和使能端;左下一條為優(yōu)化方式,可選(缺省、面積和速度)、右下一條為是否總是返回正的余數(shù)。(4)單擊【Next】按鈕。彈出MegaWizardPlug_3對話框,確定仿真模式。(5)單擊【Next】按鈕。彈出MegaWizardPlug_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論