如何在系统Verilog中创建不同大小的接口数组

问题描述 投票:0回答:1

我有一个可配置的模块,其中包含一个端口的接口。我使用generate语句和for循环为每个模块实例创建不同的配置,并将接口端口放入数组中。我的问题是,基于每个模块实例的配置,各个接口是不同的。有没有一种方法可以分别配置阵列中的每个接口?这就是我正确配置界面的方式

test_if    #(.NUM_CUTS(NUM_CUTS_WRITE_CLIENT),.AW(AW_WRITE_CLIENT),.DW(DW_WRITE_CLIENT)) mem_test_if [NUM_OF_MEMS-1:0]();

是否可以使用接口数组执行类似的操作

test_if    #(.NUM_CUTS(2),.AW(AW_WRITE_CLIENT),.DW(DW_WRITE_CLIENT)) mem_test_if [0]();
test_if    #(.NUM_CUTS(4),.AW(AW_WRITE_CLIENT),.DW(DW_WRITE_CLIENT)) mem_test_if [1]();
test_if    #(.NUM_CUTS(6),.AW(AW_WRITE_CLIENT),.DW(DW_WRITE_CLIENT)) mem_test_if [2]();

我不想在generate语句之外单独实例化每个模块实例。

verilog system-verilog hdl
1个回答
2
投票

您应该能够嵌套在生成器中执行此操作

for(genvar MEM=0;MEM<NO_OF_MEMS;MEM++) begin : ID
   test_if    #(.NUM_CUTS((MEM+1)*2),.AW(AW_WRITE_CLIENT),.DW(DW_WRITE_CLIENT)) mem_test_if();
end
© www.soinside.com 2019 - 2024. All rights reserved.