2014-04-16 94 views
0
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."我還沒有找到這個語句的任何標準。 在此先感謝您的幫助。是否允許讀取系統verilog中的時鐘模塊輸出?

回答

2

1800-2012標準說,在14.3時鐘塊聲明

它應是非法讀取任何clockvar其 clocking_direction輸出的值。

原因是輸出沒有定義的採樣語義。 inout的確如此。

+1

爲什麼你的鏈接指向你的博客文章而不是IEEE的LRM本身? http://standards.ieee.org/getieee/1800/download/1800-2012.pdf – Greg

+0

@Greg,這是一個很簡單的鏈接,我很容易記住,另外我想知道這是一個免費的標準,不像大多數其他IEEE標準。 –

相關問題