Vivado中IP是如何控制端口的可见与不可见

Vivado中IP是如何控制端口的可见与不可见,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

测试平台Vivado 2017.2

一、建立一个简单的AXI IP

最简单的封装IP莫过于使用Vivado的Tools菜单下(已有工程打开),Create And Package New IP子项建立:

Vivado中IP是如何控制端口的可见与不可见

Vivado中IP是如何控制端口的可见与不可见

这是配置AXI4 IP的名字、版本等信息,版本、显示名字和描述在后面可以修改,根据需要填写。

这个是AXI4 IP的配置界面,接口类型提供了Lite、Full和Stream三种可选,此处我添加4个Slave的Lite接口。

Vivado中IP是如何控制端口的可见与不可见

最后点击Finish就完成IP创建,由于我需要对代码进行修改,我选择Edit IP,除此之外还有Verify Peripheral IP using AXI VIP和Verify peripheral IP using JTAG interface是两种不同的验证手段, VIP其实就是Altera的Virtual JTAG,而后者是Vivado内带了一个叫Debug Bridge的IP,它可以实现AXI操作JTAG的功能,实现FPGA控制另一块FPGA通过JTAG口,还有一个叫JTAG to AXI master的IP正好反过来,是JTAG控制AXI。

二、如何控制IP端口可配置显示

在IP设计时,最为头疼的是如果我的IP共有40个对外的Port,而我并不需要40个对外的Port总是需要配置连线,我可能只需要20Port。通过配置Parameter可以使其他的20个Port不可见,Vivado提供了这种功能,它就是Enablement Expression功能,它有三个作用:

1.它可以启用或禁用一些端口或BUS

2.它可以启用或禁用自定义的parameter;

3.它可以计算自定义的parameter的值。

本文仅对端口/BUS的启用与禁用进行说明:

打开IP的编辑界面,切换到Ports and Interface选项卡:

Vivado中IP是如何控制端口的可见与不可见

需要将Interface presence项从Mandatory选中切换为Optional选中,在Interface presence下面编辑框填写$C_S00_AXI_ADDR_WIDTH != 0,这是tcl语法,变量引用需要在变量名前添加$符号,点击OK:

Vivado中IP是如何控制端口的可见与不可见

右键C S00 AXI ADDR WIDTH选择Edit Parameter;

Vivado中IP是如何控制端口的可见与不可见

目光转到Preview界面,可以发现C S00 AXI ADDR WIDTH对应的文本编辑框不再处于灰色不可以编辑状态,修改值为0,然后点击其他的文本框使之设置值生效。

Vivado中IP是如何控制端口的可见与不可见

发现S00_AXI又神奇的出现了,这就是总线的禁用,端口的禁用是类似的。

看完上述内容,你们掌握Vivado中IP是如何控制端口的可见与不可见的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/230580.html

(0)
上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐

发表回复

登录后才能评论