SVTB SRAMC - 2

内容

  • 写验证计划需要参照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



posted @ 2024-03-11 18:23  Icer_Newer  阅读(29)  评论(0编辑  收藏  举报