(数字ic验证)从零开始的apb_watchdog验证模块搭建(一、功能介绍与环境搭建)

apb_watchdog验证模块搭建(一)文章目录



前言

本文介绍了apb_watchdog验证模块的搭建过程与其具体代码,主要包括其中验证环境的构建,测试序列的发送与回归测试收集。主要运用systemvorilog与uvm在已有apb2总线vip(来源路科验证)的基础上进行验证测试,仿真验证工具为vcs。本项目的设计代码由路科验证提供。

一、apb_watchdog简单功能介绍

关于apb_watchdog的具体功能可以参考arm提供的设计功能描述文档**《Cortex™-M System Design Kit》**其中第四节component部分对apb_watchdog进行了详细介绍。下文对其主要功能进行简单介绍,具体功能与寄存器描述将在后文验证中提到。

下图为apb_watchdog接口,左侧接口为apb2总线接口(从信号方向可知其为从端),通过总线端的数据传输完成对watchdog的寄存器进行功能配置,右侧为watchdog本身接口。

watchdog为一个32bit逐减计数器,由重载寄存器初始化,WDOGLOAD。当watchdog计数器减少到预计的数值时,输出端WDPGINT将拉高,输出中断信号。

在WDOGCLKEN信号为高时,计数器会在每个WDOGCLK的上升沿减一。计数到0时,若此时WDOGCONCROL寄存器部分的INT域与RES域为高则使能reset与interrupt功能。即输出中断信号并且watchdog会安装WDOGLAOD中预定值进行重置。若WDOGCONTROL域中有未使能的情况则回等待重置或无法输出中断。
图1.1 apb_watchdog接口

二、测试平台环境搭建

1.测试所用模板介绍

利用gvim可以创建与打开文件如下:
vorilog文件夹中存放设计代码。
uvm文件夹中存放验证代码与其环境结构。
cfg为配置文件,由顶层basetest创建,其中包括一些配置信息,也可将interface,regmodel打包传入。
env为验证环境部分,主体为pkg,env与virtual sequencer
reg为寄存器模型
seq_lib为存放测试用例sequence文件夹
sim为仿真文件夹
tb为testbench与interface文件夹
test用以存放不同测试文件
vip_lib中存放了apb2总线的vip
在创建模板时,除vip部分其他基本为空
在这里插入图片描述

2.tb与interface

interface代码:


interface rkv_watchdog_if;

  logic [3:0] ecorevnum = 4'b1011;
  logic       wdogint;
  logic       wdogres;
  logic   	  apb_clk;
  logic 	  apb_rstn;
  logic	      wdg_clk;
  logic	      wdg_rstn;
endinterface 

tb中提供了apb与watchdog的时钟与复位信号,以及wdogint与wdogres。ecorevnum是注册修订号,赋值即可。

tb代码:




module rkv_watchdog_tb;
  import uvm_pkg::*;
  `include "uvm_macros.svh"
  import rkv_watchdog_pkg::*;

bit apb_clk;
bit apb_rstn;
bit wdg_clk;
bit wdg_rstn;

cmsdk_apb_watchdog dut(
  .PCLK(apb_clk),                         // APB clock
  .PRESETn(apb_rstn),                     // APB reset
  .PENABLE(apb_if_inst.penable),          // APB enable
  .PSEL(apb_if_inst.psel),                // APB periph select
  .PADDR(apb_if_inst.paddr[11:2]),        // APB address bus
  .
DW_apb_uart验证功能点是指对DW_apb_uart模块进行测试和验证时要检查的功能点。根据所提供的参考内容,可以得出一些可能的功能验证如下: 1. 波特率设置:验证DW_apb_uart模块是否能够正确设置和支持不同的波特率,例如9600或115200。 2. 传输速率:验证DW_apb_uart模块是否能够按照设定的波特率进行正确的数据传输,即每秒钟传输的二进制位数是否符合设定的值。 3. 数据传输准确性:验证DW_apb_uart模块是否能够准确地传输数据,包括发送和接收数据的准确性,以及数据的顺序是否正确。 4. UART接口标准规范支持:验证DW_apb_uart模块是否符合UART接口标准规范,如RS232、RS499、RS423、RS422和RS485等,以确保其在嵌入式设备中的兼容性和稳定性。 5. 错误检测和处理:验证DW_apb_uart模块是否能够正确地检测和处理传输过程中的错误,如校验错误、数据丢失等。 6. 中断和DMA支持:验证DW_apb_uart模块是否能够正确地支持中断和DMA功能,以提高数据传输的效率和响应速度。 7. 帧格式支持:验证DW_apb_uart模块是否能够支持不同的帧格式,如数据位、停止位、校验位等的设置和识别。 总之,DW_apb_uart验证功能点是为了确保该模块在实际应用中能够正常、稳定地进行数据传输,并符合相关的接口标准和要求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [uart项目验证(一)-uart协议与uart ip的理解](https://blog.csdn.net/whddddddddddd/article/details/125091050)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值