fpga数据位宽截取_基于FPGA的ZYNQ平台,系统裸机条件,如何实例化vivado的FFT IP核...

ab0c052a84eeb9510c92574db8e9542f.png

zynq系统

本文基于Xilinx的ZYNQ平台,实现ARM系统如何调用底层FFT IP核实现相应算法。ZYNQ平台内部包括两部分,即PL和PS。PL为FPGA逻辑部分,PS为双核ARM9 。FPGA与ARM9之间的通信采用高性能的AXI总线,PS为PL提供系统时钟,复位等基本信号。本文是在ARM9系统外围挂载AXI接口的DMA来控制FFT IP核的数据输入输出。

下面详细介绍具体搭建步骤。

第一步:创建新工程,芯片型号为zynq7020:xc7z020clg484-2,创建好后,点击右侧IP Integrator,创建系统——zynq_7020_fft_system。

18bf8d746764a041353a5b425a4c252e.png

创建zynq7020系统

点击OK,跳转到系统构建区。

e91d635bb411624d785cdbc48cdf49b7.png

系统构建区

第二步:在系统构建区,点击Add IP,搜索zynq processing system,点击后加到区域内

e89b2cfdffafd3fe611cdd0bdff5ed87.png

点击Add IP

zynq系统添加构建后如下图所示:

11aba0ee659e8160cfe3047480136c40.png

zynq 7020

第三步:配置zynq系统,添加系统外设,内存,配置时钟,中断系统。

3e5b82d496e49a625fee710effbde4b2.png

zynq配置界面

配置系统完毕后,创建DDR3端口,时钟和复位输出,及其他IO端口。

039fd589ccbb44c67c6882af1cf5c8a1.png

创建DDR3端口

第四步:点击Add IP,搜索DMA,添加到系统构建区。

a6a12af433653ed4d862a2e26a90d8b1.png

添加DMA

配置DMA的参数。

3654ada7bacc5fe29fa1598871e10e50.png

DMA 模块

第五步:添加concat ip,将DMA的输入输出中断连接concat ip的输入端口,将输出端口连接到zynq的中断端口上。

9e201804018fa6d172b91510d03a5e0d.png

连接中断到PS

点击运行自动连接布线。

880fd58679a9961f3e9aa9dc3efa2332.png

布线连接后如下图所示。

4d66d8433fc7f51f3251fc103856bb23.png

系统连接

第六步:添加两个AXISTREAM FIFO IP核,分别连接到DMA的输入输出端口,同时配置FIFO的存储深度,及数据位宽。

dc030f63776f7db060a8a2138aa12bb1.png

zynq系统搭建完成

第七步:右键点击generate output products,生成我们构建的系统。

a249190c999d9a5ea57902ab83f79531.png

等待几分钟,生成后,系统中添加了一些文件及IP

fb607830b96bf11f4eb9bad826484d62.png

右键点击create HDL Wrapper,添加系统顶层文件。

a22ec6d90999ecbdb3179f3254473386.png

按默认提示点击OK即可

ea1238eb621dc4fc3bc09c1034ec8989.png

顶层文件添加完成后如下图所示。

d020c8947d352cb67253c5e804f6b164.png

致此zynq的ps部分已搭建完毕

第七步:点击IP Catalog 搜索FFT IP,双击FFT IP核。

5fd25f7b96dce7a1e8839f4276ec5342.png

进入FFT IP核配置界面,本文选择的数据类型为float型,运行时钟100Mhz,配置流水线等,点击OK,生成FFT IP。

48c91401cce87c2fd2af430381ca683a.png

FFT IP

创建FFT IP 顶层文件,实例化FFT IP,便于FFT IP的仿真,调用。

52cc2bd904b1da5f06a5119595b1bef7.png

创建FFT IP顶层文件

顶层文件中添加如下代码。

3529c1ed2f74e9eaa25a18459f1159b4.png

第八步:在PS的系统顶层文件zynq_7020_fft_system_wrapper中,实例化FFT IP的顶层文件FFT_Top,如下所示。

369385e2bdb4f399d979f32775e467f9.png

第九步:创建FFT IP核的仿真文件,单独对FFT IP进行模拟仿真测试。

对于浮点数的FFT IP仿真测试,需要提供单精度浮点数格式(32位的二进制数),且提供虚部和实部。blk_mem_gen_real存放实部,长度为1024,blk_mem_gen_imag存放虚部,长度为1024,本文的FFT IP是之前已调试好的IP测试,直接调用即可。

660741a84cf7c4b87e334cdbc13e9b9f.png

仿真时序

d66990e0a1b4f4fb2d6b065819971b7c.png

第十步:测试完成后,生成bit流,不需配置管脚。

792f12ba193f5a1a153d9ec523f4a14f.png

生成bit流后,提供了系统资源利用率。

72a7536e0f025ffe592af31710863dea.png

第十一步:导出hardware,启动SDK软件。

279e68d6fadc22252d30c3cf2a7eb2c8.png

导出硬件

fea154b963335388d8dee38971dc59ae.png

启动SDK

第十二步:创建fft_test工程,按默认配置,点击next。

b43610a4557ec2b289bf1b5e8a407b71.png

创建main.c

3264329467dd2d635190b64c83025a61.png

添加DMA测试例程,同时提供FFT IP所需实部和虚部,且都为单精度浮点数。修改check_data函数,将接收的数据存为文件,导入到matlab中进行数据比对。

682418c390d9f0f8da5f8bc3fd696082.png

main.c

本文经过以上步骤实现了zynq系统下的FFT IP核调用。但,还需在硬件平台下进行验证。希望有zynq平台的同学可以按此步骤验证,也可扩展训练,挂载其他IP核。

欢迎各位同仁相互交流学习,留言探讨。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在基于FPGAZynq平台上,系统裸机条件下,要实例化VivadoFFT IP核,可以按照以下步骤进行操作: 1. 打开Vivado软件,并创建一个新的工程。 2. 在工程中,选择需要添加FFT IP核的部分。可以在Block Design视图中创建一个新的设计,然后添加一个Processing System IP核来连接FPGA和MicroBlaze处理器。 3. 在Block Diagram中,右击Processing System IP核,选择“Customize IP”选项,进入定制IP配置界面。 4. 在定制IP配置界面中,点击“Add IP”按钮,然后选择“FFT”选项,点击“Next”进入FFT IP核的配置界面。 5. 在FFT IP核的配置界面中,可以设置FFT的大小、数据宽度、输入/输出配置等参数。根据具体需求进行配置,并点击“Finish”完成IP核的添加。 6. 返回Block Diagram界面,在Processing System IP核的左侧,添加一个AXI Interconnect IP核,来连接处理器和FFT IP核。 7. 连接Processing System IP核和AXI Interconnect IP核的相应端口,确保数据和控制信号的正确传递。 8. 右击Block Diagram,选择“Validate Design”来验证设计的正确性。 9. 在Block Design中,点击“Generate Bitstream”生成比特流文件。 10. 将生成的比特流文件下载到FPGA设备上。 完成以上步骤后,即可实例化VivadoFFT IP核,并在系统裸机条件下进行使用。可以通过编写C/C++代码,通过访问IP核的接口来配置和使用FFT功能,以实现特定的信号处理任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值