synopsys设计编译器实例名称缺少生成前缀

时间:2013-09-07 22:28:39

标签: verilog system-verilog

当我合成下面的代码块时,生成块的名称mypfx不会显示在被推断的寄存器的名称中。我希望看到注册名称看起来像some_hierarchy_prefix/mypfx_0_test_latch_i,但我看到some_hierarchy_prefix/test_latch_0_。为什么这样,我如何重新编码以使mypfx显示在寄存器名称中?

logic [31:0] test_latch [31:0];
logic [31:0] test_data;
logic clock;

generate
  for(i = 0; i < 32; i++) begin : mypfx
    always_latch
     begin
        if (clock) test_latch[i] <= test_data;
      end     
  end : mypfx
endgenerate

1 个答案:

答案 0 :(得分:0)

由于两个原因,mypfx不需要成为实例名称的一部分:

  1. 它可以在不使用mypfx前缀
  2. 的情况下唯一标识32个test_latch实例
  3. 在test_latch上没有定义特定的命名规则以特定的方式重命名
  4. 您可以执行以下操作,让mypfx成为实例名称的一部分

    logic [31:0] test_latch;
    logic [31:0] test_data;
    logic clock;
    generate
      for(i = 0; i < 32; i++) begin : mypfx
        always_latch
         begin
            if (clock) test_latch <= test_data;
         end     
      end : mypfx
    endgenerate