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

电子说

1.2w人已加入

描述

将自定义 RTL 添加到 AXI4-Stream IP

从Flow Navigator中选择Add Sources添加我们要设计的 FIR Verilog 文件。

滤波器

在使用 Add Files 选项指向 FIR Verilog 文件后,取消选中Scan and add RTL include files into project复选框。由于这不是一个普通的 Vivado 项目,并且 Verilog 代码被打包到一个 IP 块中,因此选中该选项后将引发错误。

滤波器

滤波器

添加后,源层次结构更新并且 FIR Verilog 文件独立于 AXI Verilog 源文件。

滤波器

根据生成 IP 编辑器 Vivado 项目时所做的选择,会为此 AXI4-Stream 外设生成三个 RTL 源文件:

  • 从接口功能 RTL。
  • 主接口功能 RTL。
  • 具有物理接口声明和主从接口实例化的顶层文件。

在设计之前,需要将几个默认未启用的可选 AXI4-Stream 接口信号添加到主 AXI 端口和从 AXI 端口。大多数 DSP IP 模块,例如 DDS 利用了 AXI4-Stream 额外的keep 和 tlast信号。

添加这些可选信号很简单,但最初并不清楚。导航到Package IP窗口中的Customization Parameters选项卡。

滤波器

主接口和从接口都需要添加它们,因此右键单击每个接口并选择Edit Interface 。

滤波器

在“Parameters”选项卡中启用HAS_TKEEP ,方法是单击每个选项,然后单击单个箭头将其从左列移动到右列。

滤波器

然后切换到Port Mapping选项卡,将 tkeep 和 tlast 映射到 AXI IP 块的物理接口。在Interface's Logical Ports列和IP's Physical Ports列中分别匹配 tkeep 和 tlast 信号。然后在下面的Mapped Ports Summary列中验证它们的映射。

滤波器

由于默认情况下不启用 tkeep,因此还必须手动将其端口声明添加到所有三个 AXI 接口 RTL 源文件的用户定义端口声明部分。它还需要添加到顶级 AXI 包装器中的 AXI 主接口和从接口实例中。

滤波器

滤波器

滤波器

滤波器

滤波器

在注释Add user logic here标记的部分中实例化 FIR Verilog 模块。

滤波器

现在,虽然 AXI 接口的基本功能分别在每个 RTL 源文件中自动生成,但如何从输入数据流中提取数据并传递到自己的自定义逻辑中由自己来定义。以及如何将自定义逻辑的数据输出馈送到主 AXI 接口进行输出。因此,会在三个自动生成的 RTL 源文件中注意到相同的 Add user 逻辑。

滤波器

滤波器

另一点需要注意的是,AXI4-Stream 接口的功能需要进行一些修改,以便将 tkeep 和 tlast 信号功能添加到主 AXI 接口和从 AXI 接口。

滤波器

这个项目的最后一个独特的要求是,因为这个逻辑的核心是一个 FIR 滤波器,所以主从 AXI 接口和 FIR 都需要由相同的时钟作为 FIR 采样时钟。所以只是将从 AXI 接口时钟传递给 FIR 和主 AXI 接口。

滤波器

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

全部0条评论

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

×
20
完善资料,
赚取积分