matlab和modelsim聯(lián)合仿真(一)_第1頁(yè)
matlab和modelsim聯(lián)合仿真(一)_第2頁(yè)
matlab和modelsim聯(lián)合仿真(一)_第3頁(yè)
matlab和modelsim聯(lián)合仿真(一)_第4頁(yè)
matlab和modelsim聯(lián)合仿真(一)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于VerilogHDL語(yǔ)言的FPGA設(shè)計(jì)課程作業(yè)學(xué)院:電子工程學(xué)院專(zhuān)業(yè)班級(jí):集電 11級(jí)3班姓名:朱潮勇學(xué)號(hào): 05116079作業(yè)題目:Matlab和modelsim聯(lián)合仿真(一)完成日期:2013年11月20日一、設(shè)計(jì)要求2二、規(guī)范說(shuō)明2三、頂層設(shè)計(jì)結(jié)構(gòu)圖 2四、模塊詳細(xì)設(shè)計(jì)31功能說(shuō)明32端口定義33設(shè)計(jì)激勵(lì)代碼34 matlab 代碼55仿真結(jié)果6五、結(jié)論和問(wèn)題: 8六、補(bǔ)充: 錯(cuò)誤!未定義書(shū)簽。一、設(shè)計(jì)要求雖然Modelsim的功能非常強(qiáng)大,仿真的波形可以以多種形式進(jìn)行顯示,但是當(dāng)涉及到數(shù)字信號(hào)處理的算法的仿真驗(yàn)證的時(shí)候,則顯得有點(diǎn)不足。而進(jìn)行數(shù)字信號(hào)處理是Matlab的強(qiáng)項(xiàng),不但

2、有大量的關(guān)于數(shù)字信號(hào)處理的函數(shù),而且圖形顯示功能也很強(qiáng)大, 所以在做數(shù)字信號(hào)處理算法的 FPGA僉證的時(shí)候借助 Matlab會(huì)大大加快算法驗(yàn)證的速度。關(guān)于matlab與modelsim聯(lián)合仿真有兩種,一是以matlab或者modelsim分別產(chǎn)生數(shù)據(jù),保存為文本的形式在給modelsim或matlab來(lái)調(diào)用。這是一種間接的聯(lián)合仿真的方式。二是用matlab的link for modelsim的功能,將兩者聯(lián)合。后者的聯(lián)合仿真功能更加強(qiáng)大。此次實(shí)驗(yàn)將進(jìn)行第一種聯(lián)合仿真。分為兩個(gè)例子。第一個(gè)例子說(shuō)明如何用Matlab產(chǎn)生的數(shù)據(jù)用作 Modelsim仿真。第二個(gè)例子說(shuō)明如何用 modelsim產(chǎn)生數(shù)

3、據(jù)用作 matlab進(jìn)行分 析。、規(guī)范說(shuō)明1. Matlab 產(chǎn)生數(shù)據(jù)用作Modelsim仿真首先利用matlab產(chǎn)生一個(gè)周期256點(diǎn)8bit的正弦波數(shù)據(jù),然后以16進(jìn)制形式寫(xiě)入sin.txt 文件,然后將產(chǎn)生的sin .txt 文件復(fù)制到 Modelsim的工程下,在 Verilog 文件中 先定義一個(gè)8bit X 256數(shù)組,然后通過(guò)$readmemh命令,將文件中的數(shù)據(jù)讀入2. Matlab 對(duì)Modelsim仿真生成的數(shù)據(jù)進(jìn)行分析Matlab對(duì)Modelsim仿真生成數(shù)據(jù)的處理也是通過(guò)文件讀寫(xiě)實(shí)現(xiàn)的。即通過(guò) Verilog語(yǔ)句,將仿真過(guò)程中的某個(gè)信號(hào)寫(xiě)入文件,然后在Matlab中在把這

4、個(gè)文件的數(shù)據(jù)讀出來(lái),就可以在Matlab中進(jìn)行分析了。三、頂層設(shè)計(jì)結(jié)構(gòu)圖Si n.txt正弦波形MatlabModelsim matdata2mod直線波形Data out.txtModelsim moddata2mat . Matlab四、模塊詳細(xì)設(shè)計(jì)1功能說(shuō)明第一個(gè)例子用 Matlab產(chǎn)生的正弦波數(shù)據(jù) sin .txt用作Modelsim的matdata2mod模塊仿真。第二個(gè)例子用 modelsim的moddata2mat模塊產(chǎn)生直線數(shù)據(jù) data_out.txt 用作matlab進(jìn)行 分析。2端口定義信號(hào)名稱(chēng)信號(hào)類(lèi)型詳細(xì)說(shuō)明clk 1 位輸入時(shí)鐘,10MHz 50%占空比。rst 1

