我是靠谱客的博主 热情嚓茶,最近开发中收集的这篇文章主要介绍VMT model 简介,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. VMT model -- vera modeling technology model. 用vera语言写的,可以在vera或者verilog testbench中实例化。

 

2. 不管是基于VMM的环境,还是传统的verilog环境,testbench的toplevel还是verilog的。即用module... endmodule来描述。在VMM中test实质上就是定制并实例化test env。 toplevel testbench(harness)是由 test env + interface + dut 三部分构成。

 

 

3. VMT model的使用有如下两种流行的方法:

 

testbench control languageMethodologyHDL Top languageVIP execution
verilogcommandverilognative
system verilogVMMverilognative

 

4. vip的安装使用

  1. 用dw_vip_setup -i  home             查看DW中所有的VIP model和example
                              -i  design            查看当前目录下已经安装的VIP model
  2. 用dw_vip_setup -p 安装目录 -e  example_sys   -ntb      来创建基于vcs native的example system或vip model
                                                -a   model              -ntb
  3. 在testbench harness(toplevel) 中实例化 model

  4. complie the vcs

5. VMT command flow

 

 

 

 此外VMT model还会report各种event。testbench可以通过watchpoint来控制何时做出何种反应,例如设置watchpoint在VMT_MSG_ERROR时触发,testbench停止simulation并退出。Testbench 会有多个线程,每个线程都可以产生自己的command 序列。

 

5. Command queue

 

 

queueing 的使用可以实现pipeline以及split.

 

 

 

6. Queue 的管理

    1) block 的含义: 阻止下一条指令执行,直到本指令以及以上指令执行完毕。block时Queue不再接受command。

    2) queue的含义: 保证了执行顺序,一旦某时刻通过new_stream创造了新的command stream,则产生了

          相应的新的command queue。在这个时刻,队列管理器将这个新的队列设置为active,其他的queue设置为pending,

          直到active的queue中的command全部执行完毕退出,其他队列才重新置为active。  (总之:类似于中断嵌套)

 

 

6. 总结

  • 所有 non-queued command 都是 zero-cycle command
  • command stream 和 command queue 一一对应
  • 每个 command channel 每次只能有一个 queue 是active的,queue的管理,参照中断嵌套。
  • 所有的 command stream在任何时候都可以接受command,即使自己不是active queue
  • 当开关VMT_FORCE_CMD_BLOCKING 设为 ON 时,所有的command都是blocking command
  • 各个command channel彼此独立,可以同时执行各自的任务。

7. VMT model 的使用

     1) message 控制

           type, format,routing,filtering, messageID

 

     2) watchpoint

           触发事件:  message Type, messageID, notificationID。 事件的触发和 这些message 是否disable没有关系。

           例子:

          

 

        3)manage result data

         即如何释放memeory

 

        4) stream blocking command

         用于branch 和 sync up

      

        5) create pipeline command

       

最后

以上就是热情嚓茶为你收集整理的VMT model 简介的全部内容,希望文章能够帮你解决VMT model 简介所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部