虽然研究似乎不可能: Passing parameter to xci core
我正在设计一个使用Xilinx FIFO实例的自定义内核。但是,顶层模块具有在IP Packager中公开的参数,应该修改包含的FIFO核心。
module top();
parameter C_FIFO_DEPTH = 256
xilinx_fifo_core #(
.FIFO_DEPTH(C_FIFO_DEPTH)
) my_fifo_instance (...);
这样,当有人实例化我的模块时,通过覆盖参数C_FIFO_DEPTH,它们也会改变嵌入式FIFO的深度。
虽然这适用于用户编写的模块,但它不适用于IP内核(xci)的实例,这些实例似乎只能通过"定制IP" GUI。
我禁用了上下文生成,但仍然没有骰子。
我目前正在使用打包核心中的tcl脚本制作一个(非常混乱)解决方案,但是迫切需要一个优雅的解决方案。
答案 0 :(得分:1)
我无法想到任何优雅的解决方案,但这里有三个更混乱的解决方案:
(1)只需使用您需要的最大FIFO。 (显然可能是对区域的浪费。)
(2)创建一系列不同大小的FIFO,并使用generate case
选择正确的FIFO。 (如果有用尺寸范围合理限制,则只有任何好处。)
(3)不使用IP块 - 设计自己的FIFO。 (你可能想过这个。)
答案 1 :(得分:0)
您可以使用XPM_FIFO_xxx
内核来做到这一点。在UG953库指南中查找文档和示例。您也可以使用XPM_MEMORY_xxx
对RAM进行操作。