UVM Tutorial
OnePlusZero
为天地立心,为生民立命,为往圣继绝学,为万世开太平
展开
-
UVM Tutorial for Candy Lovers 糖果爱好者
UVM Tutorial for Candy Lovers – 1. Overview UVM Tutorial for Candy Lovers – 2. Recipe UVM Tutorial for Candy Lovers – 3. Transactions and Sequences UVM Tutorial for Candy Lovers – 4. Agent UVM Tutorial for Candy Lovers – 5. Environmen..原创 2020-05-10 08:27:48 · 1290 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 36. Register Callbacks
In some design, when one register is written, another register takes a new value. This article will explain how to model this behavior using a register callback.Registers in Jelly Bean TasterInRe...翻译 2020-04-30 12:51:22 · 522 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 35. Defining do_record
This is the last article about the “do” hook series. Thedo_recordfunction is the user-definable hook called by therecordfunction ofuvm_objectwhich records the object properties.Defining do_rec...翻译 2020-04-30 12:46:20 · 513 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 34. Component Override
Some people told me that sour-chocolate actually tastes good and there are many recipes for sour cream chocolate cake. I understand that people have different tastes, so decided to replace our scorebo...翻译 2020-04-30 12:44:25 · 409 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 33. Defining do_print
When we implemented the“do” hooksbefore, we defined theconvert2stringfunction, but we did not define our owndo_printfunction. This was because theconvert2stringis very flexible and light weigh...翻译 2020-04-30 12:40:20 · 495 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 32. Using randc
One of the loyal jelly-bean customers reported that his gift box had repeated flavors. After the investigation, we found a potential issue with thegift_boxed_jelly_bean_sequencecreated inTransactio...翻译 2020-04-30 12:35:34 · 340 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 31. Provides Responses?
This is a short article about when we should set theprovides_responsesbit of the register adapter.Original Jelly Bean DriverThis is the orignaljelly_bean_driverused inRegister Abstraction. Th...翻译 2020-04-30 12:32:43 · 409 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 30. Back of the Back Door
In the earlier posts (Register Access through the Back DoorandBackdoor HDL Path), we usedconfigure,add_hdl_pathandadd_hdl_path_slice, then these functionsmagicallycreated the HDL paths. That’s...翻译 2020-03-14 17:52:49 · 337 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 28. Message Logging
In theprevious article, we explained how to filter messages using a verbosity threshold. This article explains how to send the messages to a file (or files).Message ExampleAs an example, we added...翻译 2020-03-14 17:34:14 · 245 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 26. Sequence Arbitration
Our jelly-bean business has been doing so well that we started to receive multiple jelly-bean orders at the same time. Some customers requested expedited shipping, too. But how to prioritize the reque...翻译 2020-03-14 17:25:40 · 317 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 25. Using a C-Model
We often use a C-model as a reference model. Thanks to the direct programming interface (DPI) of SystemVerilog, using C-model has never been easier. We will show you how to use a C-model in our jelly ...翻译 2020-02-23 11:27:11 · 331 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 24. Register Access through the Back Door
This post will add back-door access to the registers defined inRegister Abstraction. With a few additional lines of code, you can access the registers through the back door.DUTWe use the same DUT...翻译 2020-02-23 11:25:16 · 310 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 23. Jelly Bean Taster in UVM 1.2
My first series of UVM tutorials (#1 to #6) was posted more than three years ago. Since then, UVM (and my knowledge about it) has evolved and I always wanted to update my articles and code. But it was...翻译 2020-02-23 11:18:40 · 422 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 22. Phasing
When we created thejelly_bean_driverinAgent, we coded thebuild_phasefunction and therun_phasetask, but who actually calls them? The answer isuvm_phaseclass.UVM PhasesUVM has nine common p...翻译 2020-02-23 11:15:04 · 300 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 21. TLM 1 Example
In theprevious post, we looked at an overview of the TLM 1 classes. This post will give you a sample code using some of the TLM 1 classes.ComponentsWe created the following components to demonstr...翻译 2020-02-23 11:12:36 · 303 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 20. TLM 1
UVM supports ports (TLM 1) and sockets (TLM 2) as transaction-level interfaces. This post will explain TLM 1.TLM 1 seems daunting as it has many ports, exports, and “imp”s, but once you understand th...翻译 2020-02-23 11:07:37 · 271 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 19. Analysis FIFO
This post will explain how to use analysis FIFOs.Let’s assume I wanted a scoreboard that compares two streams of jelly beans; one stream is for “expected” jelly beans, the other is for “actual” jelly...翻译 2020-01-05 15:02:59 · 289 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 18. Configuration Database Revisited
In the post,Configurations, we looked at the configuration flow of the jelly bean verification. We also looked at the behind the scenes of the configuration flow in the post,Configuration Database. ...翻译 2020-01-05 15:01:56 · 216 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 17. Register Read Demystified
In the last post,Register Access Methods, we looked at the primary methods of RAL and showed how they worked. This post will further focus on theread()method and show how the method actually reads ...翻译 2020-01-05 14:58:24 · 264 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 16. Register Access Methods
assert( flavor.randomize() );The register abstraction layer (RAL) of UVM provides several methods to access registers. This post will explain how the register-access methods work.InRegister Abstr...翻译 2020-01-05 14:54:57 · 399 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 15. “Do” Hooks
This post will explain user-definabledo_*hook functions.InField Macros, we saw that the standard data methods, such ascopy()andcompare(), called the user-definable hook functions, such asdo_co...翻译 2020-01-05 14:36:03 · 309 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 14. Field Macros
This post will explain how UVM field macros (`uvm_field_*) work.InTransactions and Sequences, we used the UVM field macros to automatically implement the standard data methods, such ascopy(),compa...翻译 2020-01-05 14:30:53 · 368 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 13. Configuration Database
This post will explain how configuration database (uvm_config_db) works.InConfigurations, we used theuvm_config_dbto store ajelly_bean_if, ajelly_bean_env_config, and twojelly_bean_agent_config...翻译 2020-01-05 14:28:11 · 276 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 12. Analysis Port
This post will explain how analysis port and analysis export work.InAgent, we connected the analysis port (jb_ap) of the jelly-bean monitor (jb_mon) to the analysis port (jb_ap) of the jelly-bean a...翻译 2019-12-15 15:55:50 · 290 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 11. Sequence Item Port
A UVM driver and a UVM sequencer are connected using a UVM sequence item port and an export. This post will explain how the sequence item port works.InAgent, we connected the sequence item port (seq...翻译 2019-12-15 15:51:37 · 350 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 10. Inside Candy Factory
UVM factory is used to create UVM objects and components. This post will explain the UVM factory using jelly beans (as you expected) and reveal what happens behind the scenes in the factory.::type_i...翻译 2019-12-01 10:43:50 · 337 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 9. Register Abstraction
This post will explain how to use the UVM Register Abstraction Layer (RAL) to generate register transactions.The figure below shows the verification platform used for this post. Among other things, t...翻译 2019-12-01 10:38:55 · 412 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 7. Virtual Sequence
Did you know the mix of two lemon and two coconut jelly beans will create the flavor of lemon meringue pie? And the mix of two strawberry and two vanilla jelly beans will create the flavor of strawber...翻译 2019-12-01 10:12:15 · 320 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 8. Configurations
This post will give an explanation on UVM configuration objects, since the earlier posts did not cover much on them.The jelly-bean verification platform uses two kinds of configuration objects,jelly...翻译 2019-12-01 10:25:03 · 224 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 6. Tasting
The anticipated culmination of the UVM for Candy Lovers series is revealed in this post. Using the created verification components and writing out a test class, the actual simulation is prepared to ru...翻译 2019-11-05 20:56:58 · 288 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 5. Environment
This post will provide a continued explanation on the rest of the verification components.SubscribersFunctional CoverageThe functional coverage subscriber (jelly_bean_fc_sucbscriber) identifies ...翻译 2019-11-05 20:53:27 · 323 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 4. Agent
The last post concentrated on the transactions and sequences of the jelly-bean taster system. This post will explain the verification components in the verification environment further in depth.Inte...翻译 2019-11-05 20:51:15 · 295 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 3. Transactions and Sequences
This post will provide an explanation on the SystemVerilog code itself. Please seeRecipefor the class diagram.TransactionsJelly-Bean TransactionThejelly_bean_transactionclass defines the jel...翻译 2019-11-05 20:45:49 · 422 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 2. Recipe
While the last post clarified the verification components of the jelly-bean taster, this post will provide a focus for the jelly-bean recipe.The jelly-bean recipe is passed as a transaction from the...翻译 2019-11-05 18:36:03 · 373 阅读 · 0 评论 -
UVM Tutorial for Candy Lovers – 1. Overview
Accellera’s recently released UVM may change the future of verification, as verification methodology seems to be consolidated in this UVM. This post will provide a simple tutorial on this new verifica...翻译 2019-11-05 17:47:55 · 861 阅读 · 0 评论