VCS的ralgen命令产生UVM寄存器模型

2024-02-13 09:32

本文主要是介绍VCS的ralgen命令产生UVM寄存器模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、寄存器描述表格
  • 二、生成 .ralf 寄存器文件
    • 2.1 field
    • 2.2 register
    • 2.3 register block
    • 2.4 system
  • 三、产生UVM寄存器模型

前言

    在验证时,寄存器模型是必不可少的一个环境,且在项目中可能面临着需要不断更新迭代的需求。那么如何快速建立 UVM寄存器模型 呢?采用VCS ralgen脚本的主要步骤如下:

  1. 中心化的寄存器描述文件,如 ods、CSV、XML等;
  2. 根据寄存器描述文件产生ralgen需要的 .ralf 格式的寄存器文件;
  3. vcs的ralgen 命令生成 UVM register modle;

    我们通过脚本来解析表格,直接生成寄存器模型,也可以生成 ralf 文件,然后通过 VCS 工具中的 ralgen 产生寄存器模型。但是VCS工具提供了更可供选择的option,提供了更强大的机制,所以不妨可以试试用ralgen的方式来构建寄存器模型。下面将逐一介绍。

一、寄存器描述表格

    寄存器模型应该是中心化管理的,因为不同的部门都需要一份严格的寄存器描述文档来开展工作。这里以下图路科验证提供的寄存器列表为例。

二、生成 .ralf 寄存器文件

    首先我们先介绍ralf文件的内容格式。先以VCS提供的例子为参考,如下就是ralf文件中的一个register block的描述形式。

在这里插入图片描述
解释上图:

linecodedescription
1b1此register block的名称;
2bytes 11)指定这个register block的位宽;
2)如果所有register位宽之和大于此bytes生成ralf文件时会报错;
3register r此register的名称;
4bytes 11)指定这个register的位宽;
2)如果所有field位宽之和大于此1bytes,则会报错;
3)如果没有添加bytes,那么系统会自动计算所有bits之和,然后找到 最小正整数*8 >= 所有域位宽之和。例如所有域的位宽之和是12bit,那么系统会用16bit来存储这个寄存器数据。
5field WDT_EN@'h51)域名为WDT_EN;
6bits 1指定这个域的位宽;
7reset 'h0复位值为’h0;
8access rw该域的访问属性是RW;
9enum{ …}在这个域的UVM代码中会声明一个enum

在这里插入图片描述
在这里插入图片描述
    下面介绍一下它们基本语法规则:

2.1 field

    field 对应生成 UVM 寄存器模型中的 uvm_reg_field,如下:
在这里插入图片描述
对应的uvm_reg,如下:
在这里插入图片描述

2.2 register

ralgen支持 register 中的 field 为数组的形式,如下:
在这里插入图片描述

2.3 register block

类似field,ralgen 也支持 register block 中的 register 为数组的形式,如下:
在这里插入图片描述

2.4 system

在这里插入图片描述
在这里插入图片描述

三、产生UVM寄存器模型

    有了.ralf 的寄存器描述文件后,我们通过以下命令来产生UVM寄存器模型,如下:

ralgen [option] -t topname -I dir -uvm filename.ralf
optiondescription
-t topname指定 ralf 文件中一个top_level的register block 或者 system 的名称;
-uvm生成UVM寄存器模型;
-o ral_model_name指定输出文件的名称,生成的register model文件名为ral_model_name.sv
-I dir指定ralgen去搜索文件的路径;
注意:这里的 -I 是大写的 i ;
filename.ralf指定 ralgen 脚本吃进去的.ralf格式的寄存器描述文件;
-b为寄存器和memory指定后门访问方式,生成后门访问的代码
-B寄存器的地址以 Byte 为单位;
-c b即coverage bits,生成register bits(寄存器比特位)功能覆盖率模型;
-c f即coverage field,生成“Field Value”(域段值)功能覆盖率模型
-c acoverage address,生成“ADDRESS MAP”(地址映射)功能覆盖率模型;
注:几种覆盖率模型也可以同时存在,如 -c af;

👉注:这里对 ralgen 只做了最简单的介绍,ralgen还有许多的功能没有提及,待以后用到时,会继续更新…

这篇关于VCS的ralgen命令产生UVM寄存器模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/705153

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应