1.根據(jù)reg.csv(寄存器的SPEC)文件生成一個reg.ralf文件,這個文件有特定的腳本生成(我目前不會),當然也可以自己手寫(如果寄存器比較小)
?


?2.".ralf"文件的格式
register UARTDT { //關鍵字 寄存器名
bytes 4; //指定寄存器的大小(單位是 byte)
left_to_right; //指定寄存器中的(下面列舉的)域(field)怎么排布的
field not_defined{ //關鍵字 域名
bits 16; //域的大小(單位是 bit)
access ro; //域的訪問方式
reset 'h0; //域的復位值
}
field rev {
bits 4;
access ro;
reset 'h0;
}
field ...
}
register UARTRSR {
...
}
block uart_reg { //關鍵字 寄存器塊名
bytes 4; //每個寄存器占用空間大小
register UARTDR @'h000; //關鍵字 寄存器名 寄存器的地址
register UARTRSR @'h0004;
...
}
?3.有reg.ralf文件之后,編寫一個生成寄存器模型的Makefile文件文章來源:http://www.zghlxwxcb.cn/news/detail-779345.html
genreg:
ralgen -t uart_reg -uvm reg.ralf -o uart_regmodel
//ralgen 是vcs生成寄存器模型的命令
// -t uart_reg 指定頂層的寄存器塊名
// -uvm reg.ralf 生成uvm使用的寄存器模型, reg.ralf 是生成模型的輸入文件
// -o uart_regmodel 指定輸出的寄存器模型的文件名為 uart_regmodel.sv
4.直接在terminal上 make genreg 便可產生寄存器模型文件,如需要修改文件內容,可以在gvim底部命令行中輸入 :%s/123/abc/g 命令,將文件中的123全部更改為abc文章來源地址http://www.zghlxwxcb.cn/news/detail-779345.html
到了這里,關于使用VCS的ralgen命令產生UVM的寄存器模型的操作步驟的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!