国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過vivado HLS設計一個FIR低通濾波器

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

掃碼添加小助手

加入工程師交流群

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

1. FIR參數確定

FIR濾波器的設計,首先要明確其技術指標,這些指標對濾波器的性能和資源占用起著關鍵作用。以一個低通濾波器為例,其具體參數如下:

濾波器階數設定為15。

采樣頻率是100MHz。

通帶截止頻率為20MHz。

阻帶起始頻率為30MHz。

通帶波紋要求在0.1dB以內。

阻帶衰減需達到60dB。

2. FIR系數計算

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

importnumpyasnpfromscipyimportsignalimportmatplotlib.pyplotasplt# 濾波器參數order =15# 濾波器階數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# 計算FIR濾波器系數(使用 Parks-McClellan 算法)h = signal.remez(order +1, [0, wp, ws,1.0], [1,0], Hz=1.0)# 打印系數(量化為16位定點數)coeffs_q15 = [int(round(c *32767))forcinh]print("FIR系數 (Q15格式):")fori, cinenumerate(coeffs_q15):  print(f"h[{i}] ={c}, 即{c/32768:.10f}")# 繪制頻率響應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濾波器頻率響應') 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++代碼實現

使用Vivado HLS特定的數據類型和指令:

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

定義頭文件:

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

定義測試程序:

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

4. Vivado HLS項目創建與配置

4.1 在Vivado HLS中創建新項目并配置

1.打開Vivado HLS工具。

2.執行 "File > New Project" 命令來創建一個新的項目。

3.為項目命名,例如 "FIR_Filter",并選擇合適的存儲位置。

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

5.添加測試平臺文件tb_fir.c。

6.指定目標設備,比如xc7z020clg400-1。

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

4.2在Vivado HLS中執行C仿真

1.點擊 "Project > Run C Simulation"。

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

3.可以使用 gnuplot 或 MATLAB 對輸出文件進行分析。

4.3執行C綜合以將C代碼轉換為RTL

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

2.綜合完成后,查看報告,重點關注:

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

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

關鍵路徑分析。

4.4進行RTL級仿真驗證

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

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

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

4.5導出IP

將設計導出為IP核供Vivado使用:

1.選擇 "Solution > Export RTL"。

2.保持默認設置,點擊 "OK"。

3.導出完成后,IP 核會出現在項目目錄的exported_ip文件夾中。

4.6在Vivado中集成IP

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

1.打開 Vivado,創建新工程或打開已有工程。

2.點擊 "Settings > IP > Repository",添加HLS導出的IP路徑。

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

4.完成系統集成(添加時鐘、復位等)。

5.生成比特流并下載到FPGA進行硬件驗證。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1660

    文章

    22408

    瀏覽量

    636217
  • 濾波器
    +關注

    關注

    162

    文章

    8411

    瀏覽量

    185679
  • 低通濾波器
    +關注

    關注

    15

    文章

    554

    瀏覽量

    49005
  • Vivado
    +關注

    關注

    19

    文章

    857

    瀏覽量

    71100

原文標題:通過vivado HLS設計一個FIR低通濾波器

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用DDS生成三信號并在Vivado中實現低通濾波器

    本文使用 DDS 生成三信號,并在 Vivado 中實現低通濾波器低通濾波器將濾除相關信號。
    的頭像 發表于 03-01 14:31 ?2797次閱讀
    使用DDS生成三<b class='flag-5'>個</b>信號并在<b class='flag-5'>Vivado</b>中實現<b class='flag-5'>低通濾波器</b>

    Vivado 使用Simulink設計FIR濾波器

    。 使用vivado的System Generator可以在simulink下快速的通過matlab的強大設計功能設計濾波器。這里使用fdatool設計了
    發表于 04-17 17:29

    信號的譜分析、做一個FIR數字低通濾波器

    一個FIR數字低通濾波器,信號源是正弦信號加均勻白噪聲,顯示混疊信號和經過濾波后信號波形 以及頻譜分析,
    發表于 05-10 00:05

    如何設計低通FIR濾波器

    設計實現低通FIR濾波器步設計和實現過濾器獲得濾波器系數可調諧低通FIR濾波器高級設計選項:最
    發表于 08-23 10:00

    并行FIR濾波器Verilog設計

    的《數字濾波器的MATLAB與FPGA實現》。本設計將在Vivado環境下進行仿真。使用MATLAB設計2kHz采樣,500Hz截止的15階低通
    發表于 09-25 17:44

    基于DSP的FIR數字濾波器設計與實現

    分析了FIR數字濾波器的基本原理,在MATLAB環境下利用窗函數設計FIR低通濾波器,實現了FIR低通濾
    發表于 12-18 15:53 ?101次下載

    基于MATLAB及FPGA的FIR低通濾波器的設計

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

    HLS系列 – High Level Synthesis(HLS) 從最簡單的fir濾波器開始2

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

    HLS系列 – High Level Synthesis(HLS) 從最簡單的fir濾波器開始3

    在上章“High LevelSynthesis(HLS) 從最簡單的fir濾波器開始2”中
    發表于 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'>個</b>最簡單的<b class='flag-5'>fir</b><b class='flag-5'>濾波器</b>開始3

    HLS系列 – High Level Synthesis(HLS) 從最簡單的fir濾波器開始4

    在這個系列的前3篇文章“HighLevel Synthesis(HLS) 從最簡單的fir濾波器開始1-3”中,我們從
    發表于 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'>個</b>最簡單的<b class='flag-5'>fir</b><b class='flag-5'>濾波器</b>開始4

    HLS系列 – High LevelSynthesis(HLS) 從最簡單的fir濾波器開始5

    在這個系列的前4篇文章“HighLevel Synthesis(HLS) 從最簡單的fir濾波器開始1-4”中,我們從
    發表于 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'>個</b>最簡單的<b class='flag-5'>fir</b><b class='flag-5'>濾波器</b>開始5

    詳解FIR濾波器和IIR濾波器的區別

    數字濾波器廣泛應用于硬件電路設計,般分為FIR濾波器和IIR濾波器。那么FIR
    發表于 05-03 11:36 ?20次下載

    數字低通濾波器的設計

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

    Matlab低通濾波器設定與實踐

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

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

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