首页 > 解决方案 > 如何从 for 循环中的 genvar 值生成字符串?

问题描述

Xilinx 需要为IODELAY和定义不同的组IDELAY_CTRL。我想使用generateand参数化我的实例for loop

我需要在 Verilog 属性中添加一个不同的字符串(* IODELAY_GROUP = "GROUP_HERE" *)

我怎样才能做到这一点?我尝试了很多使用宏,功能没有任何成功。

`define makegroup(x) `"GROUP_x`"
genvar h;
for (h=0;h<=3;h=h+1) begin:myfor
  (* IODELAY_GROUP = {"GROUP_", h} *)
  (* IODELAY_GROUP = `makegroup(h) *)
  (* IODELAY_GROUP = {"GROUP_", $sformatf("%0h",h)} *)
end

编辑:

此解决方案{"IODELAY_GROUP_", h + 8'h30}不起作用,因为它创建了逻辑总线而不是字符串。

我想要编译器而不是合成器可以解释的东西。

解决方案是:(* IODELAY_GROUP = 144'h3X3X3X *)而不是(* IODELAY_GROUP = "GROUP_X" *)

活的

标签: verilogsystem-verilog

解决方案


推荐阅读