国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于FPGA的FIR濾波器IP仿真實例

發布時間:2019-7-16 17:33    發布者:rousong1989
基于FPGAFIR濾波器IP仿真實例
AT7_Xilinx開發板(USB3.0+LVDS)資料共享
       騰訊鏈接:https://share.weiyun.com/5GQyKKc
       百度網盤鏈接:https://pan.baidu.com/s/1M7PLzRs-yMJv7NFJE8GVAw
       提取碼:qr0t
1 FIR濾波器簡介
FIRFinite Impulse Response)濾波器,即有限脈沖響應濾波器,又稱為非遞歸型濾波器,是數字信號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位抽樣響應是有限長的,因而濾波器是穩定的系統。因此,FIR濾波器在通信、圖像處理、模式識別等領域都有著廣泛的應用。
         Vivado集成的FIR IP核可以實現如下公式所示的N級卷積運算。
         FIR IP核可以根據配置實現復用的乘累加單元,以實現面積最優化的設計;當然了,在速度性能要求極高的應用中,也可以配置并行的乘累加單元,以達到最大的FIR數據吞吐量。
2 FIR IP核配置
         FIRIP配置主頁面如圖所示。此頁面可以配置基本的濾波參數。
         通道配置頁面如下。
         輸入輸出的數據位寬可在Implementation頁面配置。
         實現的資源利用情況,如優化選項、存儲器選項和DSP Slice選項等,可以在Detailed Implementation頁面配置。
         額外的控制接口,可以在Interface頁面配置。
         左側的Freq.Response頁面可以參考所使用的FIR濾波參數最終實現的濾波特性(低通、高通、低阻、高阻或帶通、帶阻等),這里我們使用的是一組IP默認的參數,低通濾波器
         而左側的Implementation Details頁面,則可以自由利用以及接口等信息。如圖所示的ufix16_0表示輸入數據為16位的無符號整數,而fix25_0則表示輸出結果是25位的有符號整數。
         詳細配置可參看pg149-fir-compiler.pdfat7_img_ex07/matlab文件夾下)。
3 FIR IP核接口時序
         我們例化的FIR IP核,有如下的接口,其功能和端口方向定義如下。
inputaclk;         //時鐘信號
input [15 : 0] s_axis_data_tdata;  //unsigned(16.0),輸入數據
inputs_axis_data_tvalid;                 //輸入數據有效信號,高電平有效
outputs_axis_data_tready;            //準備好接收輸入數據,高電平有效
output [24 : 0] m_axis_data_tdata;      //signed(25.0)FIR濾波結果輸出
outputm_axis_data_tvalid;                     //FIR濾波結果輸出有效,高電平有效
         接口時序控制如圖所示。圖中很多信號本實例不涉及,可以忽略。s_axis_data_tvalids_axis_data_tready信號同時拉高時,s_axis_data_tdataFIR IP核接收,進行處理。當m_axis_data_tvalid拉高時,表示輸出FIR濾波結果m_axis_data_tdata有效。
4 FIR IP仿真
         使用at7_img_ex07/matlab文件夾下的test_data_generate_for_fir.m腳本,可以產生一組1000個點的余弦數據,存放在time_domain_cos.txt文件中,這組數據將作為FPGA的仿真輸入激勵,經過FIR濾波器進行濾波處理。
clc;clear `all;close all;
format long g
Fs = 1000;                    % Sampling frequency
T = 1/Fs;                     % Sampling period
L = 1000;                     % Length of signal
t = (0-1)*T;                % Time vector
x1 = cos(2*pi*50*t)*(2^13);          % First row wave
%output time domain data
x1_fix = round(x1,0);    %convert to fixed signed(3.13)
x1_fix(find(x1_fix<0)) = x1_fix(find(x1_fix<0))+(2^16);
fid0 = fopen('time_domain_cos.txt', 'wt');
fprintf(fid0, '%16x\n', x1_fix);
fid0 = fclose(fid0);
         FPGA工程at7_img_ex07的頂層是一個測試腳本,at7_fir_sim.v文件。該測試腳本將time_domain_cos.txt文件的1000個數據讀入,然后依次送入FIR濾波器IP核進行處理,輸出結果寫入fir_result.txt文本中。
`timescale 1ns/1ps
module zstar_fir_sim(
    );
         
reg clk;   
reg [15 : 0] s_axis_data_tdata;      //unsigned(16.0)
reg s_axis_data_tvalid;
wire s_axis_data_tready;
wire [31 : 25] null;
wire [24 : 0] m_axis_data_tdata;  //signed(25.0)
wire m_axis_data_tvalid;
parameter DATA_NUM = 1000;
         
