systemverilog,信号连接

时间:2015-02-03 11:13:05

标签: concatenation vhdl record system-verilog

我在设计中有一条VHDL记录,例如

   TYPE  signal_record IS RECORD
          signal_0  : std_ulogic;
          signal_1  : std_ulogic;
 ...
          signal_31  : std_ulogic;
   END RECORD;

在我的SV测试平台上,我想在systemverilog中的每个signal_%d上应用一个断言。

generate
    for (genvar i = 0; i < 31; i++)
        begin : 
            assert property(pp_one_property(clk, {`PATH_TO_SIGNAL.signal_,i}));
        end
endgenerate

然而,这不会起作用,因为systemverilog会将信号作为断言属性的第二个参数。

如何在这些信号上动态应用断言?

2 个答案:

答案 0 :(得分:0)

不幸的是,你必须手工编写所有这些内容。连接运算符不会创建新标识符。如果您将记录作为数组而不是32个单独的字段,您可以这样做,因为您可以根据genvar索引条目。

答案 1 :(得分:0)

SystemVerilog允许您通过使用两个连续的重音(即“`”)从文本宏构造标识符,而不引入空格。这可能是你得到你想要的最接近的。