基于基于C_Model的的UVM验证平台设计与实现验证平台设计与实现
随着集成电路规模和复杂度的提高,其验证工作也日益复杂和重要,验证周期己经达到甚至超过整个芯片设计
周期的70%,因此,急需找到一种高效的验证方法,以便提高验证效率,增强验证平台的可重用性。基于
SystemVerilog语言的 UVM 验证方法学可以有效提高验证效率,缩短验证周期。采用高层次的抽象模型
C_Model作为参考模型接入UVM平台,对数字基带处理单元中标签发送链路的编码模块进行验证,设计随机和
非随机的testcase,通过driver和monitor验证组件来发送、监测并收集数据,包括硬件设计RTL代码产生的数据
和参考模型产生的数据,然后将两数据送入设计的UVM计分板模块进行比对,从而实现对RTL的功能验证,验
证系统的优劣可通过功能覆盖率来体现。验证结果表明,UVM计分板中比对正确且功能覆盖率达到了100%。
0 引言引言
近几十年来,集成电路事业发展迅速,设计与工艺技术不断发展,更多和更复杂的功能被集成到一块芯片上。SoC的集成
度和复杂度大大提高,在IC设计中就容易引入错误,所以验证工作将变得艰巨。随着IC设计规模的增大以及设计周期的压缩,
传统验证技术已经不能再满足日益增长的验证需求,验证方法学应运而生,目前,UVM验证方法学已经成为应用最广泛的方
法学。
本文目的在于为数字基带处理单元中标签发送链路的编码模块搭建一个适当的、完善的验证平台,用来验证RTL代码的正确
与否。运用面向对象思想的UVM验证方法学和C语言进行平台的设计与实现,它能有效地缩短验证周期,提高验证效率,加大
芯片的面试可能性。
1 UVM验证方法学验证方法学
目前,主流的验证方法学有VMM、OVM和UVM。UVM基于System Verilog语言,具有VMM、OVM等诸多验证方法学的优
点,是一套高效、开源的验证方法学。UVM由Accellera标准组织推出,并得到了三大主流EDA供应商支持。
通用验证方法学(Universal Verification Methodology,UVM)是一个以SystemVerilog类库为主体的验证平台开发框架,可以
利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。
UVM平台架构主要是由通用验证组件(Universal Verification Component,UVC)构成。每个UVC都是功能完备、可配置、
封装好的验证环境。根据UVC功能的不同,可分为接口UVC(Interface UVC)和模块UVC(Module UVC)等。
由图1可知构成UVM环境的常见组件类如下:
(1)uvm_driver类:是从uvm_sequencer中获取事务(transaction),经过转化在接口中对DUT进行时序激励。diver类与
sequencer类之间的通信就是为了获取新的事务对象,这一操作通过pull方式实现:
driver.seq_item_port.connect(sequencer.seq_item_export);
driver.rsp_port.connect(sequencer.rsp_export);
(2)uvm_monitor类:用来监测数据。
(3)uvm_sequencer类:就像一个管道,从中传送连续的激励事务,并最终通过TLM端口送至driver一侧。
(4)uvm_agent类:用来封装一个driver、一个monitor和一个sequencer。
(5)reference_model:用于完成和DUT相同的功能。reference model的输出被scoreboard接收,用于和DUT的输出相比
较。
(6)uvm_scoreboard:用来进行数据比对和报告。
评论0