////////////////////////////////////////////////////
//FIR IP Core   
fir_compiler_0  uut_fir_compiler_0 (
.aclk(clk),                              // input wire aclk
.s_axis_data_tvalid(s_axis_data_tvalid),  // input wire s_axis_data_tvalid
.s_axis_data_tready(s_axis_data_tready),  // output wire s_axis_data_tready
.s_axis_data_tdata(s_axis_data_tdata),    // input wire [15 : 0] s_axis_data_tdata
  .m_axis_data_tvalid(m_axis_data_tvalid),  // output wire m_axis_data_tvalid
  .m_axis_data_tdata({null,m_axis_data_tdata})    // output wire [31 : 0] m_axis_data_tdata
);
         
////////////////////////////////////////////////////     
integer i;
reg[15:0] data_mem [DATA_NUM-1:0];
initial #500 $readmemh("../../time_domain_cos.txt",  data_mem);                 
initial begin
         clk = 0;
         
         s_axis_data_tdata<= 16'd0;
         s_axis_data_tvalid<= 1'b0;
         
         
         #1000;
         @(posedgeclk);
         i<= 1;
         #10000;
         @(posedgeclk);               
         
         #100_000;
         
         $fclose(w1_file);
         #1000;
         $stop;
end  
always @(*) begin
         if((i>0) && (i
         else s_axis_data_tdata<= 16'd0;
end  
always @(posedgeclk) begin
         if(i == 0) i<= 0;
         else if(i<= DATA_NUM) begin         
                  if(s_axis_data_tready&&s_axis_data_tvalid) i<= i+1;
                  else ;
         end
         else if(i< DATA_NUM+26) i<= i+1;
         else ;
end
always @(posedgeclk) begin
         if((i>=1) && (i<=DATA_NUM-1)) s_axis_data_tvalid<= 1'b1;        
         else s_axis_data_tvalid<= 1'b0;
end
always #10 clk = ~clk;              
integer w1_file;
initial w1_file = $fopen("./fir_result.txt","w");     
                  
always @(posedgeclk) begin
         if(m_axis_data_tvalid) begin
                  $fwrite(w1_file, "%x\n", m_axis_data_tdata);     
         end  
end  
         
endmodule
         如圖所示,Vivado中打開at7_img_ex07工程,在Project Manager à Simulation Sources à sim_1下,看到top module為高亮的at7_fir_sim.v模塊,點擊Flow Navigator à Simulation à Run Simulation可以啟動仿真。
         運行仿真如圖。
仿真的結果將寫入生成的fir_result.txt文本(位于at7_img_ex07\at7.sim文件夾的子文件夾中),將該文本放置到matlab文件夾中,運行matlab腳本draw_wave_from_txt.m,可以查看正弦數據FIR濾波前后的波形比對。在時域看來,峰或谷的位置是高頻,因此都被FIR濾波處理了。
AT7_Xilinx開發板(USB3.0+LVDS)資料共享
       騰訊鏈接:https://share.weiyun.com/5GQyKKc
       百度網盤鏈接:https://pan.baidu.com/s/1M7PLzRs-yMJv7NFJE8GVAw
       提取碼:qr0t
本文地址:http://m.qingdxww.cn/thread-565970-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 安靜高效的電機控制——這才是正確的方向!
  • 無線充電基礎知識及應用培訓教程2
  • 5分鐘詳解定時器/計數器E和波形擴展!
  • 基于CEC1712實現的處理器SPI FLASH固件安全彈性方案培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青青青草原国产免费 | 日韩精品在线观看视频 | 成人啪精品视频免费网站 | fc2ppv在线播放 | 亚洲香蕉在线 | 91精品国产综合久 | 日本深夜18免费看片高清网 | 国产在线激情视频 | 在线观看国产黄色 | 国产亚洲欧美在线播放网站 | 亚洲a网| 欧美日韩国产在线人 | 亚洲国产日韩在线人高清 磁力 | 日产国产欧美视频一区精品 | 青青草原国产在线观看 | 成年人快播 | 日日夜夜综合网 | 羞羞网站在线免费观看 | 手机看片久久国产免费不卡 | 欧美一级www | 国产精品亚洲综合天堂夜夜 | 男女强吻摸下面揉免费 | 四虎影院黄色 | 大乳欲妇三级一区二区三区 | www福利视频| 亚洲国产高清精品线久久 | 一级做a级爰片性色毛片视频 | 国产香蕉91tv永久在线 | 成年人视频免费在线播放 | 丁香婷婷色 | 久久精品国产精品亚洲毛片 | 日韩精品1 | 国产99视频在线观看 | 高清一区二区亚洲欧美日韩 | 日韩另类在线 | 日韩第1页 | 女人18毛片a级毛片一区②区 | 一级毛片黄片 | 国产成人一区二区 | 精品视频免费观看 | 日韩一级在线视频 |