【UVM练习】实验lab5

本文围绕寄存器模型展开,介绍了寄存器概念、中心化管理方式,阐述了uvm_reg相关建模要点、访问方式及预测分类。还说明了寄存器模型的完善与嵌入方法,包括adapter类方法实现和组件例化连接。此外,讲解了寄存器模型的使用场景及内建序列在测试中的应用。

知识点 

寄存器:是模块之间相互交流的窗口,硬件的各个功能可以通过由处理器配置功能以及访问状态,与处理器之间的通话是通过寄存器的读写来实现的。

寄存器按照地址索引的关系是按字对其的,寄存器有多个域,每个域的属性可以不相同,reserved域表示该域所包含的比特位暂时保留以作日后的功能扩展所用,对保留域的读写不起任何作用。

一个寄存器可以由多个域构成,而多个域可以包含多个比特位,一个功能模块中的寄存器可以组团构成一个寄存器模型(register model),下图中包含了寄存器模块和属于验证环境的寄存器模型。两个模块包含的寄存器信息是高度一致的,属于验证环境的寄存器模型可以抽象出一个层次化的寄存器列表;对于功能验证而言,可以将总线访问寄存器的方式抽象成寄存器模型访问的方式,这种方式便于寄存器后期的地址修改或者域的添加,且不会对已有的激励产生影响,从而提高了测试序列的复用性。

 中心化管理方式:采用XML、Excel或者DOC等格式来保存寄存器的描述,因为单一源的管理方式可以尽量降低分歧和错误的可能。

uvm_reg相关概念:

 

 寄存器建模的基本要点和顺序:

1:在定义单个寄存器时,需要将寄存器的各个域整理出来,在创建之后还应当通过uvm_ reg_field::configure()函数来进一步配置各自属性;

2:在定义uvm_reg_block时, 读者需要注意reg_block与uvm_mem、uvm_reg以及uvm_reg_map的包含关系。首先uvm_reg和uvm_mem分别对应着硬件中独立的寄存器或者存储,而一个uvm_reg_block可以用来模拟一个功能模块的寄存器模型,其中可以容纳多个uvm_ reg和uvm_ mem实例;其次map的作用一方面用来表示寄存器和存储对应的偏移地址,同时由于一个reg_ block可 以包含多个map,各个map可以分别对应不同总线或者不同地址段。在reg_block中创建了各个uvm_ reg之后,需要调用uvm_reg:configure()去配置各个uvm_reg实例的属性。

3:考虑到uvm_reg_map也会在uvm_reg_block中例化,在例化之后需要通过uvm_reg_map:add_reg()函数来添加各 个uvm_reg对应的偏移地址和访问属性等。只有规定了这些属性,才可以在稍后的前门访问(frontdoor)中给出正确的地址。:4:uvm_reg_block可以对更大的系统做寄存器建模,这意味着uvm

Table of Contents Articles Introduction 0 Cookbook/Introduction 0 Cookbook/Acknowledgements 1 Testbench Architecture 2 Testbench 2 Testbench/Build 9 Testbench/Blocklevel 19 Testbench/IntegrationLevel 29 Component 39 Agent 42 Phasing 48 Factory 53 UsingFactoryOverrides 56 SystemVerilogPackages 62 Connections to DUT Interfaces 65 Connections 65 SVCreationOrder 71 Connect/SystemVerilogTechniques 73 ParameterizedTests 75 Connect/Virtual Interface 78 Config/VirtInterfaceConfigDb 86 Connect/VirtInterfacePackage 90 Connect/VirtInterfaceConfigPkg 93 Connect/TwoKingdomsFactory 97 DualTop 103 VirtInterfaceFunctionCallChain 106 BusFunctionalModels 108 ProtocolModules 111 Connect/AbstractConcrete 115 Connect/AbstractConcreteConfigDB 118 Configuring a Test Environment 126 Configuration 126 Resources/config db 131 Config/Params Package 134 Config/ConfiguringSequences 139 ResourceAccessForSequences 142 MacroCostBenefit 145 Analysis Components & Techniques 146 Analysis 146 AnalysisPort 149 AnalysisConnections 152 MonitorComponent 158 Predictors 161 Scoreboards 163 MetricAnalyzers 170 PostRunPhases 172 Matlab/Integration 175 End Of Test Mechanisms 183 EndOfTest 183 Objections 185 Sequences 188 Sequences 188 Sequences/Items 193 Transaction/Methods 195 Sequences/API 200 Connect/Sequencer 204 Driver/Sequence API 206 Sequences/Generation 213 Sequences/Overrides 221 Sequences/Virtual 223 Sequences/VirtualSequencer 231 Sequences/Hierarchy 237 Sequences/SequenceLibrary 242 Driver/Use Models 246 Driver/Unidirectional 247 Driver/Bidirectional 250 Driver/Pipelined 255 Sequences/Arbitration 267 Sequences/Priority 276 Sequences/LockGrab 277 Sequences/Slave 284 Stimulus/Signal Wait 290 Stimulus/Interrupts 294 Sequences/Stopping 301 Sequences/Layering 302 Register Abstraction Layer 308 Registers 308 Registers/Specification 315 Registers/Adapter 317 Registers/Integrating 321 Registers/Integration 327 Registers/RegisterModelOverview 332 Registers/ModelStructure 334 Registers/QuirkyRegisters 344 Registers/ModelCoverage 349 Registers/BackdoorAccess 354 Registers/Generation 357 Registers/StimulusAbstraction 358 Registers/MemoryStimulus 370 Registers/SequenceExamples 375 Registers/BuiltInSequences 382 Registers/Configuration 386 Registers/Scoreboarding 389 Registers/FunctionalCoverage 395 Testbench Acceleration through Co-Emulation 401 Emulation 401 Emulation/SeparateTopLevels 404 Emulation/SplitTransactors 410 Emulation/BackPointers 415 Emulation/DefiningAPI 419 Emulation/Example 422 Emulation/Example/APBDriver 430 Emulation/Example/SPIAgent 435 Emulation/Example/TopLevel 441 Debug of SV and UVM 444 BuiltInDebug 444 Reporting/Verbosity 455 UVM/CommandLineProcessor 460 UVM Connect - SV-SystemC interoperability 464 UvmConnect 464 UvmConnect/Connections 466 UvmConnect/Conversion 468 UvmConnect/CommandAPI 472 UVM Express - step by step improvement 476 UvmExpress 476 UvmExpress/DUT 481 UvmExpress/BFM 485 UvmExpress/WritingBfmTests 490 UvmExpress/FunctionalCoverage 498 UvmExpress/ConstrainedRandom 503 Appendix - Deployment 516 OVM2UVM 516 OVM2UVM/DeprecatedCode 527 OVM2UVM/SequenceLibrary 528 OVM2UVM/Phasing 530 OVM2UVM/ConvertPhaseMethods 535 UVC/UvmVerificationComponent 537 Package/Organization 548 Appendix - Coding Guidelines 555 SV/Guidelines 555 UVM/Guidelines 569 Appendix - Glossary of Terms 579 Doc/Glossary 579
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值