Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8176
  • 博文数量: 1
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-10 09:41
文章分类
文章存档

2010年(1)

我的朋友
最近访客

分类: 嵌入式

2010-10-10 09:48:49

1. 库下载地址:
2. OVL 官方网站:   上面有简单的使用说明
OVL 是一个硬件验证的库,例如 现在想开发一个 AXI 的 master, ARM 提供了这个协议的基于 OVL 的验证代码, 也就是你这边 master 的信号全部接到ARM OVL 验证代码中去, 在 OVL 那个验证代码中,会看握手的时机对不对, 还有有些信号出现的时间点对不对等。具体的实现是: OVL 库提供接口,那边有一堆的 module 文件, 在OVL 验证文件中,针对具体的协议,调用这些接口,例如下面的文件:
 

assert_transition #(`OVL_ERROR, 4, `OVL_ASSERT, "hello, see me !! ") u_fsm_2 (tck, trst_n, state, `Test_Logic_Reset, `Capture_DR);

 
 
这个 assert_transition 是 OVL 库中的 moudule, 这个意思是: 从 Test_Logic_Reset 必须转到 Capture_DR, 这里:
 tck 时钟, trst_n 复位, state 测试状态机的状态, 后面2个是常数;
相当于在验证文件中,调用OVL库的 module 做检查, 类似 C语言的 assert 函数了,如果出错 会有一些信息打印出
说说怎么使用吧, modelsim 中建立自己的 work lib
在菜单 compile -> Compiler Options 里面针对自己的语言选,例如: Verilog 选项卡,加入如下的选项:
通过 Extension 加入:
+libext+.vlib
+libext+.v
通过 Macro 加入:
+define+OVL_ASSERT_ON
+define+OVL_MAX_REPORT_ERROR=2
通过include dir 加入:
+incdir+F:/Test/std_ovl
+incdir+F:/Test
通过 library search 加入:
-y F:/Test/std_ovl
本文中使用的 ver 2.5,  路径在 F:/Test/std_ovl
另外, 把 modelsim.ini 文件中:
; vopt flow
; Set to turn on automatic optimization of a design.
; Default is on
VoptFlow = 1          ; 改成0, 以免仿真的时候有些信号被优化掉了;
 that all~~ 

阅读(4115) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~