本文共 516 字,大约阅读时间需要 1 分钟。
1.除了寄存器,还有大量的存储器。有些存储器被分配了地址空间,有些没有。
2.两级检查可以快速定位问题所在,(这个图好像和这节没什么关系):
3.在一个16位的系统中加入一块1024x16(1024个深,16个宽)的存储在如下:
1)由uvm_mem 派生my_memory,new 中有3个参数。
第一个名字。
第二个深度。
第三个宽度。
2)例化,configure。
第一个所在reg_block 的指针。
第二个此块存储器的hdl 路径。
3)加入default_map,可以进行前门操作。
4)如果没有对存储器分配地址空间,可以不加入default_map。只能后门访问。
4.要进行读写通过read,write,peek,poke。这4个在调用的时候需要额外一个offset 参数,说明读取哪个地址:
5在一个16位系统中加入512x32 的存储器:
1)一个单元占据两个物理地址,共1024个地址。
2)offset是物理地址还是某一个存储单元偏移呢?
答:存储单元地址。offset 最大值是511,不是1023(UVM会自动算)。一次读操作,一个offset 对应两个物理地址,寄存器模型在总线上进行两次读写操作。