uart项目验证(三)-验证环境搭建(总)

本文详细介绍了基于UVM的UART模块验证环境搭建过程,包括sequence_lib、virtual_sequencer、uart_ctrl_env等组件的搭建,以及apb_uvc和uart_uvc的集成。在top层级进行了配置,并通过base_test进行了冒烟测试,确保环境基本功能正确。后续工作涉及配置文件、sequence的编写和仿真波形分析,以完成全面的验证环境构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、前言

2.整体环境搭建

1.1 sequence_lib

1.1.1 uart_ctrl_sequence_lib

1.1.2 virtual_uart_ctrl_sequence_lib

1.2 virtual_sequencer

1.3 uart_ctrl_env

1.4 top顶层搭建

1.4.1 top

1.4.2 pkg

 1.5 base_test

1.6 冒烟测试

 2 其他组件以及细节填充

2.1 配置文件config

2.2 增加sequence进行简单验证

2.3 更新virtual_uart_ctrl_sequence_lib

2.4 编写对应case

​编辑 3 仿真波形

4 结语 

1、前言

整个uvm学习完毕后,初步了解并搭建出简单的验证环境,故为一个uart模块搭建验证环境;该uart的具体实现及详细介绍可见这篇文章:UART项目验证(二) spec阅读

整个验证流程的架构框图如下,后面的验证环境将基于此图进行搭建:

 对于验证一个IP,首先要指定验证策略并提取验证点,做出相应的test plan,故为其指定如下文中介绍:UART项目验证(二) 验证策略和验证点提取

2.整体环境搭建

整个验证环境由三部分构成,我们使用了两个集成好的uvc,分别为apb_uvc与·uart_uvc,这两个部分都是已经集成好的,直接将其集成到我们的验证环境中去就可以。另外一部分主体验证环境uart_ctrl为我们需要配置的环境。

apb_uvc部分其中包括(代码就不一一贴出): 

uart_uvc部分其中包括(代码就不一一贴出):

uart_ctrl部分将整个验证架构最基本的部分搭建起来,其中包括apb发送数据到dut接收数据与dut发送数据,uart_uvc接收数据两条通路;搭建环境我们按照apb发送数据到dut接收数据这条通路先行搭建验证环境,该部分的正确搭建是后续添加uart_uvc的基础。

1.1 sequence_lib

整个验证环境包含apb_uvc以及uart_uvc,其中基础组件均已集成,可直接使用其中两个uvc的sequence,以及编写新的sequence

1.1.1 uart_ctrl_sequence_lib

 其中例化了apb_uvc以及uart_uvc的sequence;

1.1.2 virtual_uart_ctrl_sequence_lib

1.2 virtual_sequencer

virtual_sequencer中例化了 apb_uvc以及uart_uvc的两个sequencer

1.3 uart_ctrl_env

uart_ctrl_env中例化并声明了 apb_uvc以及uart_uvc的env实例

1.4 top顶层搭建

1.4.1 top

经提醒这里中断的连接可能是有问题的,但不知道怎么更正==,或者不考虑中断直接force成0 top中例化了两个interface以及dut,利用config_db将virtual interface传递给两个uvc对应的env中,然后运行case,产生了简单的复位以及时钟激励。

1.4.2 pkg

top中包含的pkg内部有各种公共文件。

 1.5 base_test

base_test中将uart_ctrl 中的env,virtual_sequencer,config进行创建连接以及声明,将uart_ctrl 中的virtual_sequencer连接到两个uvc分别的virtual_sequencer中,同时把两个uvc对应的config配置文件传递给对应的uvc。

1.6 冒烟测试

 至此整个验证环境的大框架就搭建好了,剩下的就是将剩余的每个组件写好,然后在environment中连接起来,并在top中调用即可。

进行冒烟测试,检查环境是否能正常运行

整个uvm验证环境树状结构打印成功,基本环境运行成功 

 2 其他组件以及细节填充

2.1 配置文件config

通过设置config中的参数来配置两个uvc的工作方式以及参数 

2.2 增加sequence进行简单验证

 编写了一个apb向dut写5笔数据的sequence进行环境验证

2.3 更新virtual_uart_ctrl_sequence_lib

将上面的sequence在virtual_uart_ctrl_sequence_lib中声明

2.4 编写对应case

 3 仿真波形

编写的apb2dut写入五笔数据的case成功写入 

4 结语 

至此这个验证环境搭建就结束了,通过本项目实战操练了uvm方法学的具体运用,同时自己搭建了简单的验证环境;但也存在一些问题,如对DUT理解不是很到位,导致验出来的波形不知道是DUT的bug还是本该如此,后续会对uart模块加强理解。

自己目前也只是初入茅庐,所以文章中不对的地方还敬请批评指正!需要学习的东西还是太多,但只要坚持学习,勤学多练,相信自己一定能够成功!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值