版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、可編程邏輯設(shè)計實驗報告教學(xué)院專業(yè)班級學(xué)號姓名50目錄實驗一 lpm環(huán)境熟悉內(nèi)容2實驗二 cpld的rom/ram使用6實驗三 cpld的flash memory使用9實驗四 cyclone ii系列fpga內(nèi)部存儲器應(yīng)用12實驗五 fpga內(nèi)部乘法器的應(yīng)用15實驗六 stratix內(nèi)部結(jié)構(gòu)及移位寄存器設(shè)計18實驗七 fpga內(nèi)部ram應(yīng)用異步fifo設(shè)計21實驗八 fpga的鎖相設(shè)計25實驗九 fpga中數(shù)字信號處理模塊應(yīng)用29實驗十 alu設(shè)計34實驗十二 乘法器的fpga設(shè)計41實驗十三 fft的fpga設(shè)計47實驗一 lpm環(huán)境熟悉內(nèi)容實驗?zāi)康?、學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行系統(tǒng)設(shè)計。
2、2、學(xué)會器件選擇及器件的引腳分配3、了解所選器件的邏輯單元結(jié)構(gòu)實驗原理1、用lpm參數(shù)模塊化設(shè)計方法設(shè)計一個16位的加減可控計數(shù)器2、選擇合適器件,并進(jìn)行引腳分配3、查看器件內(nèi)部資源使用情況,并對引腳重新進(jìn)行合理分配實驗步驟1、打開quartusii,新建一個工程addsub163、打開symbol tool,選擇megafunctions/arichmetic下的lpm_counter,點(diǎn)擊ok, 修改該宏函數(shù)輸出的形式及存放目錄和名稱4、選擇器件,輸入數(shù)據(jù)位數(shù)和實現(xiàn)的功能,選擇器件的計數(shù)使能5.選擇清零端口,可加上輸入輸出端口6.選擇具體器件,進(jìn)行引腳分配(如果引腳自動分配,可直接進(jìn)行綜合
3、編譯)7.查看器件內(nèi)部邏輯單元使用情況,內(nèi)部資源調(diào)整8.內(nèi)部資源調(diào)整后重新綜合9.功能仿真達(dá)到預(yù)期結(jié)果實驗二 cpld的rom/ram使用實驗?zāi)康?、 學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行cpld的rom設(shè)計。2、 學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行cpld的ram設(shè)計。3、 學(xué)會用quartusii進(jìn)行波形仿真,驗證設(shè)計的rom/ram是不是正確。4、 了解所選器件的邏輯單元結(jié)構(gòu)實驗原理以用lpm參數(shù)化模塊庫設(shè)計一個16k的ram為例,選擇器件為epf10k20tc144-3。1、打開quartusii,新建一個工程ram16k。2、新建一個圖形輸入文件.bdf3、打開symbol tool,選擇me
4、gafunctions/storage下的lpm_ram_dp,點(diǎn)擊ok或者點(diǎn)擊megawizard plug_in manager實驗步驟1、該宏函數(shù)輸出的形式及存放目錄和名稱2、選擇器件及ram的容量(輸出數(shù)據(jù)寬度和地址寬度,max系列只有ram),cyclone和stratix系列可以是單時鐘3、選擇輸入輸出端口(如果輸出端口不選擇,則只需要一個時鐘信號,即輸出是組合電路輸出)。4、完成設(shè)計,點(diǎn)擊ok5、加入輸入輸出引腳6、保存.bdf文件(注意文件名不能跟創(chuàng)建的ram文件名一致),建立波形文件,進(jìn)行仿真。(1)圖為將數(shù)據(jù)存入相應(yīng)的地址單元,使能信號為1時可以寫入數(shù)據(jù)。(2)圖為將數(shù)據(jù)從
5、相應(yīng)的地址單元取出,使能信號為0時可以讀出數(shù)據(jù)。實驗三 cpld的flash memory使用實驗?zāi)康?、學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行maxii系列的flash memory設(shè)計。2、學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行cycloneii系列的ram設(shè)計。3、學(xué)會用quartusii進(jìn)行波形仿真,驗證設(shè)計的rom/ram/flash memory是不是正確。4、了解所選器件的邏輯單元結(jié)構(gòu)。實驗原理以用lpm參數(shù)化模塊庫設(shè)計一個flash,選擇器件為flash memory。1、打開quartusii,新建一個工程flash。2、新建一個圖形輸入文件.bdf3、打開symbol tool,選擇點(diǎn)擊m
6、egawizard plug_in manager4、選擇好器件進(jìn)入到如下圖,選擇串行總線,max ii實驗步驟1、在選擇器件之前先建一個.mif的文件,填充好數(shù)據(jù),在接下來的器件生成的過程中直接選擇加載該文件2、在將器件建好之后,進(jìn)行綜合時會有錯誤,這是應(yīng)該打開軟件上方的assignments里的device然后選擇max ii,完成后綜合就不會出現(xiàn)錯誤7、建立仿真波形文件8、畫出波形進(jìn)行仿真,與實現(xiàn)建好的.mif文件的數(shù)字進(jìn)行對照,以驗證仿真的正確性9、對器件引腳的介紹addr8.0引腳為9位地址端口di15.0為16位數(shù)據(jù)輸入端口nread為讀端口,低電平有效nwrite為寫端口,低電平
7、有效nerase為數(shù)據(jù)擦除端口,低電平有效do15.0為16位數(shù)據(jù)輸出端口10、isp與iic總線spi是一種高速、全雙工、同步通信總線,傳輸?shù)臄?shù)據(jù)位為8位,傳輸時高位在前,地位在后。iic總線每一位數(shù)據(jù)位的傳輸都與時鐘脈沖相對應(yīng),邏輯“0”和邏輯“1”的信號電平取決于相應(yīng)的電源電壓vcc。數(shù)據(jù)傳輸時,scl為高電平期間,sda上的數(shù)據(jù)必須保持穩(wěn)定,在scl為低電平期間,sda上的電平狀態(tài)才允許變化。實驗四 cyclone ii系列fpga內(nèi)部存儲器應(yīng)用實驗?zāi)康?、學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行cpld的rom設(shè)計。2、應(yīng)用cyclone ii系列進(jìn)行rom/ram設(shè)計。3查看cyclone的
8、使用手冊,了解cycloneii系列的配置。實驗原理參考實驗一和實驗二的實驗原理。實驗內(nèi)容1、查看cyclone的使用手冊,了解cycloneii系列的配置2、設(shè)計一個頻率固定的正弦函數(shù)信號發(fā)生器。(1)利用lpm或編寫vhdl/veriloghdl程序,設(shè)計一個計數(shù)器。(2)設(shè)計一個.mif文件,存放正弦函數(shù)的離散數(shù)據(jù)(3)利用lpm設(shè)計一個rom(4)將計數(shù)器的輸出作為rom的地址輸入端,取出rom中存放的正弦函數(shù)數(shù)據(jù)3、設(shè)計一個頻率可選的正弦函數(shù)發(fā)生器在實驗內(nèi)容2的基礎(chǔ)上,思考如何產(chǎn)生一個頻率可選的正弦函數(shù)信號發(fā)生器(例如可產(chǎn)生3種頻率的正弦信號函數(shù)發(fā)生器),并設(shè)計之。4、 進(jìn)一步思考產(chǎn)
9、生任意頻率的正弦函數(shù)信號發(fā)生器。實驗步驟打開symbol tool,選擇megafunctions/storage下的lpm_rom,點(diǎn)擊ok或者點(diǎn)擊megawizard plug_in manager,該宏函數(shù)輸出的形式及存放目錄和名稱(計數(shù)器的設(shè)計)該宏函數(shù)輸出的形式及存放目錄和名稱:選擇進(jìn)位輸出該宏函數(shù)輸出的形式及存放目錄和名稱(rom存儲器的設(shè)計),該宏函數(shù)輸出的形式及存放目錄和名稱:添加.mif文件設(shè)計總原理圖:設(shè)計仿真波形:結(jié)論:由仿真波形與事先編輯好的.mif的文件可知,實驗結(jié)果如預(yù)期設(shè)計的正弦波發(fā)生原理相符。cycloneii系列的三種配置方式說明:1、 只有epcs16和ep
10、cs64器件需要dclk達(dá)到40mhz的時鐘,其余的epcs只需要dclk達(dá)到20mhz。具體的選型可參考serial configuration devices data sheet2、 jtag配置的優(yōu)先權(quán)高于其他的配置方式。這就意味著msel引腳的設(shè)置可忽略。3、 不可讓msel引腳懸空,將他們連到vccio或gnd,這些引腳在做成產(chǎn)品后支持非jtag配置方式。如果只使用jtag配置,可將msel引腳都連到gnd。實驗五 fpga內(nèi)部乘法器的應(yīng)用實驗?zāi)康?、學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行乘法器設(shè)計。2、分別用clyclone系列和stratix系列設(shè)計乘法器,并查看設(shè)計電路的rtl級,了
11、解兩種器件的嵌入乘法器有什么不一樣。實驗原理1、lpm參數(shù)化設(shè)計方法跟前面實驗是一樣的。2、查看rtl級步驟如下: tools下的netlist viewer/rtl viewer cycloneii的9位乘法器的rtl結(jié)構(gòu) stratix的9位乘法器的rtl結(jié)構(gòu)實驗步驟用lpm參數(shù)化模塊庫設(shè)計一個20位的乘法器。(1)分別用cyclone系列器件和stratix系列設(shè)計無符號位的20位乘法器。打開symbol tool,選擇megafunctions/storage下的lpm_rom,點(diǎn)擊ok或者點(diǎn)擊megawizard plug_in manager該宏函數(shù)輸出的形式及存放目錄和名稱選擇器
12、件及mult的數(shù)據(jù)寬度lpm_mult 不需要流水線操作。加入輸入輸出引腳保存.bdf文件(注意文件名不能跟創(chuàng)建的rom文件名一致),建立波形文件,進(jìn)行仿真(2)查看兩種器件設(shè)計時的complication report,比較它們各種占用器件內(nèi)部資源情況。cyclone ii系列與stratixii系列(3)查看兩種器件設(shè)計的乘法器的rtl級,比較存在著什么地方不同,深入了解兩種器件的嵌入乘法器有什么不同?cyclone ii系列與stratixii系列分析:cyclone ii系列器件生成的乘法器在寄存器傳輸級是通過數(shù)據(jù)選擇實現(xiàn)最終的乘法運(yùn)算的,stratixii系列器件生成的乘法器在寄存器
13、傳輸級是通過加法器實現(xiàn)最終的乘法運(yùn)算的。(3)分別用cyclone系列器件和stratix系列設(shè)計有符號位的20位乘法器,查看兩種器件設(shè)計時的complication report,比較它們各種占用器件內(nèi)部資源情況。查看兩種器件設(shè)計的乘法器的rtl級,比較存在著什么地方不同,深入了解兩種器件的嵌入乘法器有什么不同?cyclone ii系列與stratixii系列分析:cyclone ii系列與stratixii系列生成的器件都占用了80引腳資源,cycloneii系列占用邏輯單元為48個,而stratixii系列使用的是dsp塊9位的單元(集合型的邏輯單元)占用了8個。實驗六 stratix內(nèi)
14、部結(jié)構(gòu)及移位寄存器設(shè)計實驗?zāi)康?、學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行移位寄存器設(shè)計。2、熟悉stratix內(nèi)部結(jié)構(gòu),了解其內(nèi)部嵌入模塊的功能。實驗原理1、lpm參數(shù)化設(shè)計方法跟前面實驗是一樣的。2、利用cyclone系列或stratix系列的嵌入ram可設(shè)計移位寄存器3、利用lpm的storage可以設(shè)計移位寄存器。實驗內(nèi)容1、用lpm參數(shù)化模塊庫設(shè)計一個128位的移位寄存器。實驗步驟(1)利用cyclone系列或stratix系列的嵌入ram可設(shè)計移位寄存器。一、原理圖生成1、使用shiftregister(ram-based)進(jìn)行移位寄存器的設(shè)計,選擇移位寄存器的16位輸出和存儲模塊容量大小2
15、、生成移位寄存器器件加入輸入輸出引腳,建立波形文件二、波形仿真驗證寄存器設(shè)計的正確性1、在波形圖中輸入時鐘與移位數(shù)據(jù)2、波形仿真結(jié)果由仿真結(jié)果知,寄存器的仿真符合預(yù)期理論結(jié)果。(2)利用lpm的storage可以設(shè)計移位寄存器。1、使用lpm_shiftreg進(jìn)行移位寄存器的設(shè)計,選擇移位寄存器的128位左移輸出2、移位寄存器的清零、置位選擇,生成移位寄存器器件加入輸入輸出引腳二、波形仿真驗證寄存器設(shè)計的正確性1、建立波形文件,在波形圖中輸入時鐘與移位數(shù)據(jù)3、波形仿真結(jié)果由仿真結(jié)果知,寄存器的仿真符合預(yù)期理論結(jié)果。(3)對上述設(shè)計的移位寄存器進(jìn)行波形仿真,比較異同。比較:由設(shè)計到仿真的流程與結(jié)
16、果知,利用cyclone系列或stratix系列的嵌入ram設(shè)計移位寄存器能夠選擇輸入數(shù)據(jù)的位數(shù),不能選擇移位方向,且利用存儲器進(jìn)行移位結(jié)果不能立即輸出,需要全部16個時鐘周期之后才可以輸出,而利用lpm的storage設(shè)計移位寄存器,是隨著時鐘一位,一位移動,其結(jié)果是立即輸出的(即移位完成立即輸出)。實驗七 fpga內(nèi)部ram應(yīng)用異步fifo設(shè)計實驗?zāi)康?、學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行fifo設(shè)計。2、熟悉fifo的工作原理。實驗原理1、異步fifo工作原理及結(jié)構(gòu)在現(xiàn)代的集成電路中,一個系統(tǒng)往往含有數(shù)個時鐘,多個時鐘帶來的問題就是如何設(shè)計異步時鐘之間的接口電路。要使數(shù)據(jù)在兩個時鐘域之間穩(wěn)定
17、有效地傳輸,必須把前一個時鐘的輸出數(shù)據(jù)經(jīng)過處理,使之同步于下一個時鐘域的時鐘,實際上就是一個數(shù)據(jù)接口的同步問題。異步fifo(first in first out,先入先出)是解決接口同步問題的一種簡便、快捷的方案。異步fifo是一種特殊功能的存儲器,起到存儲緩沖數(shù)據(jù)的作用,它是以fifo的方式存儲數(shù)據(jù)的。數(shù)據(jù)以到達(dá)fifo輸入端口的先后順序依次存儲在存儲器中,并以相同的順序從fifo的輸出端送出。因此,fifo內(nèi)數(shù)據(jù)的寫入和讀出只受讀/寫時鐘和讀/寫請求信號的控制,而不需要讀/寫地址線。 圖1 異步fifo的結(jié)構(gòu)框圖上圖為異步fifo的結(jié)構(gòu)框圖,整個系統(tǒng)分為兩個完全獨(dú)立的時鐘域讀時鐘域和寫時
18、鐘域。fifo的存儲介質(zhì)為一塊雙端口的ram,可以同時進(jìn)行讀寫操作。在寫時鐘域部分,由寫地址產(chǎn)生模塊產(chǎn)生寫地址;讀時鐘部分由讀地址產(chǎn)生模塊產(chǎn)生讀地址。在空/滿標(biāo)志產(chǎn)生部分,由讀、寫地址相互比較產(chǎn)生空/滿標(biāo)志,以此來控制數(shù)據(jù)的收發(fā),使數(shù)據(jù)部丟失。也就是說讀、寫地址是由異步fifo內(nèi)部邏輯產(chǎn)生的,外部電路只要給出讀、寫時鐘及讀、寫請求信號,fifo就能工作,起到緩沖數(shù)據(jù)作用。2、異步fifo的實現(xiàn)方法 設(shè)計異步fifo有兩種方法,一種是自己用vhdl或veriloghdl進(jìn)行邏輯設(shè)計,編寫fifo模塊,這是可以實現(xiàn)的,但是在異步電路中,由于時鐘之間周期和相位完全獨(dú)立,因而數(shù)據(jù)的丟失概率不為零,設(shè)計
19、一個高可靠性、高速的異步fifo電路非常困難,既要防止亞穩(wěn)態(tài)的影響,又要考慮如何產(chǎn)生讀、寫地址及空/滿標(biāo)志控制電路,所以模塊特別是可綜合模塊編寫起來,將會花費(fèi)大量的時間和精力。 另一種方法就是調(diào)用參數(shù)化模塊來實現(xiàn),就是采用lpm參數(shù)化模塊進(jìn)行設(shè)計。實驗步驟一、用lpm參數(shù)化模塊庫設(shè)計一個64*8的異步fifo。1、設(shè)計步驟(1)利用stratix系列的一個128*8的異步fifo。(2)選擇所設(shè)計的器件的參數(shù),8位16字,讀寫時鐘相同. (3)選擇自動優(yōu)化(4)器件生成的原理圖2、實驗仿真(1)仿真波形的建立(2)器件的仿真結(jié)果分析:有仿真圖可知,該先進(jìn)先出的緩沖器,與編程語言中的棧相似,先寫
20、入的數(shù)據(jù),先被讀出來,經(jīng)仿真分析可知,該器件設(shè)計正確。二、設(shè)計一個雙時鐘fifo器件1、設(shè)計步驟(1)利用stratix系列的一個128*8的異步fifo。(2)選擇所設(shè)計的器件的參數(shù),8位16字,讀寫時鐘分成兩個。(3)選擇參數(shù)讀空、寫滿。(4)選擇自動優(yōu)化2、設(shè)計原理圖3、實驗結(jié)果仿真(1)仿真波形的設(shè)計(2)實驗仿真結(jié)果分析:由仿真圖可知,該先進(jìn)先出緩沖器由寫時鐘、讀時鐘構(gòu)成,可同時進(jìn)行讀寫操作,當(dāng)存儲器內(nèi)沒有數(shù)據(jù)時,進(jìn)行讀寫時,讀空數(shù)據(jù)線置高電平,說明這一時間存儲器內(nèi)無數(shù)據(jù),當(dāng)數(shù)據(jù)寫入存儲器時,則在之后的數(shù)據(jù)讀時,可以將數(shù)據(jù)讀出,并且是先進(jìn)先出的形式,說明該器件設(shè)計功能正確。實驗八 f
21、pga的鎖相設(shè)計實驗?zāi)康?、 學(xué)會使用lpm參數(shù)化模塊庫進(jìn)行鎖相環(huán)設(shè)計。2、 熟悉鎖相環(huán)的工作原理。3、 掌握鎖相環(huán)的應(yīng)用。實驗原理cyclone 等系列的 fpga中含有高性能的嵌入式模擬鎖相環(huán) (性能遠(yuǎn)優(yōu)于數(shù)字鎖相環(huán)),此鎖相環(huán) pll 可以與一輸入的時鐘信號同步,并以其作為參考信號實現(xiàn)鎖相,從而輸出一至多個同步倍頻或分頻的片內(nèi)時鐘,以供邏輯系統(tǒng)應(yīng)用。與直接來自外部的時鐘相比,這種片內(nèi)時鐘可以減少時鐘延時和時鐘變形,減少片外干擾;還可以改善時鐘的建立時間和保持時間。cyclone 系列和 stratix 系列器件中的鎖相環(huán)能對輸入的參考時鐘相對于某一輸出時鐘同步獨(dú)立乘以或除以一個因子,并提
22、供任意相移和輸出信號占空比。下圖為cyclone系列的鎖相環(huán)原理圖。每個pll有一個預(yù)分頻系數(shù)(n)和一個乘法系數(shù)(m),范圍從1到32。輸入時鐘(fin)經(jīng)由預(yù)分頻計數(shù)器(n)分頻后產(chǎn)生pfd的輸入?yún)⒖紩r鐘(fref)。然后fref乘以m反饋系數(shù)??刂骗h(huán)路驅(qū)動vco頻率匹配fin(m/n)。fref=fin/nfvco=frefmfin(m/n)每個輸出端口有一個唯一的后分頻計數(shù)器降低高頻vco。有三個后scale計數(shù)器(g0、g1和e),范圍從1至32。fc0=fvco/g0=fin(m/(ng0) fc1=fvco/g0=fin(m/(ng1) fc0=fvco/e=fin(m/(ne)
23、altera公司的stratix ii等系列的fpga提供了可重配置的pll,從而可以實時地對pll進(jìn)行重新配置,使其適應(yīng)新的工作要求。通過altera的quartus ii軟件可以生成一個可重配置的pll。 建立片內(nèi) pll 模塊的步驟如下: (1)在tools 菜單中選擇 megawizard plug-in manager, 對彈出的界面選擇 create a new custom項,定制一個新的模塊,選擇 i/o 項下的 altpll,再選 cyclone 器件和輸出語言方式,最后輸入設(shè)計文件存放的路徑和文件名,如d:sin_gntpll3.vhd。單擊 next 按鈕后彈出圖 8-1
24、 所示的窗口。 圖8-1選擇參考時鐘為16mhz(2)在圖8-1 所示窗口中首先設(shè)置參考時鐘頻率 inclk0 為 16mhz,注意,這個時鐘頻率不能低于 15mhz。然后單擊 next 按鈕,接著在圖8-2 所示的窗口中選擇鎖相環(huán)的工作模式(選擇內(nèi)部反饋通道的通用模式) 。單擊 next 按鈕后即進(jìn)入圖 7-30 所示的窗口。在此窗口主要選擇 pll 的控制信號,如pll的使能控制 pllena;異步復(fù)位areset;鎖相輸出locked 等。單擊 next 按鈕進(jìn)入圖所示8-3的窗口。 圖8-2選擇控制信號圖8-3選擇c0的片內(nèi)時鐘倍頻為2(3)圖 8-3 所示的窗口中選中 use thi
25、s c1,即選擇另一輸出時鐘端 c1。并選擇第一個輸出時鐘信號 c0 相對于輸入時鐘的倍頻因子是 2,即 c0 的片內(nèi)輸出頻率是 32mhz;時鐘相移和時鐘占空比不變,保持原來默認(rèn)的數(shù)據(jù)。(4)此后分別在出現(xiàn)的對話框中選中的 c1 和 e0 的時鐘設(shè)置倍頻因子為 4 和 8。時鐘相移和時鐘占空比也不變。最后完成了文件 pll3.vhd 的建立。在設(shè)置參數(shù)的過程中必須注意密切關(guān)注編輯窗右框上的一句提示:“able to implement” ,此句表示所設(shè)參數(shù)可以接受,如出現(xiàn)“can t”提示,表示不能接受所設(shè)參數(shù),必須改設(shè)其他參數(shù)。實驗步驟設(shè)計一個4倍頻的倍頻電路。(1)在tools 菜單中選
26、擇 megawizard plug-in manager, 對彈出的界面選擇 create a new custom項,定制一個新的模塊,選擇 i/o 項下的 altpll,再選 cyclone 器件和輸出語言方式,最后輸入設(shè)計文件存放的路徑和文件名,如d:sin_gntpll3.vhd。單擊 next 按鈕后彈出圖 9-1 所示的窗口。圖9-1選擇參考時鐘為100mhz(2)在圖9-1 所示窗口中首先設(shè)置參考時鐘頻率 inclk0 為 16mhz,注意,這個時鐘頻率不能低于 15mhz。然后單擊 next 按鈕,接著在圖9-2 所示的窗口中選擇鎖相環(huán)的工作模式(選擇內(nèi)部反饋通道的通用模式)
27、。單擊 next 按鈕后即進(jìn)入圖 7-30 所示的窗口。在此窗口主要選擇 pll 的控制信號,如pll的使能控制 pllena;異步復(fù)位areset;鎖相輸出locked 等。單擊 next 按鈕進(jìn)入圖所示9-3的窗口。圖9-2選擇控制信號圖9-3選擇c0的片內(nèi)時鐘倍頻為4(3)圖 9-3 所示的窗口中選中 use this c0,即選擇輸出時鐘端 c0。并選擇第一個輸出時鐘信號 c0 相對于輸入時鐘的倍頻因子是 4,即 c0 的片內(nèi)輸出頻率是 400mhz;時鐘相移和時鐘占空比不變,保持原來默認(rèn)的數(shù)據(jù)。(4)此后分別在出現(xiàn)的對話框中選中的 c0 的時鐘設(shè)置倍頻因子為 4時鐘相移和時鐘占空比也
28、不變。最后完成了文件 pll.v 的建立。在設(shè)置參數(shù)的過程中必須注意密切關(guān)注編輯窗右框上的一句提示:“able to implement” ,此句表示所設(shè)參數(shù)可以接受,如出現(xiàn)“can t”提示,表示不能接受所設(shè)參數(shù),必須改設(shè)其他參數(shù)。(5)設(shè)計原理圖(6)仿真結(jié)果分析:由仿真圖可知,所設(shè)計的pll鎖相環(huán)進(jìn)行的4倍頻,輸出頻率為輸入頻率的4倍,說明所設(shè)計的器件可以實現(xiàn)4倍頻功能。實驗九 fpga中數(shù)字信號處理模塊應(yīng)用實驗?zāi)康?、 了解stratix系列的dsp模塊的結(jié)構(gòu)。2、 利用stratix系列的dsp模塊設(shè)計乘法累加器。3、 選擇宏模塊存儲的路徑和文件名。實驗過程1、 打開quartus
29、ii軟件,點(diǎn)擊圖1軟件圖標(biāo)。圖12、 建立工程文件,工程名以名字的首字母命名,操作如圖2、3所示。圖2圖33、新建原理圖設(shè)計文件,操作如圖4、5所示。圖4圖54、在原理圖設(shè)計界面使用lpm設(shè)計方法,設(shè)計生成乘法累加器元件,如圖6、7所示。圖6圖75、使用lpm參數(shù)設(shè)計方法生成乘法累加器元件,使用stratix系列的dsp模塊、輸出文件創(chuàng)建為verilog hdl語言、器件名字命名為mac,具體操作如下圖8所示。圖86、繼上一步之后點(diǎn)擊next可看到mac器件,dataa、datab都選為8位無符號數(shù)據(jù)輸入端口,用于進(jìn)行乘法累加數(shù)據(jù)的輸入,result為32位數(shù)據(jù)輸出端口,用于輸出乘法累加的結(jié)果
30、,具體操作如圖9、10所示。圖9圖107、繼上一步之后,選擇乘法累加器為只加、單時鐘輸入,具體操作如圖11所示。圖118、最后完成乘法累加器的設(shè)計,生成如圖12所示的元件,兩個16位數(shù)據(jù)輸入端,一個時鐘輸出端,一個32位數(shù)據(jù)輸出端。圖129、配置元件端口,配置好元件端口之后保存并編譯,具體操作如圖13、14所示。圖13圖1411、編譯通過之后建立波形仿真文件,添加時鐘、輸入輸出端口,具體操作步驟如圖16、17所示。圖16圖1712、輸入數(shù)據(jù)進(jìn)行波形仿真,時鐘周期選擇40ns,占空比為50%,個輸入輸出數(shù)據(jù)屬性均調(diào)整為十進(jìn)制無符號數(shù),輸入數(shù)據(jù)如圖17所示。圖17實驗結(jié)果1、仿真結(jié)果如圖18所示。
31、圖182、 針對仿真波形進(jìn)行分析由圖18的仿真結(jié)果可知,dataa輸入為15、14、13、12、11、10 datab輸入為15、14、13、12、11、10在經(jīng)歷2個時鐘之后,從第3個時鐘開始進(jìn)行乘法累加計算并輸出計算結(jié)果,此后每過一個時鐘輸出一個計算結(jié)果,直到數(shù)據(jù)計算完。即1515=225+1414=421+1313=590+1212=734+1111=855+1010=955經(jīng)驗證上式計算結(jié)果正確無誤,乘法累加器設(shè)計完成符合我的設(shè)計要求。遇到的問題及解決方法1、 原理圖設(shè)計完成時,編譯之后出現(xiàn)錯誤。原因:當(dāng)前原理圖非工程中的最頂層文件。解決方法:將當(dāng)前編譯的原理圖文件置頂,即可解決。2、
32、 建立完波形仿真文件之后,點(diǎn)擊仿真不能正常進(jìn)行。原因:仿真波形文件未加載到當(dāng)前工程。解決方法:點(diǎn)擊quartus ii軟件頂部的assignments選項,再點(diǎn)擊下拉菜單中的device選項,再點(diǎn)擊simultlator srtting在simultlator input處將之前建好的仿真波形文件加載即可進(jìn)行正常的波形仿真。實驗十 alu設(shè)計實驗?zāi)康睦脜?shù)庫lpm和原理圖輸入法設(shè)計一個算術(shù)運(yùn)算單元alu。本次用lpm設(shè)計8位數(shù)值比較器實驗過程1、打開quartusii,新建一個工程shiyan10。2、在tools 菜單中選擇 megawizard plug-in manager, 對彈出的
33、界面選擇 create a new custom項,定制一個新的模塊,選擇 i/o 項下的 altpll,3、再選 stratix 器件和輸出語言方式最后輸入設(shè)計文件存放的路徑和文件名4、選擇器件的數(shù)據(jù)位,和輸出的的控制端口的類型,分別為等于、大于、小于。5、選擇8位無符號的數(shù)據(jù),數(shù)據(jù)總線的范圍。6、比較器沒有設(shè)計流水線。7、加入圖形文件和輸入和輸出引腳名,并對引腳名進(jìn)行修改,修改的引腳名為:dataa7.0、datab7.0輸出引腳名:aeb,agb,albdataa7.0輸入數(shù)據(jù)端口a datab7.0輸入數(shù)據(jù)端口baeb輸出端口為等于agb輸出端口為大于alb輸出端口為小于8、綜合仿真的
34、波形圖??偨Y(jié):在輸入數(shù)據(jù)端口datab7.0a和輸入數(shù)據(jù)端口datab7.0 b的輸入數(shù)據(jù)時,輸出端口就會比較輸出。當(dāng)20-420時,輸出端口大于類型agb就會為1,其他比較類型為0;當(dāng)30-30=0時,輸出端口等于類型aeb為1,其他比較類型為0.實驗十一 流水線設(shè)計方法實驗?zāi)康倪M(jìn)一步理解流水線設(shè)計方法,了解該設(shè)計方法的優(yōu)點(diǎn)。實驗原理為了提高多級邏輯的系統(tǒng)速度, 在fpga的邏輯實現(xiàn)中, 同樣可引入“流水線”的概念。 流水線設(shè)計的概念是把在一個時鐘周期內(nèi)執(zhí)行的邏輯操作分成幾步較小的操作, 并在多個較高速的時鐘內(nèi)完成。通俗的講就是本來是一條龍服務(wù)的,現(xiàn)在將整個環(huán)節(jié)分割成幾小段,然后讓這幾個分段
35、同時開始各自的工作,最后將這些小段連接成整體,這樣便提高了系統(tǒng)的運(yùn)行速度,提高了效率。例如:1、切割流水線前的描述module add(a,b,s,cout);input31:0 a,b;output31:0 s;output cout; wire 31:0 a,b,s;wire cout;assign cout, s=a+b;endmodule一、 切割流水線后的描述 module ladder(a,b,s,cout); input31:0 a,b;output31:0 s;output cout;reg c1_d; wire 31:0 a,b;assign c1,s15:0=a15:0+b
36、15:0; always(posedge clk or negedge nrst) if(nrst) c1_d=0; else c1_d = c1; assign cout, s31:16= a31:16+b31:16+c1_d;三、實驗內(nèi)容通過加入四級流水線,設(shè)計一個42位數(shù)據(jù)相加,是帶符號位的,也就是符號數(shù)??蓪?2為數(shù)據(jù)分為3段11位相加和一段9位相加。值得注意的是前三段中相加時候要擴(kuò)展一位進(jìn)位,可以直接在數(shù)據(jù)前加一位0,但是在最后一段的相加中我們需要將最高的符號位擴(kuò)展一次,以免加到溢出,同時可以保留符號結(jié)果。以下是部分verilog代碼:module pipl_add(clk,rst,
37、 add_a,add_b, add_out);input clk;input rst;input41:0 add_a;input41:0 add_b;output42:0 add_out; /為保證不溢出,相加結(jié)果擴(kuò)展一位;reg11:0 sum1;reg22:0 sum2;reg33:0 sum3;reg42:0 add_out;/中間寄存的數(shù)據(jù)reg8:0 add_tmpa3,add_tmpb3;reg19:0 add_tmpa2,add_tmpb2;reg30:0 add_tmpa1,add_tmpb1;always(posedge clk or negedge rst) beginif
38、(!rst) sum1 = 0; else begin sum1 = 1b0,add_a10:0 + 1b0,add_b10:0; add_tmpa1 = add_a41:11; add_tmpb1 = add_b41:11; /儲存未計算的數(shù)據(jù) endend繼續(xù)完成該程序,經(jīng)程序補(bǔ)充完整。并進(jìn)行綜合,仿真。實驗報告1、設(shè)計過程:第一步:先建立工程項目第二步:建立.v文件寫入程序輸入的程序:module pipl_add(clk,rst,add_a,add_b,add_out,en);input clk;input rst,en;input41:0 add_a;input41:0 add_b;
39、output42:0 add_out; /為保證不溢出,相加結(jié)果擴(kuò)展一位;reg11:0 sum1;reg22:0 sum2;reg33:0 sum3;reg42:0 add_out;/中間寄存的數(shù)據(jù)reg8:0 add_tmpa3,add_tmpb3;reg19:0 add_tmpa2,add_tmpb2;reg30:0 add_tmpa1,add_tmpb1;always(posedge clk or negedge rst) beginif(!rst) sum1 = 0; else if(en) beginsum1 = 1b0,add_a10:0 + 1b0,add_b10:0; add
40、_tmpa1 = add_a41:11; add_tmpb1 = add_b41:11; /儲存未計算的數(shù)據(jù) endendalways(posedge clk or negedge rst)beginif(!rst) sum2 = 0; else if(en) beginsum2 = 1b0,add_a21:11 + 1b0,add_b21:11+sum111,sum110:0; add_tmpa2 = add_a41:22; add_tmpb2 = add_b41:22; /儲存未計算的數(shù)據(jù) endendalways(posedge clk or negedge rst)beginif(!r
41、st) sum3 = 0; else if(en) beginsum3 = 1b0,add_a32:22 + 1b0,add_b32:22+sum222,sum221:0; add_tmpa3 = add_a41:33; add_tmpb3 = add_b41:33; /儲存未計算的數(shù)據(jù) endendalways(posedge clk or negedge rst)beginif(!rst) add_out = 0; else if(en) beginadd_out = 1b0,add_a41:33 + 1b0,add_b41:33+sum333,sum332:0; endendendmod
42、ule第三步:將輸入完成的數(shù)據(jù)進(jìn)行綜合編譯,建立仿真波形,得到仿真結(jié)果,對波形進(jìn)行分析。2、對設(shè)計結(jié)果進(jìn)行分析說明。分析:由仿真圖可知,輸入數(shù)據(jù),經(jīng)過四個時鐘周期之后,輸出相加結(jié)果,之后每個數(shù)據(jù)均在一個周期計算完成,形成流水線操作。該電路與純組合電路相比較,在執(zhí)行速度方面有絕對優(yōu)勢。該流水線操作方式適合數(shù)字信號處理。實驗十二 乘法器的fpga設(shè)計實驗?zāi)康?、學(xué)習(xí)應(yīng)用移位相加原理設(shè)計乘法器。2、學(xué)習(xí)用加法器樹方法設(shè)計乘法器。3、學(xué)習(xí)用查表法設(shè)計乘法器。實驗原理完整的移位相加乘法器設(shè)計原理: 乘法通過逐項移位相加來實現(xiàn)相乘。從被乘數(shù)的最低位開始,若為1,則乘數(shù)左移后與上一次的和相加;若為0,左移后
43、以全零相加,直至被乘數(shù)的最高位。從圖1 的邏輯圖及其乘法操作時序圖圖2(示例中的相乘數(shù)為9fh和fdh )上可以清楚地看出此乘法器的工作原理。為了更好了解其工作原理,圖1 中沒有加入控制電路。圖1 中,start 信號的上跳沿及其高電平有兩個功能,即16 位寄存器清零和被乘數(shù)a7.0向移位寄存器sreg8b加載;它的低電平則作為乘法使能信號。clk 為乘法時鐘信號。當(dāng)被乘數(shù)被加載于8 位右移寄存器sreg8b后,隨著每一時鐘節(jié)拍,最低位在前,由低位至高位逐位移出。當(dāng)為1 時,1 位乘法器andarith打開,8 位乘數(shù)b7.0在同一節(jié)拍進(jìn)入8 位加法器,與上一次鎖存在16 位鎖存器reg16b
44、中的高8 位進(jìn)行相加,其和在下一時鐘節(jié)拍的上升沿被鎖進(jìn)此鎖存器。而當(dāng)被乘數(shù)的移出位為0時,與門全零輸出。如此往復(fù),直至8 個時鐘脈沖后,最后乘積完整出現(xiàn)在reg16b端口。在這里,1 位乘法器andarith的功能類似于1 個特殊的與門,即當(dāng)abin 為1時,dout 直接輸出din,而當(dāng)abin 為0時,dout 輸出全“00000000”。8 位移位相加原理構(gòu)成的乘法器比用組合電路直接設(shè)計的同樣功能的電路的資源(邏輯宏單元lcs)耗用要小許多,由編譯報告可知,前者是52,后者是169。從波形圖圖9-35 可見,當(dāng)9fh和fdh相乘時,第1 個時鐘上升沿后,其移位相加的結(jié)果(在reg16b端
45、口)是4f80h,第8 個時鐘上升沿后,最終相乘結(jié)果是9d23h。圖1 8位乘法器邏輯原理圖圖2 8位移位相加乘法器運(yùn)算邏輯波形圖加法器樹方法和查表法設(shè)計設(shè)計乘法器請參考教材6.1節(jié)。實驗內(nèi)容1、采用移位相加原理設(shè)計8位乘法器,設(shè)計圖1中各個模塊,并采用原理圖輸入方式輸入頂層模塊。2、采用加法器樹設(shè)計8位乘法器3、用查表法設(shè)計8位乘法器4、具體說明并比較這幾種乘法器的邏輯資源占用情況和運(yùn)行速度情況。實驗報告1、編寫程序,并通過波形仿真。實驗步驟:通過8位右移寄存器、8位加法器、1位乘法器、16位鎖存器/右移寄存器,四個模塊程序來生成各個頂層模塊,將頂層模塊連接成頂層設(shè)計原理圖。2、對設(shè)計結(jié)果進(jìn)
46、行分析說明。編譯頂層程序通過之后,建立仿真波形。得出仿真結(jié)果:通過分析仿真波形知,乘法器在經(jīng)過8個時鐘之后輸出正確結(jié)果,但在第8個時鐘之前曾、輸出是不確定的,可以將該乘法器改進(jìn),加入一個控制鎖存的信號,只鎖存正確的輸出結(jié)果,達(dá)到輸出結(jié)果更加直觀精確的目的。附實驗內(nèi)容一程序,供參考:1、- 8位右移寄存器library ieee; use ieee.std_logic_1164.all;entity sreg8b isport ( clk, load : in std_logic;din : in std_logic_vector(7 downto 0);qb : out std_logic )
47、;end sreg8b;architecture behav of sreg8b issignal reg8 : std_logic_vector(7 downto 0);beginprocess (clk, load)beginif clkevent and clk = 1 thenif load = 1 then reg8 = din;else reg8(6 downto 0) = reg8(7 downto 1);end if;end if;end process;qb = reg8(0); - 輸出最低位end behav;2、-8位加法器library ieee; use ieee.
48、std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adder8b isport ( cin : in std_logic;a , b : in std_logic_vector(7 downto 0);s : out std_logic_vector(7 downto 0);cout : out std_logic );end adder8b;architecture behav of adder8b issignal sint, aa,bb : std_logic_vector(8 downto 0);beginaa=0&a;
49、 bb=0&b; sint=aa+bb+cin;s=sint(7 downto 0); cout=sint(8);end behav;3、-1位乘法器library ieee; use ieee.std_logic_1164.all;entity andarith is - 選通與門模塊port ( abin : in std_logic;din : in std_logic_vector(7 downto 0);dout : out std_logic_vector(7 downto 0) );end andarith;architecture behav of andarith isbeg
50、inprocess(abin, din)beginfor i in 0 to 7 loop - 循環(huán),完成8位與1位運(yùn)算dout(i) = din(i) and abin;end loop;end process;end behav;4、-16位鎖存器/右移寄存器library ieee; use ieee.std_logic_1164.all;library ieee;use ieee.std_logic_1164.all;entity reg16b is - 16位鎖存器port (clk, clr : in std_logic;d : in std_logic_vector(8 down
51、to 0);q : out std_logic_vector(15 downto 0) );end reg16b;architecture behav of reg16b issignal r16s : std_logic_vector(15 downto 0);beginprocess(clk, clr)beginif clr=1 then r16s=0000000000000000;-時鐘到來時,鎖存輸入值,并右移低8位elsif clkevent and clk=1 thenr16s(6 downto 0) =r16s(7 downto 1);-右移低8位r16s(15 downto 7) = d; - 將輸入鎖到高8位end if;end process;q = r16s;end behav;5 - 8位乘法器頂層設(shè)計library ieee;use ieee.std_logic_1164.all;use ieee
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年四川鐵道職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024版上海二手房交易合同規(guī)范文本
- 2025年唐山幼兒師范高等專科學(xué)校高職單招高職單招英語2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年中國寶寶沐浴露市場調(diào)查研究報告
- 二零二四因公出國類項目環(huán)境保護(hù)與可持續(xù)發(fā)展合同3篇
- 2025至2031年中國瀘州老窖酒行業(yè)投資前景及策略咨詢研究報告
- 2025-2030全球低溫DBB閥門行業(yè)調(diào)研及趨勢分析報告
- 二零二五版童裝行業(yè)創(chuàng)新產(chǎn)品研發(fā)合作協(xié)議3篇
- 二零二四年醫(yī)療器械臨床試驗研究者臨床試驗不良反應(yīng)監(jiān)測合同3篇
- 2025至2031年中國PP阻燃色母粒行業(yè)投資前景及策略咨詢研究報告
- 南通市2025屆高三第一次調(diào)研測試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國人民保險集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 重癥患者家屬溝通管理制度
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對法》及其應(yīng)用案例
- 小學(xué)二年級數(shù)學(xué)口算練習(xí)題1000道
- 納布啡在產(chǎn)科及分娩鎮(zhèn)痛的應(yīng)用
- DZ/T 0462.4-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第4部分:銅等12種有色金屬礦產(chǎn)(正式版)
- 化學(xué)-福建省龍巖市2024屆高三下學(xué)期三月教學(xué)質(zhì)量檢測(一模)試題和答案
- 凸優(yōu)化在經(jīng)濟(jì)學(xué)與金融學(xué)中的應(yīng)用
- 家譜、宗譜頒譜慶典講話
評論
0/150
提交評論