本帖最后由 sahh 于 2013-1-1 18:52 编辑
在写test bench,需要把寄存器的数据保存到电脑,自己调试了一下,modelsim 报错,请大侠们指点一下。
cnt 被 start 信号激发计数,在start信号有效期间,要把 cnt 的值全部保存到文件file.txt里面去。因为对$fopen, $fdisplay 不熟悉,程序跑不动,modelsim提示错误如下:
# ** Error: (vsim-3043) test.v(40): Unresolved reference to 'file'.
这里面指的是在这一句出错了:
$fdisplay(file.txt, "%h ", cnt);
程序如下:
module test (
input CLKP,
input RSTN,
);
reg start;
reg [3:0] cnt;
wire [3:0] max_value;
integer file_a;
assign max_value = 4'hf;
always @ (posedge CLKP or negedge RSTN) begin
if (~RSTN) begin
cnt <= 4'h0;
end else if (start) begin
cnt <= cnt + 4'h1;
end else begin
cnt <= 4'h0;
end
end
always @ (posedge CLKP or negedge RSTN) begin
if (~RSTN) begin
start <= 1'b1;
end else if (cnt == max_value) begin
start <= 1'b0;
end
end
always @ (posedge CLKP or negedge RSTN) begin
if (~RSTN) begin
file_a = $fopen("file.txt", "a");
end else if (start) begin
$fdisplay(file.txt, "%h ", cnt); // <-- # ** Error: (vsim-3043) test.v(40): Unresolved reference to 'file'.
end else begin
$fclose(file.txt);
end
end
endmodule
望能有大侠指点。
|