quartus FIR仿真笔记
第一章:
最近百度了一些fir濾波器的資料,都沒有自己想要的。容我吐槽一大段文字>
在舊版的quartus中,比如13.0,有兩個(gè)fir濾波器的選項(xiàng),如下所示:
?
網(wǎng)上很多都是講不帶II的那個(gè),而在新版的quartus已經(jīng)找不到這個(gè)IP了,如下所示:
?
?
對于第一版的FIT濾波器,在舊的版本中,經(jīng)常生成不了fir這個(gè)濾波器(quartus 的軟件問題讓人抓狂。。)
選擇生成仿真模型
(卡在這里不動(dòng)了。。我會(huì)告訴你不勾選生成仿真模型就能生成成功了嘛。。呵)
哎。
?
第二章:
解決方法:
1.我不看仿真了。。(我不)
2.于是我按照普通的方法,生成FIR II,然后按照一般的方法聯(lián)合仿真。然后就會(huì)報(bào)錯(cuò)。。如下所示:
?
3.正確的方法只要使用quartus自帶的modelsim,仿真就可以(其實(shí)加入相應(yīng)的庫也可以仿真的。。。不想研究了)。如下所示:
?
?
第三章:
仿真matlab中的輸入數(shù)據(jù):(有興趣的去研究,有兩段話,怎么加入數(shù)據(jù),以及怎么輸出數(shù)據(jù),matlab是不是可以導(dǎo)入txt分析呢?。)
?
`timescale 1 ps/ 1 ps module FirIPDa_vlg_tst(); // constants // general purpose registers // test vector input registers reg [11:0] Xin; reg clk;reg reset_n; // wires wire [24:0] Yout; //wire clk_data; // assign statements (if any) FirIPDa i1 ( // port map - connection between master ports and signals/registers .Xin(Xin),.Yout(Yout),.clk(clk),//.clk_data(clk_data),.reset_n(reset_n) );parameter clk_period=626; //設(shè)置時(shí)鐘信號周期(頻率):1.6MHz //parameter clk_period_data=clk_period*13; parameter clk_half_period=clk_period/2; //parameter clk_half_period_data=clk_half_period*13; parameter data_num=2000; //仿真數(shù)據(jù)長度 parameter time_sim=data_num*clk_period; //仿真時(shí)間initial begin//設(shè)置時(shí)鐘信號初值clk=1;//clk_data=1;//設(shè)置復(fù)位信號reset_n=0;#10000 reset_n=1;//設(shè)置仿真時(shí)間#time_sim $finish;//設(shè)置輸入信號初值Xin=12'd10; end//產(chǎn)生時(shí)鐘信號 always #clk_half_period clk=~clk; //always // #clk_half_period_data clk_data=~clk_data;//從外部TX文件(SinIn.txt)讀入數(shù)據(jù)作為測試激勵(lì) integer Pattern; reg [11:0] stimulus[1:data_num]; initial begin//文件必須放置在"工程目錄\simulation\modelsim"路徑下//$readmemb("E4_9_Bin_noise.txt",stimulus);$readmemb("E4_9_Bin_s.txt",stimulus);Pattern=0;repeat(data_num)beginPattern=Pattern+1;Xin=stimulus[Pattern];//#clk_period_data;//數(shù)據(jù)周期為時(shí)鐘周期的8倍#clk_period;//數(shù)據(jù)周期為時(shí)鐘周期的8倍end end//將仿真數(shù)據(jù)dout寫入外部TXT文件中(out.txt) integer file_out; initial begin//文件放置在"工程目錄\simulation\modelsim"路徑下 //file_out = $fopen("E4_9_Noiseout.txt");file_out = $fopen("E4_9_Sout.txt");if(!file_out)begin$display("could not open file!");$finish;end end wire rst_write; wire signed [24:0] dout_s; assign dout_s = Yout; //將dout轉(zhuǎn)換成有符號數(shù)據(jù) assign rst_write = clk& (reset_n);//產(chǎn)生寫入時(shí)鐘信號,復(fù)位狀態(tài)時(shí)不寫入數(shù)據(jù) always @(posedge rst_write )$fdisplay(file_out,"%d",dout_s);endmodule
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/cofin/p/9515098.html
總結(jié)
以上是生活随笔為你收集整理的quartus FIR仿真笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [react] 怎么在React中引入其
- 下一篇: 于仕琪的人脸检测算法