在Vivado中构建自定义AXI4-Stream FIR滤波器IP 3

模拟技术

2409人已加入

描述

封装 AXI IP 块

返回到 Package IP 窗口,让我们浏览每个选项卡并验证,然后最终将其打包。

第一个选项卡中是输出 AXI 外设 IP 包的基本显示信息。

滤波器

第二个标签很重要。默认情况下,AXI 外设 IP 仅支持启动 IP 包编辑器的主 Vivado 所针对的 FPGA 芯片系列。大多数时候,可能希望能够将 AXI 外设 IP 块与其他 Xilinx FPGA 芯片系列一起使用,就需要添加我们需要的目标FPGA芯片。

滤波器

对于其余选项卡,默认需求即可。

滤波器

滤波器

滤波器

滤波器

滤波器

在最后一个选项卡中,单击窗口底部的Package IP按钮。将出现一个提示,询问是否要关闭 IP 编辑器 Vivado 项目。

此时,FIR AXI IP 块被打包并放置在 Package IP 窗口的第一个选项卡指定的目录中的存储库中。

将自定义 AXI4-Stream FIR 添加到项目

现在自定义 FIR AXI IP 模块已经完成并封装,我们可以返回原始 Vivado 项目,将其添加到模块设计中。

我们的验证项目如下:

滤波器

其中DDS IP设置如下:

滤波器

滤波器

滤波器

滤波器

创建仿真平台

首先创建仿真文件,并在sim文件夹下的 Sources 选项卡中,右键单击它并选择Set as Top 。

滤波器

在这种情况下,只需在块设计中实例化块设计,并为其提供差分系统时钟和主 FPGA 复位。一旦接收到时钟和复位信号,相位增量状态机就会自行运行。

``timescale 1ns / 1ps`

module sp701_bd_tb;

reg clk_p, clk_n, reset;

always begin

clk_p = 1; clk_n = 0;

#5;

clk_p = 0; clk_n = 1;

#5;

end

always begin

reset = 1;

#40;

reset = 0;

#1000000000;

end

sp701_bd sp701_bd_i (

.reset(reset),

.sys_diff_clock_clk_n(clk_p),

.sys_diff_clock_clk_p(clk_n)

);

endmodule

这里注意一下主 AXI 接口输出信号和 tlast、tvalid 和 tdata 需要进行初始化。否则仿真将会报错。

滤波器

单击Flow Navigator窗口中的Run Simulation并选择Run Behavioral Simulation 。

滤波器

注意仿真结果显示格式。

参考

https://www.hackster.io/

总结

上面的一些创建细节没有全部展现,因为本身对于IP的创建不是我们的核心,我们只想说明使用目前这种BD设计可以达达简化设计,尤其是目前Verilog的一些缺点。

最后说一下调试中的注意点,就是使用ILA查看AXI-Stream输出时候,会造成FIR的时序与采样混淆导致 FIR 不再工作,可能会查看不到任何波形,使用AXIS的专用调试IP即可,后续我们在说明这方面的知识。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分