前言
本文以组织一个系统(或模块)寄存器为例,进行寄存器与ral生成相关的全流程展示。内容包括如下几个部分:
- 寄存器文档组织
- 描述文件与辅助RTL代码结构
- ralf/ral/rtl文件代码结构
- UVM RAL访问环境组织
寄存器文档组织
在windows路径下组织寄存器文档,格式为excel表格。文档命名需要与系统名保持一致,如本次demo的模块名为REG_PRJ,因此表格命名为REG_PRJ.xlsx。表格内分为两个部分:readme页和一众block_name页。readme页是对系统内不同模块寄存器或不同用途寄存器的区间和地址划分,demo中划分了三块独立的寄存器:sys_cfg、sys_status和sys_irq,分别用来承载不同的功能:
BLOCK | OFFSET | RANGE |
---|---|---|
sys_cfg | 0x0 | 512 |
sys_status | 0x200 | 1024 |
sys_irq | 0x600 | 512 |
readme页签内分三列,BLOCK列为寄存器模块名,建议与系统内的模块名一致;OFFSET列为某一个寄存器模块在整个寄存器系统内的起始地址,采用十六进制表示;RANGE列为寄存器模块的占用空间,OFFSET列和RANGE列需要配置使用,