本文基于xilinx 的IP核設計,源于音頻下采樣這一需求。
創(chuàng)建vivado工程
1. 首先打開vivado,創(chuàng)建一個新的project(勾選create project subdirectory選項),并將工程命填為firfilter。
2.選擇工程創(chuàng)建的類型為RTL project。在設計PCB會用到I/Oplanning這種類型,用在原理圖和封裝兼容性設計。
3.選擇芯片family和封裝,這種基于芯片選型的工程,其能implement的資源量受芯片自身容量限制。
創(chuàng)建design文件
1.創(chuàng)建設計文件,在flow navigator欄里,選中project manager,其展開的子項中,單擊Add Source,并在跳出的框中選擇Add or create desigine sources
2 填寫創(chuàng)建的文件名為fir,類型是verilog。
定制FIR IP 核
1.類似創(chuàng)建design source文件一樣,單擊Project Manager子菜單下的IP catalog,在軟件的右側(cè)工作欄顯示一個IP catalog標簽,在search過濾器中選擇fir,雙擊FIR Compiler選項。
2 定制FIR參數(shù)第一頁,
a:按如下方式填寫,這里的fdacoe.coe文件由matlab生成,先參考matlab一節(jié),生成該文件。
b:在Filter type中選擇Decimation,抽取方式,抽取因子填3,即將48k采樣率降采樣到16k。
3 定制FIR IP,第二頁
3.第三頁
4.第四頁
5 第五頁
6 第六頁
基于MATLAB的FIR濾波器設計
FIR濾波器設計
a.在command window敲fdatool命令
b.在彈出的窗口中,將Response Type選中Lowpass,Designed Method選中FIR,其后下拉窗口,選中Window,即基于窗函數(shù)法設計FIR濾波器。
c.在Filter Order中選中Specify Order,填32這個數(shù)字,即32階,窗口設計方法
按如下窗口內(nèi)容填寫。
FIR濾波器系數(shù)量化
先點擊圖中1標號按鈕,進入量化界面,由于FPGA實現(xiàn),2標號選定點,3標號內(nèi)容照抄,4在設計有誤時,返回繼續(xù)設計有用。
FIR濾波器系數(shù)導出
點擊菜單欄上的Target按鈕,有兩個選項,一個是generate c header,一個是XILINX Coefficient (.COE) file。這兩個選項導出的系數(shù)都可以使用在xilinx 的fpga上,它們導出的系數(shù)是相等的。C語言導出系數(shù)如下:
const int BL = 33;
const int16_T B[33] = {
-90,
0, 148, 219,
0, -467, -658,
0, 1220,
1626,
0, -2875, -3909,
0, 8719, 17911, 21851, 17911,
8719,
0, -3909, -2875,
0, 1626, 1220,
0, -658,
-467,
0, 219, 148,
0, -90
};
COE導出的文件內(nèi)容如下:
; XILINX CORE Generator(tm)Distributed Arithmetic FIR filter coefficient (.COE) File
; Generated by MATLAB(R) 8.6 and the DSP System Toolbox 9.1.
; Generated on: 17-Feb-2016 09:57:13
Radix = 16;
Coefficient_Width = 16;
CoefData = ffa6,
0000,
0094,
00db,
0000,
fe2d,
fd6e,
0000,
04c4,
065a,
0000,
f4c5,
f0bb,
0000,
220f,
45f7,
555b,
45f7,
220f,
0000,
f0bb,
f4c5,
0000,
065a,
04c4,
0000,
fd6e,
fe2d,
0000,
00db,
0094,
0000,
ffa6;
FIR濾波實現(xiàn)
新建fir_test.m文件,文件內(nèi)容如下:
評論
查看更多