是否允许读取系统verilog中的时钟块输出?

时间:2014-04-16 13:12:54

标签: system-verilog

module input2 (output [3:0] out1, out2, input [3:0] in1, input clk);

clocking c_clk @(posedge clk);
output #2ns out1, temp = in1[1:0];
input in1;
endclocking

clocking d_clk @(posedge clk);
output out2;
input #2ns svar = in1[3:2];
endclocking

assign out1 = c_clk.temp ^ 4'b1101;
assign out2 = d_clk.svar + in1;

endmodule

我的工具发出错误"Reading of a clocking block output (c_clk.temp ) is not allowed."我没有找到此声明的任何标准。 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

1800-2012标准在14.3时钟块声明中说明

  

读取任何clockvar的值是非法的   输出clocking_direction。

原因是输出没有定义的采样语义。一个inout确实。