内容
- 写验证计划需要参照design spec
AHB-SRAMC功能验证计划
SVTB架构图
验证平台目录结构
ahb_sramc_svtb
doc - 文档
rtl - dut
verif - 验证代码
env
agent
sim
tb
test
如何编写SVTB
Makefile
filelist
SVTB TOP
svtb:
1.根据spec需要的时钟定义时钟hck和sram_clk并通过forever产生时钟信号
2.例化interface接口,将时钟传入
3.例化dut,连接接口,信号通过接口获取
4.例化testcase模块,传入接口
ahb_slv_if
ahb_slv_if:
1.定义所有的输入输出信号 - logic类型及位宽
2.定义clocking xxx endclocking
不容模块使用的信号分别定义在不同的clocking中
clocking中针对不同模块的信号指明是input或者是output,并且指明同步的时钟和有效沿
对于driver - 信号输出信号
对于monitot - 信号是输入信号
3.定义modport
在clocking block中定义了信号的输入输出
可以在modport中直接例化clocking
testcase模块
1.使用program automatic xxx定义testcase模块
将接口中的driver modport例化传入
2. 声明 generator句柄并例化generator
3. 声明 driver句柄并例化driver
4. 调用rest() task,初始化复位信号然后释放复位信号
5. 调用generator和driver的start()函数
generator class
- genrator的构造函数需要传入两个参数一个是name,另一个是产生pkt的数量,number_packets
- generator中定义了一个信箱,信箱的类型是ahb_slv_pkt类型,在创建generator对象的时候会自动调用new函数创建一个信箱,这个信箱可以给到driver使用
driver
- driver的构造函数需要传入name,mailbox以及接口
- driver内部定义了一个虚接口,用于连接实际的接口
ahb_slv_pkt
1.定义随机变量
2.定义约束
ahb_slv_pkt_driver_base