DesignWare VIP 的 define 文件

本文深入探讨了DWVIP代码中define文件的使用方式,包括ifdef的运用、宏定义的分类与作用、用户自定义宏的规则及应用实例。详细介绍了AHB、VMT相关定义文件的作用与相互关系,以及如何在不同层级的文件中正确引用这些定义,以优化代码的可读性和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用过DW VIP的童鞋们一定会感受到里面一堆define文件的痛苦,下面就粗略的谈谈和define相关的知识。

1. VIP原代码中大量运用了ifdef , 即意味着如果外界定义了某宏则使用外界最终定义的宏,否则使用内部预定义的default值。这里支持redefine。

2. 外界预定义的宏放在 include/verilog 目录下,主要如下:

      AhbMasterDefines.inc          // 定义了master VMT相关的command的参数

      AhbSlaveDefines.inc            // 定义了Slave VMT相关的command的参数

      AhbMonitorDefines.inc        // 定义了Monitor VMT相关的command的参数

      AhbBusDefines.inc              // 定义了bus中各个master,slave,monitor 相关信号的位置编号

      以上头文件,都会include AhbCommonDefines.inc 这个共同的头文件。

      AhbCommonDefines.inc 定义了部分AHB信号的位置编号, 他include了AmbaCommonDefines.inc (这个头文件也定义了AHB剩余信号的位置编号)

   

     此外还有VmtDefines.inc  定义了VTM related control such as memory pattern,message pattern,watch point

 

3. 用户如果需要重新定义位宽等变量(在AhbCommonDefines.inc中有定义),需要在include AhbCommonDefines.inc 后 在include  User redefined 头文件。

 

4. interface 定义文件 include AhbCommonDefines.inc 就可以了。

   

5. 整个testbench中可以用上 VmtDefines.inc  AhbCommonDefines.inc (AhbMasterDefines .inc , AhbXXXDefines.inc 视情况考虑)。   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值