0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何創(chuàng)建一個high-level和object-oriented的模型

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 2023-06-23 21:30 ? 次閱讀

UVM register layer classes用于為DUV中的memory-mapped寄存器和內(nèi)存的read/write操作創(chuàng)建一個high-levelobject-oriented的模型。

這種抽象機制允許驗證環(huán)境和測試用例從模塊級遷移到系統(tǒng)級,而無需進行任何修改。寄存器模型還可以在寄存器之間移動唯一命名的字段,而不需要在驗證環(huán)境或測試用例中進行修改(因為寄存器模型是按照字符串索引操作的,而不是按照字段offset操作的)。

UVM還提供了一個寄存器測試sequence庫,你可以用來驗證DUV中registers和memories的功能。

register model通常也是層次結(jié)構(gòu)的。Blocks可以包含registersregister filesmemories,以及其他Blocks。

register layer classes支持front-door a和back-door訪問。

由于register layer classes涉及眾多的細(xì)節(jié),所以通常是由model generator從設(shè)計中的registers和memories的規(guī)格生成的。

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

register model 是一個register block的實例,它可以包含任意數(shù)量的registers、register files、memories和其他blocks。一個block通常對應(yīng)于一個設(shè)計,它有自己的處理器接口,地址解碼以及memory-mapped registers和memories。每個register file包含任意數(shù)量的registers和其他register files。每個寄存器包含任意數(shù)量的字段(fields),它們反映(mirror)了硬件中相應(yīng)域段的值。

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

如果一個memories作為設(shè)計模塊地址空間的一部分通過寄存器模型進行訪問,那么該memories被認(rèn)為是寄存器模型的一部分。

所有的數(shù)據(jù)域段都被建模為fields。fields代表一組連續(xù)的比特,完全包含在一個register中。

一個register可以橫跨多個地址,重復(fù)的結(jié)構(gòu)可以被建模為register arrays, register file arrays或者block arrays。下圖顯示了一個包含兩個寄存器(分別有2個和3個字段)、一個內(nèi)部存儲器和一個外部存儲器的設(shè)計。

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

相應(yīng)的寄存器模型如下:

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

當(dāng)使用 register model時,fields、registers和memory是通過其相應(yīng)的抽象類中的讀寫方法(不通過地址,而是通過字符串名稱)來訪問的。寄存器模型通過適當(dāng)?shù)目偩€驅(qū)動將這些抽象的訪問變成特定地址的實際讀寫。

例 如,上圖所示的CONFIG寄存器中的字段ADDR可以通過CODEC.CONFIG.ADDR.read() 方 法 訪 問 。同 樣 , BFR 存 儲 器 中 的 位 置“7”可以用CODEC.BFR.write(7,value)方法訪問。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5268

    瀏覽量

    119645
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8355

    瀏覽量

    150514
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3058

    瀏覽量

    48571

原文標(biāo)題:UVM寄存器模型概述

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Object-Oriented Python入門編程():認(rèn)識類別

    請先安裝開發(fā)環(huán)境請看==> 詳細(xì)說明1.類別是資料型態(tài)我們常說,3 是個整數(shù),這句話表達了:3 是物件,而整數(shù)是類別。若用電腦的術(shù)語,就相當(dāng)於:3 是項資料,其型態(tài)是「整數(shù)」。傳統(tǒng)
    發(fā)表于 12-07 10:37

    Object-Oriented Programming in

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

    C++ Network Programming (Volum

    C++ Network Programming :Over the past decade, concurrent object-oriented network programminghas
    發(fā)表于 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
    發(fā)表于 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
    發(fā)表于 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
    發(fā)表于 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
    發(fā)表于 11-03 22:59 ?47次下載

    High-Performance Level-Shifter

    High-Performance Level-Shifter Solution for LCD TVs with Gate-in-Panel (GIP) Technology
    發(fā)表于 02-02 16:05 ?1329次閱讀

    什么是CHILL (CCITT High Level Lan

    什么是CHILL (CCITT High Level Language)  英文縮寫: CHILL (CCITT High Level Language) 中文譯名:
    發(fā)表于 02-22 10:47 ?599次閱讀

    Getting Started with Vivado High-Level Synthesis

    Xilinx公司講述:Getting Started with Vivado High-Level Synthesis
    的頭像 發(fā)表于 06-04 13:47 ?3669次閱讀
    Getting Started with Vivado <b class='flag-5'>High-Level</b> Synthesis

    如何在HIGH LEVEL SYNTHESIS之前查找代碼問題的資料說明

    為了顯著加快驗證速度,處理每天都會變化的復(fù)雜算法,很多公司轉(zhuǎn)向采用 High-Level Synthesis (HLS) 方法。但是,要利用在更高抽象度開展設(shè)計帶來的相關(guān)性能改進,采用 C++ 或
    發(fā)表于 05-21 17:11 ?6次下載
    如何在<b class='flag-5'>HIGH</b> <b class='flag-5'>LEVEL</b> SYNTHESIS之前查找代碼問題的資料說明

    高層次綜合技術(shù)(High-level synthesis)的概念

    說起高層次綜合技術(shù)(High-level synthesis)的概念,現(xiàn)在有很多初學(xué)者簡單地把它理解為可以自動把c/c++之類地高級語言直接轉(zhuǎn)換成底層硬件描述語言(RTL)的技術(shù)。其實更準(zhǔn)確的表述是:由更高抽象度的行為描述生產(chǎn)電路的技術(shù)。
    的頭像 發(fā)表于 02-08 17:26 ?8020次閱讀
    高層次綜合技術(shù)(<b class='flag-5'>High-level</b> synthesis)的概念

    SystemVerilog中class的基本概念

    class,是面向?qū)ο缶幊蹋?b class='flag-5'>object-oriented programming (OOP))的基礎(chǔ),而OOP可以讓你創(chuàng)建更高抽象級別的驗證環(huán)境(如UVM)。
    的頭像 發(fā)表于 11-14 09:11 ?1742次閱讀

    SystemVerilog中class是什么意思

    class,是面向?qū)ο缶幊蹋?b class='flag-5'>object-oriented programming (OOP))的基礎(chǔ),而OOP可以讓你創(chuàng)建更高抽象級別的驗證環(huán)境(如UVM)。
    的頭像 發(fā)表于 11-14 09:11 ?1169次閱讀

    SystemVerilog中的類的繼承

    繼承是基于類的面向?qū)ο缶幊?object-oriented pro - gramming)的最重要特性之。
    的頭像 發(fā)表于 11-15 09:47 ?896次閱讀