概述
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 language | Methodology | HDL Top language | VIP execution |
verilog | command | verilog | native |
system verilog | VMM | verilog | native |
4. vip的安装使用
- 用dw_vip_setup -i home 查看DW中所有的VIP model和example
-i design 查看当前目录下已经安装的VIP model - 用dw_vip_setup -p 安装目录 -e example_sys -ntb 来创建基于vcs native的example system或vip model
-a model -ntb - 在testbench harness(toplevel) 中实例化 model
- 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 简介所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复