前言
本文以組織一個系統(或子產品)寄存器為例,進行寄存器與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列需要配置使用,