从零搭建UVM验证平台 简介


搭建UVM流程:

  1. 定义interface。Interface是连接DUT和验证平台的桥梁,根据DUT的输入输出参数定义interface,在top_tb里连接interface和DUT。

  2. 加入transaction。transaction是一个数据包,transaction由sequence产生,通过sequencer传递给driver。

  3. 加入driver。Driver负责将接收到的transaction数据包驱动到DUT上。

  4. 加入monitor。monitor一般有两个,分别用来检测DUT的输入和输出。i_monitor用于收集DUT的输入传递给reference model,o_monitor用于收集DUT的输出传给scoreboard。

  5. 加入sequencer。

  6. 将sequencer、driver、monitor封装成agent,agent是可复用的最小单元。

  7. 加入reference model。reference model用于完成和DUT相同的功能,reference model的输出传递给scoreboard,用于和DUT的输出做对比。

  8. 加入scoreboard。scoreboard要比较的数据一是来源于reference model,二是来源于o_agent的monitor。前者通过exp_port获取,后者通过act_port获取。

  9. 加入sequence。

  10. 加入env。将scoreboard、agent、reference model添加到env,并通过TLM完成之间的通信。

  11. 建造测试用例。加入base_test (uvm_test_top),将env添加到base_test,base_test派生于uvm_test,测试用例tc都是基于base_test派生的一个类。

  12. 在top_tb里面添加run_test()来启动tc。

  13. 构建Makefile。

    仿真工具:vcs
    编译:make cmp
    仿真:make run

posted @ 2024-11-20 10:23  漫不经心的  阅读(9)  评论(0编辑  收藏  举报