FPGA|CPLD|ASIC论坛
直播中

赵晨光

6年用户 65经验值
擅长:可编程逻辑
私信 关注
[问答]

为什么rom核寻址有时候会出来错的结果啊,求助

总是出来后几个地址的结果。。。如图,图一是ise仿真结果,addr为242时的结果为-1400(ip核有时延),但在matlab里看rom的内容242对应的是-1408(图二),-1400是后面3位的。之后的结果也是这样,大部分出来的结果是延后的,新人求帮助,是不是我操作有不规范的地方。
  1. always @(posedge clk)
  2.   begin
  3.   if(data>1200||data<-1200)
  4.   begin
  5.       c<=3'd1;
  6.   end
  7.   else
  8.       if(data>600||data<-600)
  9.                 begin
  10.                     c<=3'd2;
  11.            end
  12.            else
  13.                     if(data>300||data<-300)
  14.                          begin
  15.                              c<=3'd3;
  16.                          end
  17.                          else
  18.                          begin
  19.                              addr<=data+300;
  20.                                   c<=3'd4;
  21.                          end

  22.   end
  23.   
  24.           arc_ip p2(  //rom
  25.           .clka(clk),
  26.           .rsta(rst_n),
  27.           .addra(addr),
  28.           .douta(ip_out)
  29.           );
  30.           
  31.         always @(*)
  32.         begin
  33.           case (c)
  34.      3'd1: k<=1570;
  35.           3'd2: k<=1553;
  36.           3'd3: k<=1535;
  37.           3'd4: k<=ip_out;
  38.           default: $display("No related phase info");
  39.    endcase
  40.    end
  41.        
  42.    assign result=k;

  • 2.png
  • 1.png

回帖(2)

李舒桀

2018-12-10 17:32:01
关注下
举报

杨天宇

2019-1-26 14:30:26
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

更多回帖

发帖
×
20
完善资料,
赚取积分