system-verilog - 实例数组,如何知道数组中特定实例的索引是什么
问题描述
我正在使用系统verilog进行综合。我有一组接口实例。在接口定义中,我想要一个参数,它可以告诉这个实例在数组中的索引是什么。我认为我们不能将不同的参数值传递给数组中的每个不同实例。有没有办法做到这一点?
解决方案
对于具有实例数组的可合成代码,没有自动的方法来执行此操作。defparam
如果您的综合工具支持,您可以手动执行此操作。
module dut#(int I=0);
initial $display("%m",,I);
endmodule
module top;
dut u[1:2] ();
defparam u[1].I=1;
defparam u[2].I=2;
endmodule
更好的方法是使用 generate-for 循环。
module dut#(int I);
initial $display("%m",,I);
endmodule
module top;
for(genvar i=1;i<=2;i++) begin : A
dut #(.I(i)) u();
end : A
endmodule : top
推荐阅读
- google-chrome-extension - 在 chrome 扩展清单 v3 中从后台脚本播放音频
- amazon-web-services - AWS API Gateway 主体映射模板到 Graphql
- sql - Oracle SQL 计算到最接近的 1 号 除了确定的天数
- pandas - 如何直接替换 csv 文件或数据框中的行和列数据?
- aws-lambda - 使用 graphql 和 AWS Lambda 保存数据
- excel - Excel 功能区宏未启用
- opencv - 在标记姿势估计之后,如何将投影机器人与机器人一起使用?
- python - 在 Pandas 中导出计算以生成 Excel 表
- python - 在android中重新启动后未启动Kivy服务
- python - Spyder、spyder-kernels 和 python 版本的兼容性?