




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、FPGA產(chǎn)生正弦波方法(1/4周期)COE文件 本文主要介紹通過(guò)查表法產(chǎn)生正弦波。涉及利用matlab生成四分之一周期的正弦相位、幅值對(duì)應(yīng)表,生成COE文件的IP核方法,F(xiàn)PGA編程產(chǎn)生數(shù)字正弦信號(hào)。 正弦信號(hào),是一個(gè)模擬信號(hào)。FPGA只能產(chǎn)生數(shù)字信號(hào)。因此需要用DA將數(shù)字量轉(zhuǎn)化為模擬量。這里采用modelsim的模擬波形顯示,不敘述DA轉(zhuǎn)換相關(guān)知識(shí)了。產(chǎn)生正弦信號(hào)的方法有很多,這里用的是查找rom的方法,產(chǎn)生正弦信號(hào)。正弦信號(hào),是一個(gè)幅值介于-1和1之間周期變化的模擬量,因此只需要將1/4周期的值存進(jìn)rom里,其波形就可以根據(jù)這1/4周期幅值的變化得到。 matlab產(chǎn)生正弦信號(hào)的值。以0.
2、01為步長(zhǎng),從0采集到pi/2,共158個(gè)點(diǎn)。x = linspace(0, pi/2,158); 因sin的幅值值是小數(shù),而FPGA不能表示小數(shù),我們把幅值乘以12位二進(jìn)制后取整實(shí)現(xiàn)幅值整數(shù)化。即幅值放大4096倍。例如幅值為0.3,而0.3*212=1228.8,取整為1229。當(dāng)然這樣表示會(huì)有一定誤差,但可以根據(jù)精度需要調(diào)整參數(shù),使誤差可接受。 生成ROM。這里rom用的是ISE的IP rom。將matlab生成的數(shù)據(jù)存入rom里面,讀取rom的值,即可生成正弦信號(hào)。首先是生成rom的初始化文件。Xilinx的rom的初始化文件的后綴為.coe。這個(gè)特殊文件有固定的格式如下: 文件前面兩
3、行的內(nèi)容是固定的。MEMORY_INITIALIZATION_RADIX=10;表示下面的數(shù)字是10進(jìn)制數(shù),后面的數(shù)據(jù)是依次存入rom的值,以逗號(hào)分開,最后以一個(gè)分號(hào)結(jié)束。生成初始化文件的matlab程序如下所示:fid = fopen('sin_rom.txt','w');fprintf(fid,'MEMORY_INITIALIZATION_RADIX = 10;n');fprintf(fid,'MEMORY_INITIALIZATION_VECTOR =n');for i = 0:1:pi/2*100y = sin(i/100
4、);rom =floor( y * 212);if i = 157fprintf(fid,'%d;',rom);elsefprintf(fid,'%d,',rom);endif mod(i,10)=0 && i = 0fprintf(fid,'n');endendfclose(fid); matlab生成的文件是.txt文件。將后綴直接改為.coe即可。然后復(fù)制到ISE分工程目錄下。 初始化文件生成后,剩下就是編寫verilog代碼。 首先建一個(gè)工程,然后新建一個(gè)IP。 找到rom,打開。設(shè)置按如下設(shè)置:這里是設(shè)置位寬,采用的是1
5、3位(第一位為符號(hào)位,后面12位為數(shù)據(jù)位)來(lái)顯示sin的值。因此這里是設(shè)置為13.深度是因?yàn)橐?58個(gè)值,所以這里設(shè)置為158. 將剛剛生成的.coe文件載入,生成即可。接著就是編寫verilog代碼了。首次查看用ip生成的rom的例化代碼.sin_rom your_instance_name (.clka(clka), / input clka.addra(addra), / input 7 : 0 addra.douta(douta) / output 12 : 0 douta);從上面的程序可看出,只需要給時(shí)鐘信號(hào),和輸入地址,就可以了。輸出的就是正弦的數(shù)字信號(hào)了。分析正弦信號(hào),前1/
6、4個(gè)周期,地址從0自加,一直加到157(1/4個(gè)周期的點(diǎn)數(shù))。然后再自減,減到0。然后進(jìn)入到負(fù)半周,負(fù)數(shù)的表示是以二進(jìn)制的補(bǔ)碼來(lái)表示的,即絕對(duì)值數(shù)的二進(jìn)制取反在加1。 編寫地址自加自減的代碼,然后再根據(jù)地址的值,判斷輸出值的正負(fù),如為負(fù)數(shù),則取反加1后再輸出。代碼,如下所示:module sin_top(input clk, /輸入時(shí)鐘信號(hào)input 9:0 address, /輸入地址信號(hào)output reg 12:0 data_out /輸出sin的數(shù)字值);reg 7:0 add;wire 12:0 douta;/ 以下是判斷地址的值always * beginif( address &
7、lt;= 157 )add = address;else if( address <= 314 )add = 10'd314 - address;else if( address <= 471 )add = address - 10'd314;else if( address <= 628 )add = 10'd628 - address;elseadd = 0;end/例化之前生成的sin_romsin_rom u1_sin_rom (.clka(clk), / input clka.addra(add), / input 7 : 0 addra.d
8、outa(douta) / output 12 : 0 douta);/ 判斷輸出值是正數(shù)還是負(fù)數(shù)。always * beginif( address <= 314)data_out = douta;else if( address <= 628 )data_out = douta + 1'b1;elsedata_out = 0;endendmodule程序?qū)懞昧?,剩下就是要仿真了。仿真的testbench,只需要輸入時(shí)鐘和地址信號(hào)就可以了。地址信號(hào)一直加一,直到不小于628,剛好一個(gè)周期結(jié)束。就返回0值,在繼續(xù)自加。測(cè)試代碼如下所示:module sin_top_test
9、;/ Inputsreg clk;reg 9:0 address;/ Outputswire 12:0 data_out;/ Instantiate the Unit Under Test (UUT)sin_top uut (.clk(clk),.address(address),.data_out(data_out);always#5 clk = clk;initial begin/ Initialize Inputsclk = 0;address = 0;/ Wait 100 ns for global reset to finishwhile(1)begin(negedge(clk);if( address < 628 )
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)設(shè)計(jì)與消費(fèi)心理的互動(dòng)影響
- 工業(yè)遺產(chǎn)的旅游價(jià)值挖掘與利用
- 工作場(chǎng)所心理健康與防騙意識(shí)培養(yǎng)
- 工業(yè)設(shè)計(jì)與產(chǎn)品包裝的關(guān)聯(lián)性研究
- 工作流程標(biāo)準(zhǔn)化及其在企業(yè)管理中的應(yīng)用案例
- 工作場(chǎng)所的多樣化管理
- 工作流程優(yōu)化與管理方法改進(jìn)
- 工程教育的項(xiàng)目式學(xué)習(xí)與教學(xué)設(shè)計(jì)
- 工程機(jī)械的智能化設(shè)計(jì)與維護(hù)
- 市場(chǎng)分析與市場(chǎng)營(yíng)銷決策結(jié)合的研究
- 2024新滬教版英語(yǔ)(五四學(xué)制)七年級(jí)上單詞表 (英譯漢)
- 金蝶KIS專業(yè)版完整操作手冊(cè)
- 2025年社區(qū)工作者考試試題庫(kù)及答案
- 省級(jí)示范幼兒園評(píng)估細(xì)則解讀 辦園管理部分解讀課件
- 淺析火災(zāi)延伸調(diào)查工作指引
- 2024年吉林長(zhǎng)春市中考地理試卷真題(含答案解析)
- 2024年湖北黃岡市檢察機(jī)關(guān)招聘雇員制檢察輔助人員50人歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- DG-TJ 08-2255-2018 節(jié)段預(yù)制拼裝預(yù)應(yīng)力混凝土橋梁設(shè)計(jì)標(biāo)準(zhǔn)
- 2024年廣東省中考道德與法治試卷(含答案)
- 2024年小區(qū)地下車位租賃合同
- 2024年廣東省中考化學(xué)真題
評(píng)論
0/150
提交評(píng)論