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

本文详细解读了存储单元的定义,包括地址长度为14位时的字节和字地址范围。接着阐述了如何将数据写入AHBRAM,并介绍了从AHBRAM中读取数据的过程。
摘要由CSDN通过智能技术生成

存储单元定义

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值