寄存器模型详解以及在SoC驗證中的应用
文章平均质量分 67
本栏目主要介绍UVM寄存器模型及在SOC验证中的使用。专栏内容分为3部分。首先是寄存器模型的基础知识,然后会介绍如何把寄存器模型加入验证环境,最后介绍Chip级别的寄存器测试方案。
元直数字电路验证
天地本無心,生民自有命,往聖無絕學,萬世不太平。硅農,因bug而生,與bug為伴,以debug為生。
展开
-
NOC总线架构拓扑介绍
CPU是怎样访问内存的?简单的答案是,CPU执行一条访存指令,把读写请求发往内存管理单元。内存管理单元进行虚实转换,把命令发往总线。总线把命令传递给内存控制器,内存控制器再次翻译地址,对相应内存颗粒进行存取。之后,读取的数据或者写入确认按照原路返回。再复杂些,当中插入多级缓存,在每一层缓存都未命中的情况下,访问才会最终达到内存颗粒。转载 2023-04-18 09:37:53 · 3259 阅读 · 0 评论 -
[SoC]SoC中地址翻译的一个案例
现在有这样一个案例,在single die中,寄存器总线的地址空间是4GB,而multi-die的地址总线位宽是40bit,现在某个IP内部AXI的地址范围是0x3000_0000 ~ 0x3FFF_FFFF,共256MB,怎么和寄存器总线做映射呢?原创 2022-03-12 12:16:48 · 867 阅读 · 0 评论 -
[SoC]地址总线位宽与存储空间的关系
地址总线位宽与存储空间的关系 前言:在SoC验证中,我们经常会遇到不同位宽的地址总线,那么地址位宽是有什么决定的呢?32位的地址总线可以访问多大的地址空间呢?一、地址总线位宽的意义首先从二进制说起,每一bit都有2种取值的情况,也就是说可以表示2个存储区间 那么n位2进制数可以表示的存储区间数位2^n种 每个存储单元是8bit = 1B 所以n位地址总线可以表示的存储区间位:2^n Byte二、常用的换算关系...原创 2021-08-05 20:47:00 · 4221 阅读 · 0 评论 -
[UVM]UVM Register Test Sequence
UVM Register Test Sequence一、源码分析1.1uvm_reg_hw_reset_seqclass uvm_reg_hw_reset_seq extends uvm_reg_sequence #(uvm_sequence #(uvm_reg_item)); `uvm_object_utils(uvm_reg_hw_reset_seq) function new(string name="uvm_reg_hw_reset...原创 2021-07-06 09:22:56 · 4418 阅读 · 0 评论 -
[UVM]UVM Register Model(RAL Model)的构建
UVM Register Model(RAL Model)的构建 前言:RAL Model在SoC验证中是非常重要的,通过RAL Model进行寄存器的读写,大大降低的TB对RTL改动的依赖。那么我们应该怎么建立RAL Model呢?本文将总结一种方案。一、RALF文件RALF是对Register的描述文件,通过RALF可以产生RAL Model RALF文件可以分为四个层次,分别是:field、register、block、syst...原创 2021-03-17 21:23:08 · 1699 阅读 · 2 评论 -
[UVM]UVM Register Model之Backdoor Access模型构建
UVM Register Model之Backdoor Access模型构建 前言:接上文“[UVM]UVM Register Model(RAL Model)的构建”。本文将以上文中的RALF档案为基础,介绍一下Backdoor Access RAL Model的问题。主要包括RAL Model的生成及结构,以及在环境中的用法。一、RALF Layer在RALF档案中,需要指定每个field的pathblock digrf_dfe_dsb_blk...原创 2021-04-22 16:26:32 · 1043 阅读 · 0 评论 -
[SOC]通过AXI Master做RAL Test
通过AXI Master做RAL Test一、AXIAdapterclass axi_reg_adapter extends uvm_reg_adapter; vip_axi_mst_cfg vip_cfg; `uvm_object_utils(axi_reg_adapter) function new(string name = "axi_reg_adapter"); super...原创 2021-04-10 20:52:52 · 859 阅读 · 1 评论 -
[UVM]RAL Test中VMM类型转换到UVM类型的脚本
RAL Test中VMM类型转换到UVM类型的脚本原创 2020-09-08 09:48:39 · 628 阅读 · 0 评论 -
[UVM]Register Callbacks --- 一種對有粘連關係寄存器的驗證方法
Register Callbacks --- 一種對有粘連關係寄存器的驗證方法 前言:在某些DUT中,当写入一个寄存器时,另一个寄存器會接受一个新值。本文将解释如何使用Register callback來对这种行为建模。一、Registers定義 在寄存器抽象中,我们定义了两个寄存器:RECIPE和TASTE...翻译 2020-05-14 11:52:18 · 1073 阅读 · 0 评论 -
[UVM]不用寄存器模型(RAL Model)該怎麼讀寫寄存器呢?
Register Access without RAL Model In this section will see an example that shows one of the ways to access DUT registers without the UVM RAL Model.Let’s consider aDMA desi...原创 2020-04-12 10:20:36 · 887 阅读 · 0 评论 -
[UVM]UVM Register Model應用實例(Example)
UVM Register Model Example In this section will see an example that shows one of the ways to access DUT registers with the UVM RAL Model.Let’s consider aDMA de...原创 2020-04-11 14:38:46 · 1055 阅读 · 0 评论 -
[DV]一種對具有互相粘連功能的Register的驗證方案 --- Register Callback
一種帶Set、Clear、Mask功能的Register的驗證方案 前言:在DV工作中,我們經常會遇到如下圖所示的Register定義,例如RW類型的Register:demo,當我們把Register:demo_set設為1的時候,demo會變為1;當我們把demo_clear置為1的時候,demo會被清零;通過mask_demo_set,可以屏蔽掉s...原创 2020-04-10 18:27:54 · 830 阅读 · 0 评论 -
[UVM]UVM RAL Base Classes
UVM RAL Base Classes This section describes UVM RAL model types, enums and utility classes.一、UVM RAL types1、uvm_reg_data_t2-state data value with `UVM_REG_...原创 2020-04-03 18:36:24 · 618 阅读 · 0 评论 -
[UVM]UVM Register Defines
UVM Register Defines UVM register library has the defines declared in it. these are being used in the RAL model base classes, user can override these def...原创 2020-04-03 18:29:35 · 489 阅读 · 0 评论 -
[UVM]Integrating RAL to Agent
Integrating RAL to Agent Once after the RAL implementation, RAL has to be connected with the Bus Agent. This section describes connecting RAL with the sequencer ...原创 2020-04-03 18:27:47 · 393 阅读 · 0 评论 -
[UVM]UVM RAL Adapter
UVM RAL Adapter With the UVM Register model, we do design register access, i.eWRITEto the design register orREADfrom the design register by calling R...原创 2020-04-03 18:24:40 · 1242 阅读 · 0 评论 -
[UVM]UVM RAL Predictor(預測器)
UVM RAL Predictor We know that the UVM Register model maintains the latest design register values in it. but how Register model will get to know the latest v...原创 2020-04-03 18:23:04 · 1835 阅读 · 0 评论 -
[UVM]Packaging and Integrating a Register Model
Packaging and Integrating a Register Model一、Packaging a Register Model The following practices are recommended, but not required.Block types, and all the register, register file...原创 2020-04-03 18:20:47 · 318 阅读 · 0 评论 -
[UVM]Constructing Register Model
Constructing Register Model This section describes how to construct a UVM register model for register and memory access.一、Register Field Register fields ...原创 2020-04-02 19:13:02 · 635 阅读 · 0 评论 -
[UVM]寄存器模型中提供的API
UVM寄存器模型中提供的API UVM RAL library classes have builtin methods implemented in it, these methods can be used for accessing the registers. These methods are refe...原创 2020-04-02 19:02:59 · 738 阅读 · 0 评论 -
[UVM]UVM RAL Usage Model
UVM RAL Usage Model The previous section described the UVM RAL base classes. This section explains using UVM RAL base classes with reference to the design elements...原创 2020-04-02 18:54:04 · 436 阅读 · 0 评论 -
[UVM]UVM RAL Overview
UVM RAL Overview一、UVM Register Model Overview The register model is composed of a hierarchy ofblocksthat map to the design hierarchy, which means the RAL...原创 2020-04-02 18:49:51 · 577 阅读 · 0 评论 -
[UVM]Introduction to UVM Register Model
Introduction to UVM Register Model The UVM Register Layer provides a standard base class libraries that enable users to implement the object-oriented model to access the DUT ...原创 2020-04-02 18:22:41 · 357 阅读 · 0 评论 -
[UVM]通過RAL Test來驗證APB_WR與APB_RD PORT
在驗證寄存器的過程中,同時也驗證了BUS是否能通,APB PORT是否都對。比如有時候會給Modul留2套甚至更多的APB接口,有些只能做Write,有些只能做Read,有些Read與Write都可以。那麼怎麼去驗證這種場景呢?下面提供一種方法作為參考:1、怎麼從testlist中傳遞參數到Bench呢?例如我們可以透過testlist來選擇現在是驗APB_RD PORT還是驗A...原创 2019-07-29 08:46:50 · 736 阅读 · 0 评论 -
[UVM]寄存器模型(reg_model)的高級用法之uvm_reg_predictor
一、在通常的寄存器測試中,寄存器模型主要是依賴driver將讀取值返回,來更新鏡像值和期望值。這個功能被稱之為auto_predict功能。在建立寄存器模型時需要添加以下語句來打開此功能:sys_ral_model.default_map.set_auto_predict(1); 二、除了使用driver的返回值更新寄存器模型(如下图左)外,還有另一種形式,在這...原创 2019-06-09 19:33:08 · 3487 阅读 · 0 评论 -
[UVM]寄存器模型(reg_model)進階之uvm_reg_adapter
一、下面以SVT APB Adapter為例,介紹一下uvm_reg_adapter的實現方法,以及在RAL Test中的作用。class svt_apb_reg_adapter extends uvm_reg_adapter; `uvm_object_utils(svt_apb_reg_adapter) function new(string name = "svt_apb_re...原创 2019-06-06 20:52:04 · 3308 阅读 · 0 评论 -
[UVM]RAL Test之Using Multiple Address Maps
在RAL Test過程中,可能會遇到如下圖所示的問題,需要多個uvm_reg_map。那應該如何實現呢?直接上代碼:一、Setting up the Mapclass my_regmodelextends uvm_reg_block; ... uvm_reg_map cpu_map; uvm_reg_map gpu_map; ... cpu_...原创 2019-03-20 20:03:47 · 1000 阅读 · 1 评论 -
[UVM]SoC RAL Test之簡介
RAL Test(Register Abstraction Layer Test),寄存器驗證方案在ASIC驗證中不可缺少的一步。隨著芯片複雜度的增加,寄存器數量的增大,高性能的寄存器驗證方案是迫切需要的。 Synopsys的寄存器驗證方案RAL在ASIC驗證中有明顯的優勢。後續我會對RAL Test的方案及Flow做一些介紹。RAL Test可以發現哪些Bug呢?......原创 2019-03-15 19:36:18 · 2676 阅读 · 0 评论