0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何创建一个high-level和object-oriented的模型

芯片验证工程师 来源:芯片验证工程师 2023-06-23 21:30 次阅读

UVM register layer classes用于为DUV中的memory-mapped寄存器和内存的read/write操作创建一个high-levelobject-oriented的模型。

这种抽象机制允许验证环境和测试用例从模块级迁移到系统级,而无需进行任何修改。寄存器模型还可以在寄存器之间移动唯一命名的字段,而不需要在验证环境或测试用例中进行修改(因为寄存器模型是按照字符串索引操作的,而不是按照字段offset操作的)。

UVM还提供了一个寄存器测试sequence库,你可以用来验证DUV中registers和memories的功能。

register model通常也是层次结构的。Blocks可以包含registersregister filesmemories,以及其他Blocks。

register layer classes支持front-door a和back-door访问。

由于register layer classes涉及众多的细节,所以通常是由model generator从设计中的registers和memories的规格生成的。

d31a3bd6-11b3-11ee-962d-dac502259ad0.png

register model 是一个register block的实例,它可以包含任意数量的registers、register files、memories和其他blocks。一个block通常对应于一个设计,它有自己的处理器接口,地址解码以及memory-mapped registers和memories。每个register file包含任意数量的registers和其他register files。每个寄存器包含任意数量的字段(fields),它们反映(mirror)了硬件中相应域段的值。

d3371d1e-11b3-11ee-962d-dac502259ad0.png

如果一个memories作为设计模块地址空间的一部分通过寄存器模型进行访问,那么该memories被认为是寄存器模型的一部分。

所有的数据域段都被建模为fields。fields代表一组连续的比特,完全包含在一个register中。

一个register可以横跨多个地址,重复的结构可以被建模为register arrays, register file arrays或者block arrays。下图显示了一个包含两个寄存器(分别有2个和3个字段)、一个内部存储器和一个外部存储器的设计。

d34e7c84-11b3-11ee-962d-dac502259ad0.png

相应的寄存器模型如下:

d3630f6e-11b3-11ee-962d-dac502259ad0.png

当使用 register model时,fields、registers和memory是通过其相应的抽象类中的读写方法(不通过地址,而是通过字符串名称)来访问的。寄存器模型通过适当的总线驱动将这些抽象的访问变成特定地址的实际读写。

例 如,上图所示的CONFIG寄存器中的字段ADDR可以通过CODEC.CONFIG.ADDR.read() 方 法 访 问 。同 样 , BFR 存 储 器 中 的 位 置“7”可以用CODEC.BFR.write(7,value)方法访问。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117723
  • 接口
    +关注

    关注

    33

    文章

    7639

    浏览量

    148495
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47687

原文标题:UVM寄存器模型概述

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Object-Oriented Python入門编程():认识类别

    請先安裝開發環境請看==> 詳細說明1.類別是資料型態我們常說,3 是個整數,這句話表達了:3 是物件,而整數是類別。若用電腦的術語,就相當於:3 是項資料,其型態是「整數」。傳統
    发表于 12-07 10:37

    Object-Oriented Programming in

    This chapter applies a different programming paradigm to G: Object-Oriented Programming(OOP). New
    发表于 03-02 14:18 28次下载

    C++ Network Programming (Volum

    C++ Network Programming :Over the past decade, concurrent object-oriented network programminghas
    发表于 05-03 12:23 0次下载
    C++ Network Programming (Volum

    High-Level Modeling and Synthe

    As the miniaturization of semiconductor technology continues, electronic systemson chips offer a more extensive and more complex functionality withbetter performance, higher frequencies and less power consumption. Whereasdig
    发表于 07-23 11:37 0次下载
    <b class='flag-5'>High-Level</b> Modeling and Synthe

    Research on the Approach to As

    Object Petri Net (OPN) which combines Petri net with object-oriented theory gives an effective
    发表于 08-31 09:07 14次下载

    high-level protocol for CAN-bu

    high-level protocol for CAN-bus:Fieldbus networks from the OSI network modelpoint-of-view usually
    发表于 09-15 07:58 11次下载

    TPS65192,pdf(9 Channel Level S

    and monitors. The device converts the logic-level signals generated by the Timing Controller (T-CON) to the high-level signals used by
    发表于 11-03 22:59 47次下载

    High-Performance Level-Shifter

    High-Performance Level-Shifter Solution for LCD TVs with Gate-in-Panel (GIP) Technology
    发表于 02-02 16:05 1256次阅读

    什么是CHILL (CCITT High Level Lan

    什么是CHILL (CCITT High Level Language)  英文缩写: CHILL (CCITT High Level Language) 中文译名:
    发表于 02-22 10:47 573次阅读

    Getting Started with Vivado High-Level Synthesis

    Xilinx公司讲述:Getting Started with Vivado High-Level Synthesis
    的头像 发表于 06-04 13:47 3473次阅读
    Getting Started with Vivado <b class='flag-5'>High-Level</b> Synthesis

    如何在HIGH LEVEL SYNTHESIS之前查找代码问题的资料说明

    为了显著加快验证速度,处理每天都会变化的复杂算法,很多公司转向采用 High-Level Synthesis (HLS) 方法。但是,要利用在更高抽象度开展设计带来的相关性能改进,采用 C++
    发表于 05-21 17:11 6次下载
    如何在<b class='flag-5'>HIGH</b> <b class='flag-5'>LEVEL</b> SYNTHESIS之前查找代码问题的资料说明

    高层次综合技术(High-level synthesis)的概念

    说起高层次综合技术(High-level synthesis)的概念,现在有很多初学者简单地把它理解为可以自动把c/c++之类地高级语言直接转换成底层硬件描述语言(RTL)的技术。其实更准确的表述是:由更高抽象度的行为描述生产电路的技术。
    的头像 发表于 02-08 17:26 7322次阅读
    高层次综合技术(<b class='flag-5'>High-level</b> synthesis)的概念

    SystemVerilog中class的基本概念

    class,是面向对象编程(object-oriented programming (OOP))的基础,而OOP可以让你创建更高抽象级别的验证环境(如UVM)。
    的头像 发表于 11-14 09:11 1403次阅读

    SystemVerilog中class是什么意思

    class,是面向对象编程(object-oriented programming (OOP))的基础,而OOP可以让你创建更高抽象级别的验证环境(如UVM)。
    的头像 发表于 11-14 09:11 781次阅读

    SystemVerilog中的类的继承

    继承是基于类的面向对象编程(object-oriented pro - gramming)的最重要特性之一。
    的头像 发表于 11-15 09:47 634次阅读