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

下載本文檔

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

文檔簡(jiǎn)介

EDA項(xiàng)目教程

——基于VHDL與FPGA主編:于潤偉本章要點(diǎn)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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)論