UVM学习报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

UVM学习报告UVM学习报告.................................................................................................................................1UVM结构图.............................................................................................................................11.transaction....................................................................................................................................22.sequence.......................................................................................................................................23.drive..............................................................................................................................................44.monitor.........................................................................................................................................55.input_agent/output_agent...........................................................................................................66.reference_model...........................................................................................................................67.scoreboard....................................................................................................................................78.interface........................................................................................................................................89.env.................................................................................................................................................81.UVM结构图envreference_modleinput_agentoutput_agentscoreboradsequencerdrivei_monitoro_monitorinterfaceDUTsequencetransaction1.transaction①定义成员变量,以及变量类型;②在constraint中对随机的数据增加限制条件;③使用`uvm_object_utils系列宏实现factory机制,调用uvm_filed_int函数,传入的第一个参数是要操作的对象的指针,第二个参数表明这是一个什么操作,还可以通过某些参数把某个字段的相应功能去除。2.sequence在sequence中最关键的是body。在body中有调用了10次`uvm_do宏。这个宏每执行一次就会向uvm_sequencer发送一个数据,uvm_sequencer收到数据就传给uvm_drive。在UVM的组件中,drive,monitor,reference_model和scoreboard的main_phase或run_phase都是无限循环的,要想让整个仿真停止,就要调用$finish函数。在UVM中调starting_phase.raise_objection(this)告诉UVM要开始发包了,在发送完之前不能调用$finish。在包发送完毕后,调用starting_phase.drop_objection(this)来告诉UVM可以调用$finish了。当调用drop_objection时,UVM会检查一下其他的component的objection是否已经被drop了,当所有的objection已经被drop了,才会调用$finish。3.driveUVM验证平台使用drive来发送数据,在drive中:①new函数定义时一般都要写上super.name(name,parent)这一句,意思是执行父类的new函数。另外还要指定两个参数,一个参数是string类型的name,就是这个类的示例的名字;一个是uvm_component类型的parent,以表明这个drive在uvm整个运行树中处于什么位置drive的parent就是input_agent,而input_agent的parent就是env。②定义了virtualinterface;③使用uvm_config_db::get函数来得到最顶层的interface;④定义成员变量ap,把drive发送的数据通知给reference_model;⑤在main_phase中seq_item_port用于连接driver和sequencer的一个端口,driver如果想要发送数据就从这个端口中获得;sequencer如果有数据要发送给driver,也是通过这个端口。从这个端口中申请数据要调用get_next_item方法;当数据驱动完毕时。要调用item_done来告知这个端口。在数据驱动完成之前要将数据发送给interface。4.monitor在imonitor中有定义成员变量、成员变量的实例化、在run_phase中通过无线循环(forever)来不断的检测DUT的输出,并将数据从analysis_port写出。5.input_agent/output_agent定义成员变量、成员变量的实例化、monitor中analysis_port端口的连接。6.reference_model定义以及实例化uvm_analysis_port和uvm_blocking_get_port成员变量、在run_phase中get来自input_agent的数据,再通过analysis_port将数据发送给scoreboard。7.scoreboard接收来自reference_model和output_agent的数据,定义与实例化uvm_in_order_class_comparator来对比数据。8.interface在systemVerilog中,使用virtualinterface把类和Verilog示例的输入和输出连接在一起。使用virtualinterface,必须先定义好一个实际的interface。9.envahb_bri_env继承uvm_env有下面几个作用①定义成员变量:input_agent、scoreboard、output_agent、reference_model;②定义3个fifo用于数据的传输,fifo的作用是用于防止在ap发送数据时uvm_blocking_get_port不能马上接收;③在connect_phase中将各个组件的analysis_port和blocking_get_export与fifo的analysis_port和blocking_get_export连接起来;(uvm_analysis_port用来发送信息和blocking_get_export用来接收信息)scoreboradinput_agentreference_modleoutput_agentoagt2sb_fifoiagt2rm_fiform2sb_fifo④在build_phase中将成员变量和3个fifo作实例化。super.new(name,parent):执行父类的new函数,这里的父类是指uvm_drive。在这里面要指定两个参数:一个是string类型的name,这就是这个类的示例的名字;另一个是uvm_component类型的parent,以表明这个uvm_drive在uvm整个运行树中处于什么位置。调用uvm_config_db::get函数来得到从最顶层的module传递来的interface。analysis_portap用于把发送出去的数据通知给接收的组件

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功