在做fpga双口ram的时候 这是我做的仿真 为什么读地址、和写地址计数只能读到7

2019-07-15 23:19发布

我写的testbench 给 rdaddress的值,  但是仿真出来的 rdaddress的值是 0~7,0~5 这样14位 而不是 0~14看仿真图
//  #10 rdaddress = 3'd0;
  #15 rdaddress = 3'd0;
  #20 rdaddress = 3'd1;
  #20 rdaddress = 3'd2;
  #20 rdaddress = 3'd3;
  #20 rdaddress = 3'd4;
  #20 rdaddress = 3'd5;
  #20 rdaddress = 3'd6;
  #20 rdaddress = 3'd7;
  #20 rdaddress = 3'd8;
  #20 rdaddress = 3'd9;
  #20 rdaddress = 3'd10;
  #20 rdaddress = 3'd11;
  #20 rdaddress = 3'd12;
  #20 rdaddress = 3'd13;
6{8F(YO))Y(Y20O7]@QUM6M.png


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
jiaofengmin
1楼-- · 2019-07-16 03:05
你把它改成每一个clk_rd的上升沿,rdaddress加一,然后到你需要的时间$stop。
西部大道
2楼-- · 2019-07-16 06:24
你的rdaddress很可能只定义了3位,明白了吗?2的3次幂等于8,也就说你只能访问0到7。下次别这么马虎了
a596422868
3楼-- · 2019-07-16 10:23
 精彩回答 2  元偷偷看……
rynhrn
4楼-- · 2019-07-16 10:30
a596422868 发表于 2015-11-10 10:18
对啊  我昨天发帖后  也发现这个问题,然后改完,,问题就解决了 。   但是有点不明白 我在testbench 明明定义的是3’d13  那不是应该是3位的10进制吗?? 为什么会是定义3位的8进制?

那3位的十进制最多也是7啊,3'b111。。。
a596422868
5楼-- · 2019-07-16 11:37
rynhrn 发表于 2015-11-13 00:57
那3位的十进制最多也是7啊,3'b111。。。

3’d111;不是  十进制111吗  不是7吧???
西部大道
6楼-- · 2019-07-16 12:57
a596422868 发表于 2015-11-13 11:19
3’d111;不是  十进制111吗  不是7吧???

3位是指硬件上的3位基本逻辑单元,对于逻辑单元来说,只有0与1,所以永远都是2进制。

一周热门 更多>