当前位置:网站首页>UVM Introduction Experiment 1
UVM Introduction Experiment 1
2022-07-27 08:26:00 【Bunny9__】
UVM Introductory experiments 1
zero 、 Some additional reviews
share 9 individual phase, among run_phase It's the task type ,run_phase in , It can be subdivided into 12 Small phase, Small phase Is to execute in sequence , But and run_phase It is also executed in parallel
raise_objection()、drop_objection() Used to control the beginning and end of simulation , It is recommended to enter run_phase Just pull it up , Guarantee objection counter Can increase in time , Prevent simulation from exiting
uvn_config_db It can deliver virtual interface Into the environment 、 Set a single variable 、 Transfer configuration objects to the environment
interface Of set()、get() It can only happen in components
Interface delivery must occur in run_test() Before , Make sure to enter build_phase When vif Already in uvm_config_db It's in .set()、get() Path always , The type should also be consistent ,virtual
test It is the only entrance to the verification environment , The scenarios of all test cases must be inherited from uvm_test
About configuration , Use config_db It is a static configuration , Only need build Stage configuration once , The mode in the whole simulation will be solidified . Dynamic configuration can be used transaction, Dynamically create 、 Dynamic transmission 、 Dynamic configuration
One 、 Registration of factories 、 Create and override mechanisms
1. function object_crearte

2. function object_override

3. function component_create

4. function component_override

- t1/t2/t3/t4、u1/u2/u3/u4 It's all created .
- trans Object's name Not modified ,unit Object's name It was modified .
- t1 use new() Create directly ,t2/t3/t4 Create... With factory , So the last three are covered ( The convenience provided by the factory ).u Empathy .
- Type overrides occur between creation , Otherwise, the overwrite is invalid .
- Not registered to the factory , Using the factory method type_id::create() Will report a mistake .
Two 、 Domain automation and uvm_object The common method of

- After the automation of the domain, you can use uvm_object Some predefined methods provided , Automatic declaration should be placed after declaring variables .
- do_compare() yes compare() Callback function for , When do_compare() When displaying the declaration , To be executed .
- The default comparator is 1, That is, when the first comparison error occurs , There will be no subsequent comparison .
In order to keep comparing , There are two ways :
1. Modify global uvm_comparer object
uvm_default_comparer.show_max = 10;
2. Create a uvm_comparer object , Modify the variable value by yourself
3、 ... and 、phase Mechanism

- share 9 individual phase, among run_phase It's the task type ,run_phase in , It can be subdivided into 12 Small phase, Small phase Is to execute in sequence , But and run_phase It is also executed in parallel .reste_phase and main_phase And run_phase Parallel execution , So it only cost 2us.
- build_phase Top down , The rest are bottom-up .
- raise_objection()、drop_objection() Used to control the beginning and end of simulation , It is recommended to enter run_phase Just pull it up , Guarantee objection counter Can increase in time , Prevent simulation from exiting .
Four 、config Mechanism



- When the interface is passed , Type to add virtual. Interface delivery should be earlier than run_test()、create()
5、 ... and 、 Message management
- Set in the build_phase Message screening in , It does not affect the message printing at the time of creation
- set_report_id_verbosity_level_hier(str, verb) You can choose to control some ID The news of
边栏推荐
- Mqtt instruction send receive request subscription
- 【uni-app高级实战】手把手带你学习一个纯实战复杂项目的开发1/100
- JS basic exercises
- Opengauss stopped from the library and found that the main library could not write data
- An ordinary autumn recruitment experience
- The seta 2020 international academic conference will be held soon. Welcome to attend!
- Using ecological power, opengauss breaks through the performance bottleneck
- Graph node deployment and testing
- Luogu super Mary game
- Massive data Xiao Feng: jointly build and govern opengauss root community and share a thriving new ecosystem
猜你喜欢

What is the real HTAP? (1) Background article

Five day travels to Beijing

Vcenter7.0 managing esxi7.0 hosts

Solution to the program design of the sequence structure of one book (Chapter 1)

Use of string type "PHP Basics"

借生态力量,openGauss突破性能瓶颈

Is redis really slowing down?

说透缓存一致性与内存屏障

如何在qsim查看软件对象的实例?

"PHP Basics" PHP statements and statement blocks
随机推荐
regular expression
Weekly learning summary
Local Oracle reported ora-12514: tns: the listener cannot recognize the requested service at present
On data security
My senior
Luogu Taotao picks apples
Hundreds of people participated. What are these people talking about in the opengauss open source community?
UVM入门实验1
docker 安装mysql后进入容器内部发现登录不了mysql
2022-07-26 group 4 abstract classes and interfaces
情人节,我用字符画出了一个对象!
CMD command and NPM command
ERP production operation control Huaxia
[pytorch] resnet18, resnet20, resnet34, resnet50 network structure and Implementation
Notes in "PHP Basics" PHP
SSTI template injection
阿里云国际版回执消息简介与配置流程
opengauss从库停掉,发现主库无法写入数据
You may need an additional loader to handle the result of these loaders.
Dirsearch[directory scanning tool]