91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過vivado HLS設(shè)計(jì)一個(gè)FIR低通濾波器

FPGA設(shè)計(jì)論壇 ? 來源:FPGA設(shè)計(jì)論壇 ? 2026-01-20 16:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Vivado HLS是一款強(qiáng)大的高層次綜合工具,可將C/C++代碼轉(zhuǎn)換為硬件描述語言(HDL),顯著提升FPGA開發(fā)效率。

1. FIR參數(shù)確定

FIR濾波器的設(shè)計(jì),首先要明確其技術(shù)指標(biāo),這些指標(biāo)對(duì)濾波器的性能和資源占用起著關(guān)鍵作用。以一個(gè)低通濾波器為例,其具體參數(shù)如下:

濾波器階數(shù)設(shè)定為15。

采樣頻率是100MHz。

通帶截止頻率為20MHz。

阻帶起始頻率為30MHz。

通帶波紋要求在0.1dB以內(nèi)。

阻帶衰減需達(dá)到60dB。

2. FIR系數(shù)計(jì)算

可以借助Python等工具來計(jì)算濾波器系數(shù)。下面是用Python計(jì)算系數(shù)的代碼:

importnumpyasnpfromscipyimportsignalimportmatplotlib.pyplotasplt# 濾波器參數(shù)order =15# 濾波器階數(shù)fs =100e6# 采樣頻率 (Hz)f_pass =20e6# 通帶截止頻率 (Hz)f_stop =30e6# 阻帶起始頻率 (Hz)A_pass =0.1# 通帶波紋 (dB)A_stop =60# 阻帶衰減 (dB)# 歸一化頻率nyquist =0.5* fs wp = f_pass / nyquist ws = f_stop / nyquist# 計(jì)算FIR濾波器系數(shù)(使用 Parks-McClellan 算法)h = signal.remez(order +1, [0, wp, ws,1.0], [1,0], Hz=1.0)# 打印系數(shù)(量化為16位定點(diǎn)數(shù))coeffs_q15 = [int(round(c *32767))forcinh]print("FIR系數(shù) (Q15格式):")fori, cinenumerate(coeffs_q15):  print(f"h[{i}] ={c}, 即{c/32768:.10f}")# 繪制頻率響應(yīng)w, h_freq = signal.freqz(h) plt.figure() plt.plot(0.5*fs*w/np.pi,20*np.log10(np.abs(h_freq))) plt.title('FIR濾波器頻率響應(yīng)') plt.xlabel('頻率 (Hz)') plt.ylabel('幅度 (dB)') plt.grid(True) plt.axvline(f_pass, color='green') # 通帶截止頻率plt.axvline(f_stop, color='red')  # 阻帶起始頻率plt.show()

3. C/C++代碼實(shí)現(xiàn)

使用Vivado HLS特定的數(shù)據(jù)類型和指令:

#include"fir.h"voidfir(data_t*output,data_tinput){  // 定義FIR系數(shù)(Q15格式)constcoeff_th[NUM_TAPS] = {    -10,-22,-32,-37,-26,10,72,133,     171,171,133,72,10,-26,-37,-32,-22,-10  };    // 聲明移位寄存器數(shù)組staticdata_tshift_reg[NUM_TAPS];    // pragma指令,優(yōu)化循環(huán)展開#pragmaHLS ARRAY_PARTITION variable=shift_reg complete dim=1// 數(shù)據(jù)移位操作for(inti = NUM_TAPS -1; i >0; i--) {    #pragmaHLS UNROLL    shift_reg[i] = shift_reg[i-1];   }   shift_reg[0] = input;    // 執(zhí)行乘法累加操作acc_tacc =0;  for(inti =0; i < NUM_TAPS; i++) { ? ? ? ?#pragma?HLS UNROLL? ? ? ? ?acc += shift_reg[i] * h[i]; ? ? } ? ? ? ??// 輸出結(jié)果? ? ?*output = acc >>15;// Q15格式轉(zhuǎn)換}

定義頭文件:

#ifndef_FIR_H_#define_FIR_H_#include"ap_fixed.h"http:// 定義數(shù)據(jù)類型typedefap_fixed<16,?1>data_t;  // 16位定點(diǎn)數(shù),1位整數(shù),15位小數(shù)typedefap_fixed<16,?1>coeff_t; // 系數(shù)類型typedefap_fixed<32,?17>acc_t;  // 累加器類型,防止溢出// 定義濾波器抽頭數(shù)#defineNUM_TAPS 19// 函數(shù)原型voidfir(data_t*output,data_tinput);#endif

定義測(cè)試程序:

#include"fir.h"#include#include#include#definePI 3.14159265358979323846intmain(){  // 測(cè)試數(shù)據(jù)data_tinput[100];  data_toutput[100];    // 生成測(cè)試信號(hào)(混合了5MHz和40MHz的正弦波)for(inti =0; i 

4. Vivado HLS項(xiàng)目創(chuàng)建與配置

4.1 在Vivado HLS中創(chuàng)建新項(xiàng)目并配置

