WB_CAN项目验证笔记

WB_CAN项目介绍

该模块是飞利浦(PHILIPS)的独立CAN控制器SJA1000,一般用于工业环境中的局域网络控制。SJA1000是一种I/O设备基于内存编址的微控制器。它支持2种模式:BasicCAN模式和PeliCAN模式。复位默认模式是BasicCAN模式。PeliCAN模式支持CAN 2.0B协议规定的完整功能。

SJA1000的主要功能:

  • 标准帧(standard frame)和扩展帧(extended frame)发送和接收
  • 接收FIFO(64-byte)
  • 在标准和扩展格式中都有单/双验收滤波器(含屏蔽和代码寄存器)
  • 读/写访问的错误计数器等

CAN模块采用了WISHBONE BUS接口访问控制寄存器,该接口可传输时钟、复位、8位地址/数据、使能等信号。在验证环境中,我们采用了一个AHBtoWISHBONE的Bridge,AHB VIP通过bridge与CAN对接,来访问CAN的寄存器。另一方面,DUT与CAN VIP的接口主要有RX和TX等信号。

CAN模块的7个子模块:

1、接口管理逻辑(IML):解析来自AHB的指令,控制CAN寄存器寻址,提供中断信息和状态信息。
2、发送缓冲器(TXB):与BSP(位流处理器)连接,存储发送到CAN网络上的信息。缓冲器长13个字节,由AHB总线写入、BSP读出。
3、位流处理器(BSP):是一个在发送缓冲器、RXFIFO和CAN总线之间控制数据流的程序装置。
4、验收滤波器(ACF):把它其中的数据和接收的识别码内容相比较,以决定是否接收信息。
5、接收缓冲器(RXB,RXFIFO):是验收滤波器和AHB之间的接口,用来储存从CAN总线上接收信息。接收缓冲器(RXB,13个字节)作为RXFIFO(RXFIFO,长64字节)的一个窗口。
6、位时序逻辑(BTL):监视串口的CAN总线和处理与总线有关的位时序。
7、错误管理逻辑(EM):负责传送层模块的错误管制、进行错误统计。

CAN模块主要的4个寄存器:

1、控制寄存器(CR):复位请求(RR)、发送/接收中断使能等信号。
2、命令寄存器(CMR):对外部控制器是只写存储器,读值固定1111_1111。主要有发送请求(TR),释放接收缓冲器(RRB)等信号。
3、状态寄存器(SR):对外部控制器是只读存储器。主要有接收缓冲器状态(RBS)、发送缓冲器状态(TBS)、接收状态(RS)、发送状态(TS)等信号
4、中断寄存器(IR):对外部控制器是只读存储器,被读后所有位复位。主要有接收中断(RI)、发送中断(TI)、数据溢出中断(DOI)等信号。

验证思路

1、先要针对寄存器的模块,接口时序的满足与否。先针对这两部分写测试用例
2、再针对模块的功能,寄存器每个比特位的控制位去写测试点。

在冒烟测试中,首先对寄存器进行读写测试,主要针对控制寄存器和命令寄存器。然后,分别在BasicCAN模式和PeliCAN模式,测试CAN发送和接收数据帧、远程帧、错误帧、过载帧。此处,发送是指CAN模块向CAN VIP发送,接收是指CAN模块从CAN VIP端接收信息。

在发送缓冲器状态为满或空时进行测试。在发送缓冲器状态满时,继续发送数据,观察设计行为是否符合协议。

测试接收缓冲器状态为满或空时的行为。当CAN VIP不断向CAN发送数据,观察接收缓冲器是否会标记溢出的数据,并观察中断寄存器的状态。当接收缓冲器释放所有数据后,检查缓冲器为空的状态。

此处是难点:一是需要理解清楚数据发送或接收的时序安排;二是需要理解清楚如何读取检查各个寄存器的状态值;三是需要理解如何建立检查模型,模拟发送缓冲器、接收缓冲器、接收FIFO的行为。

测试验收与屏蔽码的功能,验证在ID接受范围内、外的数据传输与比对情况。
搭建2个CAN模块和2个CAN VIP参与的Multi-CAN测试环境,测试该环境发送和接收数据的功能。

绘制验证环境结构

在这里插入图片描述

在顶层完成DUT的例化和端口连接,利用了UVM CONFIG机制,将接口set到test层。

在test层get到顶层传递过来的接口配置,再将config去set到env层。
在env层,创建AHB Master Agent、CAN VIP Agent、Virtual sequencer、Scoreboard、predictor、adapter、register model等,并完成它们之间的连接。

在scoreboard中,创建参考模型,处理由monitor传递过来的数据,完成数据比对。

覆盖组,主要涵盖发送和接收各种帧数据模式,如标准帧/扩展帧、数据帧/远程帧等;寄存器地址的访问、状态寄存器bit位覆盖、发送/接收中断、溢出/错误中断等。

——路科验证项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值