完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
4个回答
|
|
什么是宏?
术语"宏"是指替换一行或几行文本代码。使用指令"'define"为替换代码创建宏。宏一旦定义后,它可以在编译单元范围内有需要的任意位置使用。 它可以用 (') 字符后跟宏名称调用。可以使用参数定义宏。参数可用于自定义宏以广泛使用,如函数任务。可以使用默认值定义此类宏参数,这样,如果 DV 工程师不传递任何特定值,宏将替换默认值。 |
|
|
|
宏示例
单行宏: 如上面的示例代码所示,宏"val"和"addition"是单行宏。 多行宏: 上述代码是多行宏的示例。如上所述,对于多行宏,新行前面有一个反斜杠"/"。如果行的反斜杠不存在,则它被视为宏的最后一行。反斜杠将不存在于使用宏和替换实际宏代码的实际代码中。 注意:行末的斜杠"/"后不应有空格或字符,否则编译器会报错。 |
|
|
|
根据以下三个特殊字符(引号)的用法以及参数定义宏的可能语法,它替换的实际代码具有不同的含义。可以使用以下三个引号形成所有可能的宏:
1. “``” (两个撇号) "''"的引用可以用于给定的参数形成信号/变量名称。 示例: 宏定义: 宏的用法: 宏替换的实际代码 : 我们可以看到 ARG1 = 3 用于形成变量的名称。(即m_mst_3和mst_3_lcl) 2. “`” “(撇号后跟双引号) “`” “的引用可用于将参数解释为字符串。 示例: 宏定义: 宏的用法: 宏替换的实际代码: We can see the ARG1 is replaced with string name “a” in the $display statement. 我们可以 在显示语句中看到 ARG1被替换为字符串名称"a"。 3. "`/`" "(撇号后跟反斜杠,再撇号后跟双引号) “ `/`” “引用可用于转义序列替换参数。 示例: 宏定义: 宏的用法: 宏替换的实际代码: 我们可以看到,参数在执行$display行中被替换成了"reg_a",打印结果为“Reg name : “reg_a”, value:`hXYZ"。 下一节显示了用例场景的基本示例,其中宏可以根据 DV 的需求使用。此类宏的用法可以扩展到更多用例。 |
|
|
|
宏在覆盖点中的应用
如果 DV 工程师想要覆盖相同宽度的多个变量的 walk0/walk1 模式仓,那么他/她可以创建和使用宏,用于所有需要 walk1/walk0 模式仓覆盖的此类信号。 示例: 宏定义: 宏的用法: 宏在覆盖组中的的应用 很多时候,在验证项目中,需要在不同的位置编写相同的覆盖率,例如,主组件和从组件中的相同代码。我们可以为覆盖组定义通用宏,该宏可用于所有此类组件。 示例: 宏定义: 宏的用法: "STRING"是"bus_cg_macro"宏的参数。考虑到使用宏的"STRING"参数,将替换覆盖组、覆盖点及仓。 宏在SV断言中的应用 与覆盖率一样,在许多DV 项目中,我们有一些常见的断言,可以在多个位置和不同的组件中使用。 例如,在主机和从机中需要检查,信号值在没有重置时,是否在每个时钟周期中都会不断变化。我们可以定义一个宏,并在主机和从机中使用它。 宏定义: 宏的用法: 宏在测试案例中的应用 在自检寄存器写入/读取测试中,每次读取后,将针对预期的读取数据检查读取值。考虑到设计的复杂性,我们可能有多个块,对于每个块,我们可能有相应的寄存器测试。对于每个这样的测试,我们可以有一个通用的宏进行自检。 自检测宏: 宏的用法: 宏在程序块的应用 宏可以用以涵盖多个位置常见的过程块代码。 程序块中的宏: 宏的用法: |
|
|
|
只有小组成员才能发言,加入小组>>
852 浏览 0 评论
1181 浏览 1 评论
2557 浏览 5 评论
2889 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2744 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1166浏览 3评论
211浏览 2评论
481浏览 2评论
392浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
477浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-10 09:21 , Processed in 1.197777 second(s), Total 85, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号