1.打開Vivado HLS工具。

2.執(zhí)行 "File > New Project" 命令來創(chuàng)建一個(gè)新的項(xiàng)目。

3.為項(xiàng)目命名,例如 "FIR_Filter",并選擇合適的存儲(chǔ)位置。

4.添加源文件,即前面編寫的fir.c和fir.h。

5.添加測(cè)試平臺(tái)文件tb_fir.c。

6.指定目標(biāo)設(shè)備,比如xc7z020clg400-1。

7.配置解決方案,設(shè)置時(shí)鐘周期(例如 10ns)和復(fù)位類型。

4.2在Vivado HLS中執(zhí)行C仿真

1.點(diǎn)擊 "Project > Run C Simulation"。

2.確保仿真順利完成,并且控制臺(tái)顯示 "Verification successful"。

3.可以使用 gnuplot 或 MATLAB 對(duì)輸出文件進(jìn)行分析。

4.3執(zhí)行C綜合以將C代碼轉(zhuǎn)換為RTL

1.選擇 "Solution > Run C Synthesis > Active Solution"。

2.綜合完成后,查看報(bào)告,重點(diǎn)關(guān)注:

資源利用率(DSP、LUT、FF 等)。

延遲(Latency)和吞吐量(Interval)。

關(guān)鍵路徑分析。

4.4進(jìn)行RTL級(jí)仿真驗(yàn)證

1.選擇 "Solution > Run C/RTL Co-simulation"。

2.選擇仿真工具(如VCS、ModelSim等)。

3.等待仿真完成,檢查結(jié)果是否與C仿真一致。

4.5導(dǎo)出IP

將設(shè)計(jì)導(dǎo)出為IP核供Vivado使用:

1.選擇 "Solution > Export RTL"。

2.保持默認(rèn)設(shè)置,點(diǎn)擊 "OK"。

3.導(dǎo)出完成后,IP 核會(huì)出現(xiàn)在項(xiàng)目目錄的exported_ip文件夾中。

4.6在Vivado中集成IP

6fb37c3e-f5b7-11f0-92de-92fbcf53809c.png

1.打開 Vivado,創(chuàng)建新工程或打開已有工程。

2.點(diǎn)擊 "Settings > IP > Repository",添加HLS導(dǎo)出的IP路徑。

3.在Block Design中添加FIR濾波器IP核。

4.完成系統(tǒng)集成(添加時(shí)鐘、復(fù)位等)。

5.生成比特流并下載到FPGA進(jìn)行硬件驗(yàn)證。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1660

    文章

    22406

    瀏覽量

    636077
  • 濾波器
    +關(guān)注

    關(guān)注

    162

    文章

    8409

    瀏覽量

    185662
  • 低通濾波器
    +關(guān)注

    關(guān)注

    15

    文章

    553

    瀏覽量

    49004
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    857

    瀏覽量

    71094

