(UVM验证学习6) ahbram 源码阅读

存储单元定义

parameter ADDRESSWIDTH = 14;
parameter AW = (ADDRESSWIDTH - 1);
parameter AWT = ((1<<(AW-1))-1);

reg     [7:0] BRAM0 [0:AWT];
reg     [7:0] BRAM1 [0:AWT];
reg     [7:0] BRAM2 [0:AWT];
reg     [7:0] BRAM3 [0:AWT];

这里假设地址长度为14,然后用地址的低二位的四种情况00, 01, 10, 11指示一个字的4个字节, 则可用的字地址范围为[0 : 2^12-1];然后分别用4个reg类型的存储块存储一个字的四个字节.
如果是使用字节地址,则字节地址的范围响应的是[0: 2^14-1]

写入到ahb ram

  // HTRAN[1] = 1对应NONSEQ和SEQ
  assign trn_valid = HSELBRAM & HREADY & HTRANS[1];

  assign wr_en_actv   = (trn_valid & HWRITE) | (|reg_wr_en);

  // 这里分析地址和要传输的数据长度,获知需要对字的哪几个字节做写入 
  assign nxt_wr_en[0] = (((HADDR[1:0]==2'b00) && (HSIZE[1:0]==2'b00)) ||
                         ((HADDR[1]==1'b0)    && (HSIZE[1:0]==2'b01)) ||
                         ((HSIZE[1:0]==2'b10)
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值