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

这篇具有很好参考价值的文章主要介绍了使用VCS的ralgen命令产生UVM的寄存器模型的操作步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

 

ralgen命令,硬件工程
寄存器的SPEC
ralgen命令,硬件工程
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文件

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文章来源地址https://www.toymoban.com/news/detail-779345.html

到了这里,关于使用VCS的ralgen命令产生UVM的寄存器模型的操作步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NUS CS1101S:SICP JavaScript 描述:五、使用寄存器机进行计算

    原文:5 Computing with Register Machines 译者:飞龙 协议:CC BY-NC-SA 4.0 我的目标是表明天堂机器不是一种神圣的生命体,而是一种钟表(相信钟表有灵魂属性的人将制造者的荣耀归功于作品),因为几乎所有多种运动都是由一种最简单和物质力量引起的,就像钟表的所有运动都是由

    2024年01月20日
    浏览(102)
  • 【汇编中的寄存器分类与不同寄存器的用途】

    寄存器分类 在计算机体系结构中,8086CPU,寄存器可以分为以下几类: 1. 通用寄存器: 通用寄存器是用于存储数据和执行算术运算的寄存器。在 x86 架构中,这些通用寄存器通常包括 AX、BX、CX、DX、SI、DI、BP 和 SP。其中,AX、BX、CX 和 DX 寄存器可以分别作为累加器(accumulat

    2024年02月09日
    浏览(50)
  • stm32的BRR寄存器和BSRR寄存器

    1、BRR---   bit   RESET(置0)  register   //高16位无,低16位置1为0,不能写1 2 、BSRR---   bit   SET(设置1或0)       register   //低16位设置1为0 BSRR:用于低16位的作用是让指定的IO口置1;而高16位的作用是让指定的IO口置0。  

    2024年02月11日
    浏览(44)
  • 寄存器内存读写指令(二) —— 多寄存器读写 LDM / STM

    有的时候,CPU可能会遇到 a++; b++; c++,这个时候为了提升效率,CPU可能会一次将多个寄存器里的变量保存到内存中。这个时候之前介绍的 LDR / STR 指令虽然也能实现,但只能操作一个寄存器的读写。 因此,考虑到这点,下面介绍多个寄存器的读写指令 将 多个寄存器 的数据写

    2024年02月07日
    浏览(58)
  • STM32的以太网外设+PHY(LAN8720)使用详解(3):PHY寄存器详解

    前面介绍到,站管理接口(SMI)允许应用程序通过2线时钟和数据线访问任意PHY寄存器,同时该接口支持访问最多32个PHY,也就是说PHY地址共有5位。 应用程序可以从32个PHY中选择一个PHY,然后从任意PHY包含的32个寄存器中选择一个寄存器,发送控制数据或接收状态信息。任意给

    2024年02月03日
    浏览(47)
  • 【ADF4351】使用FPGA进行SPI寄存器配置、使用FPGA计算各个频率的频点,ADF4351配置程序

    输出频率范围:35 MHz至4,400 MHz 小数N分频频率合成器和整数N分频频率合成器 具有低相位噪声的VCO 可编程的1/2/4/8/16/32/64分频输出 典型抖动:0.3 ps rms EVM(典型值,2.1 GHz): 0.4% 电源:3.0 V至3.6 V 逻辑兼容性: 1.8 V 可编程双模预分频器:4/5或8/9 可编程的输出功率 RF输出静音功能

    2024年04月11日
    浏览(49)
  • 使用clion配合STM32CubeMX开发stm32(包含断点调试,查看寄存器值,printf重定向)

    在嵌入式领域中开发以ARM公司的Cortex M内核为代表的单片机时程序员使用最多的IDE一定是Keil公司的MDK4 MDK5,而Keil已经脱离现代智能IDE,近年来IAR逐步向现代智能IDE靠近但还不足,一些芯片原厂提供了基于eclipse改装版IDE,这些工具在调试方面有优势,比如查看外设寄存器,内

    2024年04月24日
    浏览(47)
  • Xlinx FPGA如何在软件开发端使用XSCT工具直接对寄存器进行读和写调试

    当我在开发ZYNQ过程中使用PL-PS 的IP核之间相互使用,那么就得需要对IP核中所定义的寄存器进行读和写,那么在软件端有这么一个叫XSCT的工具来进行操作。 例子1:接下来使用XSCT来调试串口对数据上下行传输读/写。 以下是官方 AXI UART Lite ip核的寄存器列表 xsct%: mwr 0x42c00004

    2024年01月16日
    浏览(43)
  • 锁存器、D触发器、寄存器理解

    1、锁存器        锁存器对脉冲的电平敏感,也就是电平触发,在有效的电平下,锁存器处于使能状态,输出随着输入发生变化,此时它不锁存信号,就像一个缓冲器一样;在锁存器没有使能时,则数据被锁住,输入信号不起作用,此时输出一直为锁存的状态信息(锁存最后

    2024年02月09日
    浏览(41)
  • FPGA之 寄存器、触发器、锁存器

    每个slice有8个存储元素,每个存储元素如下图所示:  其中四个为DFF/LATCH,可以配置为边沿触发D型触发器或电平敏感锁存器输入上图。D输入可以通过AFFMUX, BFFMUX, CFFMUX或DFFMUX的LUT输出直接驱动,也可以通过AX, BX, CX或DX输入绕过函数发生器的 BYPASS slice输入直接驱动。当配置为锁存

    2024年01月18日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包