在FPGA設(shè)計(jì)中使用Precision RTL 綜合實(shí)例
掃描二維碼
隨時(shí)隨地手機(jī)看文章
數(shù)字濾波器通常分成有限脈沖響應(yīng)(finite impulse response,也就是FIR)和
無限脈沖響應(yīng)(infinite impulse response,也就是IIR)兩大類。FIR 濾波器相對(duì)
于IIR濾波器而言,優(yōu)點(diǎn)是相位線性和性能穩(wěn)定,應(yīng)用范圍廣,缺點(diǎn)是需要長(zhǎng)的
沖擊響應(yīng)(即高階數(shù))才能得到理想的結(jié)果,實(shí)現(xiàn)難度較大。因此在FPGA 上實(shí)
現(xiàn)高性能FIR 濾波器是很具有挑戰(zhàn)性的。下面我們用幾種不同的方法來完成FIR
濾波器設(shè)計(jì),并進(jìn)行比較。
FIR 濾波器的系數(shù)為{11,-69, -51, 61, 85, -72, -198, -37, 234,
72,-631,-922,594,4185,8139,9871,8139,4185,594,-922,-631,72,
234,-37,-198,-72,85,61,-51,-69,11}。兩路輸入,輸入信號(hào)位寬為7,
輸出信號(hào)位寬為23。
設(shè)計(jì)輸入為VHDL 語言,輸入輸出信號(hào)聲明如下:
entity receive_low_pass_filter is
port (chip_input_i : in signed(6 downto 0);
chip_input_q : in signed(6 downto 0);
clk : in std_logic;
reset : in std_logic;
data_i_channel_output : out signed(22 downto 0);
data_q_channel_output : out signed(22 downto 0) );
end receive_low_pass_filter;
第一種方法:使用Altera 公司的QuartusII3.0 單獨(dú)完成整個(gè)設(shè)計(jì)過程,
在Quartus 中新建一個(gè)項(xiàng)目(project),然后將VHDL 文件添加進(jìn)去,我們選
擇APEX 系列20K1000EBC652 芯片,執(zhí)行Start Compilation,得到時(shí)序分析報(bào)
告,發(fā)現(xiàn)最大頻率為72.19MHz。
第二種方法:使用Precision RTL 綜合在不使用任何約束條件下對(duì)VHDL 文件
進(jìn)行綜合,如圖2 所示。
圖 2 Precision RTL 綜合界面
用綜合得到的網(wǎng)表文件(EDIF 文件)代替Quartus 項(xiàng)目中的VHDL 文件,執(zhí)
行Start Compilation,得到時(shí)序分析報(bào)告,發(fā)現(xiàn)最大頻率為95.2MHz。
B 時(shí)序仿真
圖4 仿真結(jié)果
以上實(shí)例充分驗(yàn)證了Precision RTL 綜合在FPGA 設(shè)計(jì)中的重要作用,它對(duì)我們?cè)O(shè)計(jì)水平的提高有很大幫助。