5、位輸入同步復(fù)位,咼有效。data_mem 8bit X 256輸入存儲(chǔ)器data_out 8 位輸出數(shù)據(jù)在時(shí)鐘clk上降沿變化。i8位雙向數(shù)據(jù)在時(shí)鐘clk上升沿變化。w_file32 位輸出文件的句柄3 verilog設(shè)計(jì)激勵(lì)代碼代碼一:matlab產(chǎn)生正弦波數(shù)據(jù)用作 modelsim調(diào)用module matdata2mod;reg 7:0 data_mem0:255; / 定義一個(gè) 8bit X 256 的數(shù)組reg clk;reg rst;reg 7:0 data_out,i;in itialbegin$readmemh("si n. txt",data_mem); /

6、 將 sin .txt中的數(shù)據(jù)讀入存儲(chǔ)器 data_memendalways (posedge elk)beginif(rst)begindata_out <= 8'dO;i <= 8'dO;endelsebegindata_out <= (128+data_memi); /將存儲(chǔ)器中的數(shù)據(jù)輸出 i <= i + 8'd1;endendin itial$monitor($time, "data_out = %d",data_out);in itialbeginrst = 1;#100 rst = 0;endin itialbe

7、ginclk = 0;forever#10 clk = clk;endEn dmodule代碼二:產(chǎn)生 0 255的數(shù)組module moddata2mat;in teger w_file;reg 7:0 i;reg 7:0 data_out;in itialw_file = $fope n("data_out.txt");always (i)begin$fdisplay(w_file,"%h",data_out);if(i = 8'd255)/ 共寫(xiě)入 256 個(gè)數(shù)據(jù)$stop;end in itialbegini=0;data_out = 1

8、28;forever #100begini = i+1;data_out = data_out + 1;endend en dmodule4 matlab 代碼一:用matlab產(chǎn)生正弦波數(shù)據(jù)N = 256;n = 1:256;x = fix(128 + (2A7 - 1) * sin( 2*pi* n/N); fid = fope n( 'si n. txt','wt');fprin tf(fid,'%xn',x);fclose(fid);二:調(diào)用modelsim產(chǎn)生的數(shù)據(jù),并畫(huà)圖顯示fid = fope n('data_out.txt

9、',丫');for i = 1 : 256;這句話(huà)的意思是從fid所指的文件以16進(jìn)制方式讀出一num(i) = fscan f(fid, '%x', 1);% 個(gè)數(shù)據(jù)。endfclose(fid);plot (nu m);5仿真結(jié)果用matlab產(chǎn)生正弦波數(shù)據(jù)sin .txt 如圖5 Editor - D:latlabTlvflrkfprintf_ttxtFile Edi t Text Cell Tcls Deug 氐 sktop TfiHelp37e438e639e?40e94ieb42ec43ee44fO45fl45f24Tf448f5在modelsim下

10、調(diào)用matlab產(chǎn)生的正弦波數(shù)據(jù) sin .txt 如圖占&一±也整址算*-蒐”即! “訂U1 L11L1LD1H>:OX>* .Uixku2n«4>d創(chuàng)曲弟Oj算Q囊致幽| EL" I一一在 modelsim 下產(chǎn)生直線數(shù)據(jù) data out.txt 如圖data_out -記事本文件(F) 扁輯(E)惜式(0重看(V) 軽助(H)01234 5 67 8 9 a b c d efol234568 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8- 9 9 9 9 _9 9 9在matlab下調(diào)用 modelsim產(chǎn)生的直線數(shù)

11、據(jù) data_out.txt 如圖五、結(jié)論和問(wèn)題:通過(guò)本次實(shí)驗(yàn)掌握了matlab和modelsim聯(lián)合仿真(一)。也就是兩者分別產(chǎn)生數(shù)據(jù)文件給另一方調(diào)用。這樣可以很好的利用matlab強(qiáng)大的數(shù)字信號(hào)處理能力和圖形顯示功能。同時(shí)也體現(xiàn)了 modelsim的底層硬件電路六、補(bǔ)充通過(guò)Verilog將數(shù)據(jù)寫(xiě)入文件有多種方法,上面用的是$fdisplay這個(gè)系統(tǒng)函數(shù),當(dāng)然還有$fmonitor和$fwrite 等幾個(gè)命令,下面簡(jiǎn)單說(shuō)一下這幾個(gè)命令的不同。$fdisplay這個(gè)命令需要有觸發(fā)條件,才會(huì)把數(shù)據(jù)寫(xiě)入文件,例如,上例的觸發(fā)條件就是always(i),當(dāng)i變化的時(shí)候才寫(xiě)入。每寫(xiě)入一次數(shù)據(jù)會(huì)自動(dòng)增加一個(gè)換行符。$fmon itor這個(gè)命令不需要觸發(fā)條件,只要有變化就可以將數(shù)據(jù)寫(xiě)入文件。例如可以通過(guò)以下語(yǔ)句in itial $fmo ni tor(w_file,"%h",data_out);這樣可以將整個(gè)仿真過(guò)程產(chǎn)生的data_out數(shù)據(jù)都寫(xiě)入文件中。$fwrite這個(gè)命令和$fdisplay 基本相同,也是需要觸發(fā)條件才會(huì)寫(xiě)入,不同的是每寫(xiě)入一個(gè)數(shù)據(jù)不會(huì)自動(dòng)添加換行符。例如可以通過(guò)以下語(yǔ)句:always (posedge clk)begin$f

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論