当前位置:   article > 正文

使用VCS的ralgen命令产生UVM的寄存器模型的操作步骤

ralgen命令

1.根据reg.csv(寄存器的SPEC)文件生成一个reg.ralf文件,这个文件有特定的脚本生成(我目前不会),当然也可以自己手写(如果寄存器比较小)

 

寄存器的SPEC
reg.ralf文件

 2.".ralf"文件的格式

  1. register UARTDT { //关键字 寄存器名
  2. bytes 4; //指定寄存器的大小(单位是 byte)
  3. left_to_right; //指定寄存器中的(下面列举的)域(field)怎么排布的
  4. field not_defined{ //关键字 域名
  5. bits 16; //域的大小(单位是 bit)
  6. access ro; //域的访问方式
  7. reset 'h0; //域的复位值
  8. }
  9. field rev {
  10. bits 4;
  11. access ro;
  12. reset 'h0;
  13. }
  14. field ...
  15. }
  16. register UARTRSR {
  17. ...
  18. }
  19. block uart_reg { //关键字 寄存器块名
  20. bytes 4; //每个寄存器占用空间大小
  21. register UARTDR @'h000; //关键字 寄存器名 寄存器的地址
  22. register UARTRSR @'h0004;
  23. ...
  24. }

 3.有reg.ralf文件之后,编写一个生成寄存器模型的Makefile文件

  1. genreg:
  2. ralgen -t uart_reg -uvm reg.ralf -o uart_regmodel
  3. //ralgen 是vcs生成寄存器模型的命令
  4. // -t uart_reg 指定顶层的寄存器块名
  5. // -uvm reg.ralf 生成uvm使用的寄存器模型, reg.ralf 是生成模型的输入文件
  6. // -o uart_regmodel 指定输出的寄存器模型的文件名为 uart_regmodel.sv

4.直接在terminal上 make genreg 便可产生寄存器模型文件,如需要修改文件内容,可以在gvim底部命令行中输入 :%s/123/abc/g 命令,将文件中的123全部更改为abc

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号