【E1552】FIR滤波器协处理器的FPGA实现

2021-10-17 21:35:15      索炜达电子      1035     

项目编号:E1552

文件大小:54M

源码说明:带中文注释

开发环境:VHDL

简要概述:

在本项目中,我们在FPGA中实现了FIR滤波器协处理器(Arty7 xc7a35tcsg324-1),以及输入/输出数据存储和传输协议。特别是,我们使用IPbus协议与FPGA板和DPRAM组件进行通信,作为存储源。我们在几个输入波形上测试了滤波器的硬件实现,并将结果与通过Python仿真获得的结果进行了比较。

【E1552】FIR滤波器协处理器的FPGA实现

文件夹的内容

代码:包含项目所有源代码的文件夹

固件:FPGA固件的所有代码;

软件:通过uhal访问FPGA内存寄存器的一些脚本;

分析:在FPGA上编写数据进行滤波和读取滤波数据的笔记本;

报告:包含项目报告的文件夹,还包括.tex源文件。

目录│文件列表:

 └ MAPD-A-Project-IPBUS-Filter-main

    │ wavedrom.png

    ├ code

    │  ├ analysis

    │  │  │ coefficients.ipynb

    │  │  │ fir.ipynb

    │  │  │ FIR_filter_freq_analysis.pdf

    │  │  │ sine.pdf

    │  │  │ square.pdf

    │  │  └ util.txt

    │  ├ firmware

    │  │  │ final_ex.xpr

    │  │  ├ final_ex.cache

    │  │  │  └ wt

    │  │  │     │ gui_handlers.wdf

    │  │  │     │ java_command_handlers.wdf

    │  │  │     │ project.wpc

    │  │  │     │ synthesis.wdf

    │  │  │     │ synthesis_details.wdf

    │  │  │     │ webtalk_pa.xml

    │  │  │     └ xsim.wdf

    │  │  ├ final_ex.hw

    │  │  │  │ final_ex.lpr

    │  │  │  │ Lab9.lpr

    │  │  │  └ hw_1

    │  │  │     │ hw.xml

    │  │  │     └ layout

    │  │  │        └ hw_vios.layout

    │  │  ├ final_ex.ip_user_files

    │  │  │  │ README.txt

    │  │  │  ├ ip

    │  │  │  │  ├ tri_mode_ethernet_mac_0_2

    │  │  │  │  │  │ tri_mode_ethernet_mac_0.veo

    │  │  │  │  │  │ tri_mode_ethernet_mac_0.vho

    │  │  │  │  │  │ tri_mode_ethernet_mac_0_sim_netlist.v

    │  │  │  │  │  │ tri_mode_ethernet_mac_0_sim_netlist.vhdl

    │  │  │  │  │  │ tri_mode_ethernet_mac_0_stub.v

    │  │  │  │  │  │ tri_mode_ethernet_mac_0_stub.vhdl

    │  │  │  │  │  ├ hdl

    │  │  │  │  │  │  └ avb

    │  │  │  │  │  │     └ tx_ptp_pkt_buff_init.mem

    │  │  │  │  │  └ synth

    │  │  │  │  │     │ tri_mode_ethernet_mac_0.vhd

    │  │  │  │  │     │ tri_mode_ethernet_mac_0_block.vhd

    │  │  │  │  │     └ physical

    │  │  │  │  │        └ tri_mode_ethernet_mac_0_mii_if.vhd

    │  │  │  │  └ vio_dpram

    │  │  │  │     │ vio_dpram.veo

    │  │  │  │     │ vio_dpram.vho

    │  │  │  │     │ vio_dpram_stub.v

    │  │  │  │     └ vio_dpram_stub.vhdl

    │  │  │  ├ ipstatic

    │  │  │  │  └ hdl

    │  │  │  │     │ axi_lite_ipif_v3_0_vh_rfs.vhd

    │  │  │  │     │ mult_gen_v12_0_vh_rfs.vhd

    │  │  │  │     │ tri_mode_ethernet_mac_v9_0_rfs.v

    │  │  │  │     │ tri_mode_ethernet_mac_v9_0_rfs.vhd

    │  │  │  │     │ xbip_bram18k_v3_0_vh_rfs.vhd

    │  │  │  │     │ xbip_pipe_v3_0_vh_rfs.vhd

    │  │  │  │     └ xbip_utils_v3_0_vh_rfs.vhd

    │  │  │  ├ mem_init_files

    │  │  │  │  └ tx_ptp_pkt_buff_init.mem

    │  │  │  └ sim_scripts

    │  │  │     ├ tri_mode_ethernet_mac_0_2

    │  │  │     │  │ README.txt

    │  │  │     │  ├ activehdl

    │  │  │     │  │  │ compile.do

    │  │  │     │  │  │ file_info.txt

    │  │  │     │  │  │ glbl.v

    │  │  │     │  │  │ README.txt

    │  │  │     │  │  │ simulate.do

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.sh

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.udo

    │  │  │     │  │  │ tx_ptp_pkt_buff_init.mem

    │  │  │     │  │  └ wave.do

    │  │  │     │  ├ ies

    │  │  │     │  │  │ file_info.txt

    │  │  │     │  │  │ glbl.v

    │  │  │     │  │  │ README.txt

    │  │  │     │  │  │ run.f

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.sh

    │  │  │     │  │  └ tx_ptp_pkt_buff_init.mem

    │  │  │     │  ├ modelsim

    │  │  │     │  │  │ compile.do

    │  │  │     │  │  │ file_info.txt

    │  │  │     │  │  │ glbl.v

    │  │  │     │  │  │ README.txt

    │  │  │     │  │  │ simulate.do

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.sh

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.udo

    │  │  │     │  │  │ tx_ptp_pkt_buff_init.mem

    │  │  │     │  │  └ wave.do

    │  │  │     │  ├ questa

    │  │  │     │  │  │ compile.do

    │  │  │     │  │  │ elaborate.do

    │  │  │     │  │  │ file_info.txt

    │  │  │     │  │  │ glbl.v

    │  │  │     │  │  │ README.txt

    │  │  │     │  │  │ simulate.do

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.sh

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.udo

    │  │  │     │  │  │ tx_ptp_pkt_buff_init.mem

    │  │  │     │  │  └ wave.do

    │  │  │     │  ├ riviera

    │  │  │     │  │  │ compile.do

    │  │  │     │  │  │ file_info.txt

    │  │  │     │  │  │ glbl.v

    │  │  │     │  │  │ README.txt

    │  │  │     │  │  │ simulate.do

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.sh

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.udo

    │  │  │     │  │  │ tx_ptp_pkt_buff_init.mem

    │  │  │     │  │  └ wave.do

    │  │  │     │  ├ vcs

    │  │  │     │  │  │ file_info.txt

    │  │  │     │  │  │ glbl.v

    │  │  │     │  │  │ README.txt

    │  │  │     │  │  │ simulate.do

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.sh

    │  │  │     │  │  └ tx_ptp_pkt_buff_init.mem

    │  │  │     │  ├ xcelium

    │  │  │     │  │  │ file_info.txt

    │  │  │     │  │  │ glbl.v

    │  │  │     │  │  │ README.txt

    │  │  │     │  │  │ run.f

    │  │  │     │  │  │ tri_mode_ethernet_mac_0.sh

    │  │  │     │  │  └ tx_ptp_pkt_buff_init.mem

    │  │  │     │  └ xsim

    │  │  │     │     │ cmd.tcl

    │  │  │     │     │ file_info.txt

    │  │  │     │     │ glbl.v

    │  │  │     │     │ README.txt

    │  │  │     │     │ tri_mode_ethernet_mac_0.sh

    │  │  │     │     │ tx_ptp_pkt_buff_init.mem

    │  │  │     │     │ vhdl.prj

    │  │  │     │     └ vlog.prj

    │  │  │     └ vio_dpram

    │  │  │        │ README.txt

    │  │  │        ├ activehdl

    │  │  │        │  │ compile.do

    │  │  │        │  │ file_info.txt

    │  │  │        │  │ glbl.v

    │  │  │        │  │ README.txt

    │  │  │        │  │ simulate.do

    │  │  │        │  │ vio_dpram.sh

    │  │  │        │  │ vio_dpram.udo

    │  │  │        │  └ wave.do

    │  │  │        ├ ies

    │  │  │        │  │ file_info.txt

    │  │  │        │  │ glbl.v

    │  │  │        │  │ README.txt

    │  │  │        │  │ run.f

    │  │  │        │  └ vio_dpram.sh

    │  │  │        ├ modelsim

    │  │  │        │  │ compile.do

    │  │  │        │  │ file_info.txt

    │  │  │        │  │ glbl.v

    │  │  │        │  │ README.txt

    │  │  │        │  │ simulate.do

    │  │  │        │  │ vio_dpram.sh

    │  │  │        │  │ vio_dpram.udo

    │  │  │        │  └ wave.do

    │  │  │        ├ questa

    │  │  │        │  │ compile.do

    │  │  │        │  │ elaborate.do

    │  │  │        │  │ file_info.txt

    │  │  │        │  │ glbl.v

    │  │  │        │  │ README.txt

    │  │  │        │  │ simulate.do

    │  │  │        │  │ vio_dpram.sh

    │  │  │        │  │ vio_dpram.udo

    │  │  │        │  └ wave.do

    │  │  │        ├ riviera

    │  │  │        │  │ compile.do

    │  │  │        │  │ file_info.txt

    │  │  │        │  │ glbl.v

    │  │  │        │  │ README.txt

    │  │  │        │  │ simulate.do

    │  │  │        │  │ vio_dpram.sh

    │  │  │        │  │ vio_dpram.udo

    │  │  │        │  └ wave.do

    │  │  │        ├ vcs

    │  │  │        │  │ file_info.txt

    │  │  │        │  │ glbl.v

    │  │  │        │  │ README.txt

    │  │  │        │  │ simulate.do

    │  │  │        │  └ vio_dpram.sh

    │  │  │        ├ xcelium

    │  │  │        │  │ file_info.txt

    │  │  │        │  │ glbl.v

    │  │  │        │  │ README.txt

    │  │  │        │  │ run.f

    │  │  │        │  └ vio_dpram.sh

    │  │  │        └ xsim

    │  │  │           │ cmd.tcl

    │  │  │           │ file_info.txt

    │  │  │           │ README.txt

    │  │  │           │ vhdl.prj

    │  │  │           └ vio_dpram.sh

    │  │  ├ final_ex.runs

    │  │  │  ├ .jobs

    │  │  │  │  │ vrs_config_1.xml

    │  │  │  │  │ vrs_config_10.xml

    │  │  │  │  │ vrs_config_100.xml

    │  │  │  │  │ vrs_config_101.xml

    │  │  │  │  │ vrs_config_102.xml

    │  │  │  │  │ vrs_config_103.xml

TAGFIR
  • 2 次
  • 20 分