如何在没有合成错误的情况下为模块分配延迟?

以下是一个示例Verilog代码,它在myand模块的实例化“inst”中分配1个时间单位的延迟:

myand#1 inst(a,b,z);

当用户将该代码放入综合时,Synplify Pro或Lattice Synthesis Engine认为用户正在传递参数,如下面的错误所示:

@E:CG624:“C:\ my_project \ top.v”:9:2:9:5 |实例参数分配太多
@结束
进程耗时0h:00m:01s实时,0h:00m:01s cputime
#Thu Aug 23 15:45:36 2012
##################################################
#########]
合成退出2。

完成:错误代码2

只要你有“#< VALUE>”

在模块实例化名称和模块名称之间,综合工具将其转换为参数。
解决方法是在延迟周围放置translate_off和translate_on语句。
以下代码是变通方法的示例:
myand
/ * synthesis translate_off * /

#1 。/ *综合translate_on * / 。inst(a,b,z);
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-27 11:51:40 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它