原文標(biāo)題:通過vivado HLS設(shè)計(jì)一個(gè)FIR低通濾波器

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用DDS生成三個(gè)信號(hào)并在Vivado中實(shí)現(xiàn)低通濾波器

    本文使用 DDS 生成三個(gè)信號(hào),并在 Vivado 中實(shí)現(xiàn)低通濾波器。低通濾波器將濾除相關(guān)信號(hào)。
    的頭像 發(fā)表于 03-01 14:31 ?2790次閱讀
    使用DDS生成三<b class='flag-5'>個(gè)</b>信號(hào)并在<b class='flag-5'>Vivado</b>中實(shí)現(xiàn)<b class='flag-5'>低通濾波器</b>

    Vivado 使用Simulink設(shè)計(jì)FIR濾波器

    。 使用vivado的System Generator可以在simulink下快速的通過matlab的強(qiáng)大設(shè)計(jì)功能設(shè)計(jì)濾波器。這里使用fdatool設(shè)計(jì)了
    發(fā)表于 04-17 17:29

    信號(hào)的譜分析、做一個(gè)FIR數(shù)字低通濾波器

    一個(gè)FIR數(shù)字低通濾波器,信號(hào)源是正弦信號(hào)加均勻白噪聲,顯示混疊信號(hào)和經(jīng)過濾波后信號(hào)波形 以及頻譜分析,
    發(fā)表于 05-10 00:05

    如何設(shè)計(jì)低通FIR濾波器

    設(shè)計(jì)實(shí)現(xiàn)低通FIR濾波器步設(shè)計(jì)和實(shí)現(xiàn)過濾器獲得濾波器系數(shù)可調(diào)諧低通FIR濾波器高級(jí)設(shè)計(jì)選項(xiàng):最
    發(fā)表于 08-23 10:00

    并行FIR濾波器Verilog設(shè)計(jì)

    的《數(shù)字濾波器的MATLAB與FPGA實(shí)現(xiàn)》。本設(shè)計(jì)將在Vivado環(huán)境下進(jìn)行仿真。使用MATLAB設(shè)計(jì)個(gè)2kHz采樣,500Hz截止的15階低通
    發(fā)表于 09-25 17:44

    基于DSP的FIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)

    分析了FIR數(shù)字濾波器的基本原理,在MATLAB環(huán)境下利用窗函數(shù)設(shè)計(jì)FIR低通濾波器,實(shí)現(xiàn)了FIR低通濾
    發(fā)表于 12-18 15:53 ?101次下載

    基于MATLAB及FPGA的FIR低通濾波器的設(shè)計(jì)

    充分利用有限沖擊響應(yīng)數(shù)字濾波器(Finite Impulse Response digital filter ,FIR)系數(shù)的對(duì)稱特性,借助于MATLAB語言和現(xiàn)場(chǎng)可編程門陣列(FPGA)實(shí)現(xiàn)了種高效的
    發(fā)表于 08-05 14:23 ?83次下載
    基于MATLAB及FPGA的<b class='flag-5'>FIR</b><b class='flag-5'>低通濾波器</b>的設(shè)計(jì)

    HLS系列 – High Level Synthesis(HLS) 從個(gè)最簡(jiǎn)單的fir濾波器開始2

    在這個(gè)系列的上篇文章“HighLevel Synthesis(HLS) 從個(gè)最簡(jiǎn)單的fir濾波器
    發(fā)表于 02-08 05:10 ?788次閱讀

    HLS系列 – High Level Synthesis(HLS) 從個(gè)最簡(jiǎn)單的fir濾波器開始3

    在上章“High LevelSynthesis(HLS) 從個(gè)最簡(jiǎn)單的fir濾波器開始2”中
    發(fā)表于 02-08 05:11 ?794次閱讀
    <b class='flag-5'>HLS</b>系列 – High Level Synthesis(<b class='flag-5'>HLS</b>) 從<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>最簡(jiǎn)單的<b class='flag-5'>fir</b><b class='flag-5'>濾波器</b>開始3

    HLS系列 – High Level Synthesis(HLS) 從個(gè)最簡(jiǎn)單的fir濾波器開始4

    在這個(gè)系列的前3篇文章“HighLevel Synthesis(HLS) 從個(gè)最簡(jiǎn)單的fir濾波器開始1-3”中,我們從
    發(fā)表于 02-08 05:13 ?1603次閱讀
    <b class='flag-5'>HLS</b>系列 – High Level Synthesis(<b class='flag-5'>HLS</b>) 從<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>最簡(jiǎn)單的<b class='flag-5'>fir</b><b class='flag-5'>濾波器</b>開始4

    HLS系列 – High LevelSynthesis(HLS) 從個(gè)最簡(jiǎn)單的fir濾波器開始5

    在這個(gè)系列的前4篇文章“HighLevel Synthesis(HLS) 從個(gè)最簡(jiǎn)單的fir濾波器開始1-4”中,我們從
    發(fā)表于 02-08 05:18 ?1027次閱讀
    <b class='flag-5'>HLS</b>系列 – High LevelSynthesis(<b class='flag-5'>HLS</b>) 從<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>最簡(jiǎn)單的<b class='flag-5'>fir</b><b class='flag-5'>濾波器</b>開始5

    詳解FIR濾波器和IIR濾波器的區(qū)別

    數(shù)字濾波器廣泛應(yīng)用于硬件電路設(shè)計(jì),般分為FIR濾波器和IIR濾波器。那么FIR
    發(fā)表于 05-03 11:36 ?20次下載

    數(shù)字低通濾波器的設(shè)計(jì)

    本文主要介紹了數(shù)字低通濾波器的設(shè)計(jì),數(shù)字濾波器有無限沖激響應(yīng)(IIR)系統(tǒng)和有限沖激響應(yīng)(FIR)系統(tǒng)兩種。利用MATLAB設(shè)計(jì)IIR濾波器,設(shè)計(jì)過程簡(jiǎn)單、直接,大大縮減了設(shè)計(jì)開發(fā)的時(shí)
    發(fā)表于 01-14 15:16 ?2w次閱讀
    數(shù)字<b class='flag-5'>低通濾波器</b>的設(shè)計(jì)

    Matlab低通濾波器設(shè)定與實(shí)踐

    Matlab數(shù)字濾波器設(shè)計(jì)實(shí)踐—FIR 1低通濾波器設(shè)定 在理想情況下,低通濾波器使信號(hào)中低于指定截止頻率 ωc 的所有頻率分量保持不變,并拒絕高于 ωc 的所有分量。由于實(shí)現(xiàn)理想
    的頭像 發(fā)表于 08-16 11:10 ?1.7w次閱讀
    Matlab<b class='flag-5'>低通濾波器</b>設(shè)定與實(shí)踐

    如何使用HLS加速FPGA上的FIR濾波器

    電子發(fā)燒友網(wǎng)站提供《如何使用HLS加速FPGA上的FIR濾波器.zip》資料免費(fèi)下載
    發(fā)表于 06-14 15:28 ?3次下載
    如何使用<b class='flag-5'>HLS</b>加速FPGA上的<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>