首页 新闻 会员 周边

仿真结果输出位与输入位不对应是怎么回事呢?结果出现了延迟,中间还有结果为0的情况是怎么回事?

0
悬赏园豆:50 [已关闭问题] 关闭于 2019-04-12 16:28

module test( );
integer fp_r,fp_h,fp_w,fp_z;
integer count;
reg clk,rst;
reg [31:0] reg1,reg2;
reg [31:0] x,y;
wire [32:0] theta;

initial
begin
clk <= 0;
reg1 <= 0;
reg2 <= 0;
count <= 0;
fp_r=$fopen("data.txt","r");//以读的方式打开文件
fp_w=$fopen("data_out.txt","w");//以写的方式打开文件
fp_h=$fopen("data_in.txt","r");//以读的方式打开文件
fp_z=$fopen("data_in_out.txt","w");//以写的方式打开文件
forever #2000 clk = ~clk;
end
always@(posedge clk)
begin

  if(count < 500)
  begin
  
       $fscanf(fp_r,"%d" ,reg1) ;//每次读一行 
       $fwrite(fp_w,"%d\n",reg1) ;//写入文件
       x = reg1;
       $fscanf(fp_h,"%d" ,reg2) ;//每次读一行
       $fwrite(fp_z,"%d\n",reg2) ;//写入文件
       y = reg2;
       count = count + 1;     
  end
  else
  begin
       $fclose(fp_r);//关闭已打开的文件
       $fclose(fp_w);
       $fclose(fp_h);//关闭已打开的文件
       $fclose(fp_z);
  end  

end
Cordic_Arctan uut (
.clk(clk),
.rst_n(rst),
.x(x),
.y(y),
.theta(theta)
);
initial
begin
clk = 0;
rst = 0;
#100; rst = 1'b1;
end

endmodule
直接在testbench里面输入几组激励x,y,出来的结果theta是对的,但是把激励x,y存在txt文件里读出来带入公式,结果位跟输入位就对不上了

找不到没有用过的名字哒的主页 找不到没有用过的名字哒 | 初学一级 | 园豆:106
提问于:2019-04-09 20:49
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册