美文网首页uvm
001_uvm_ralgen_ug(Generating a R

001_uvm_ralgen_ug(Generating a R

作者: 500强低级工程师 | 来源:发表于2017-02-25 22:26 被阅读0次

    生成RAL model命令:
    ralgen [options] -t topname -I dir -uvm {filename.ralf}

    • -t topname
      RALF文件中顶层模块或者系统的名称,生成的RAL model文件名称为ral_topname.sv
    • -uvm
      声明是UVM方法学
    • -I dir(注意是i的大写,不是L的小写)
      ralgen搜索源文件的可选目录列表
    • filename.ralf
      .ralf后缀不是必须的。对于多个文件的情况,指定顶层的RALF文件,在这个文件通过source来包含其他文件。
      $VCS_HOME/doc/examples/vmm/std_lib/vmm_subenv/oc_ethernet/dual_eth.ralf

    options

    • -b
      为声明了完整hdl_path的reg和mem生成后门访问代码
    • -c a
    • -c b
    • -c f
      -c表示coverage,上面三个依次表示“Address Map” “Register Bits” “Field Values”功能覆盖率模型
    • -e
      为每个抽象类生成空约束
    • -f <filename>
      在一个文件里声明ralgen选项

    生成Ral model到多个文件

    命令行选项 -F
    可以生成多个独立的寄存器模型文件,一个子模块(ralf文件中的block)一个文件,这些独立的寄存器模型文件可以在子模块的验证环境中重用。
    对于最顶层模块(ralf文件中最顶层的block或者system),生成一个顶层用的ral_blkname.sv文件,用`include命令将生成的子模块文件包含进来。
    格式如下:
    ralgen -uvm -t sys sys.ralf -F
    其中顶层system sys下有几类block blk1,blk2,blk3...,会生成几个ral_block文件ral_blk1.sv,ral_blk2.sv,ral_blk3.sv...,同时生成ral_sys.sv文件,在ral_sys.sv文件中`indclude 这几个ral_block文件。

    注意:即使是ralf文件中的system对应生成到ral文件中的顶层类也是继承自uvm_reg_block,这一点跟vmm不一样。

    命令行选项 -P
    与-F选项不同的是,生成的子模块文件名为ral_blk1_pkg.sv,ral_blk2_pkg.sv,ral_blk3_pkg.sv...顶层名为ral_sys_pkg.sv。文件是package形式。

    命令行选项 -T
    这个选项一定要和-F或者-P一起使用,只生成-t指定的文件。比如ralgen -uvm -t sys sys.ralf -F -T命令只会生成ral_sys.sv文件,尽管sys下有子模块,但不生成ral_blk1.sv,ral_blk2.sv...等文件。

    命令行选项 +prunable
    这个选项一定要和-F或者-P一起使用,对于子模块的ral_blk1.sv,ral_blk2.sv...而言,没有区别,区别在于ral_sys.sv文件中加入了RAL_PRUNE_blk1,RAL_PRUNE_blk2的宏,把关于ral_blk1,ral_blk2类相关的代码隔开了。
    这么做的目的是:对于大型SoCs,顶层的一些测试可能并不需要包含所有子模块的ral_model,用宏隔开,可以灵活的修改,节省编译时间和仿真时间。

    后门类

    ralgen提供两种方式生成后门。前提是在ralf文件的定义里指定了后门访问的RTL路径

    • Cross-module references based backdoors(XMR's)
      ralgen的-b选项生成一组write()/read()接口访问的类(扩展自uvm_reg_backdoor,bkdr后缀)

    • DPI-C based
      ralgen默认的后门选项。在ral_block的类中的build()里register调用add_hdl_path()

    如果有bkdr类(ralgen -b),后门访问通过XMR方式,如果没有通过DPI-C方式,XMR优先级更高,DPI-C是默认方式。

    命令选项-gen_vif_bkdr
    -b选项生成的后门不能封装到package,因为HDL XMRs在生成的bkdr类里面,如果要想封装成package,加上-gen_vif_bkdr选项,这样会额外生成一个interface文件,HDL路径在这个interface文件里,而bkdr类中会声明interface,然后bkdr类的read,write是通过调用interface里生成的read write任务来访问的。
    这个选项必须在有-b选项才可以被使用。
    如果-b 和-P同时被使用,则必须也加上这个选项。

    相关文章

      网友评论

        本文标题:001_uvm_ralgen_ug(Generating a R

        本文链接:https://www.haomeiwen.com/subject/zmxnwttx.html