|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
小弟在使用verilog task中出现了一个问题。即在调用存在端口的task时,相应信号对应的波形不一致。即capture_0_client_cmd_fifo_wr_cmd信号和task中的wr_address_into_fifo信号;还有capture_0_client_cmd_fifo_wr_cmd_en信号和task中的wr_address_into_fifo_en信号不一致。波形如下图所示。
代码如下所示:
module task_test;
reg wclk; //74.25M
//wclk
initial
begin
wclk = 1'b0;
forever
begin
#6734;
wclk = ~wclk;
end
end
integer addr0;
integer j0;
reg [29:0] capture_0_client_cmd_fifo_wr_cmd ;
reg capture_0_client_cmd_fifo_wr_cmd_en ;
initial
begin
addr0 = 5242880;
end
task write_BL0; //only write 256 bit data
output [29:0] wr_address_into_fifo;
output wr_address_into_fifo_en;
input [26:0] wr_addr;
begin
#100;
wr_address_into_fifo_en = 1'b1;
wr_address_into_fifo = {3'b0,wr_addr};
@(posedge wclk);
#100;
wr_address_into_fifo_en = 1'b0;
end
endtask
initial
begin
for(j0=0;j0<50;j0=j0+1)
@(posedge wclk);
write_BL0(capture_0_client_cmd_fifo_wr_cmd,capture_0_client_cmd_fifo_wr_cmd_en,addr0[26:0]);
end
integer t;
initial
begin
for(t=0;t<1000;t=t+1)
@(posedge wclk);
$stop;
end
endmodule |
-
波形图
|