verilog - 如何从 for 循环中的 genvar 值生成字符串?
问题描述
Xilinx 需要为IODELAY
和定义不同的组IDELAY_CTRL
。我想使用generate
and参数化我的实例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" *)
解决方案
推荐阅读
- python-3.x - 无法通过 pyautogui 连续使用热键
- fastapi - FastAPI 的 ASGI 应用程序中的异常
- javascript - 从列表中删除图像
- javascript - 为什么 JavaScript 日期时间在 Carbon 日期时间转换中不同?
- java - Androidstudio 语音识别错误(ERROR_NO_MATCH & ERROR_AUDIO)
- sql - 在 athena 中卸载到 S3 时设置文件中的记录数
- reactjs - SCRIPT1053:必须在 IE 11、d3.js 中初始化常量
- flutter - 如何使用提供的建议生成在不正确的单词下划线的 Flutter 文本字段?
- linux - 为什么 RssAnon 在 /proc/ 之间高度显示不同的数字
/status 和 cgroup.memory.stat - c# - 如何在 LINQ 和 C# 中使用 LEFT JOIN、GROUP BY 和 SUM