错误(10023):在Conformal LEC模式下运行时无法使用综合指令或属性“read_comments_as_HDL”
某些Altera®知识产权(IP)(如Nios®II嵌入式处理器)使用综合指令read_comments_as_HDL打开和关闭,以指示Quartus®II集成综合使用注释的HDL代码进行综合。 IP使用这些指令以及综合指令translate_on和translate_off来指示不用于综合的HDL代码部分。
translate_on和translate_off指令通常在第三方工具中受支持,但是仅在Quartus II集成综合中支持onad_comments_as_HDL on和off指令。如果您在设计流程中使用Cadence Conformal LEC软件,Quartus II软件会在编译期间生成此错误,因为Conformal LEC工具不遵守这些指令。
此问题计划在Quartus II软件的未来版本中修复。
为避免此问题,如果不需要Cadence LEC但由于之前的项目设置而启用,请在Quartus II Settings对话框中选择<None>作为形式验证工具名称。如果形式验证是设计流程中的必需步骤,则必须编辑包含read_comments_as_HDL综合指令的所有IP源文件。
包含read_comments_as_HDL指令的文件,用于启用综合代码(但禁用它进行仿真),也使用综合translate_on和translate_off指令禁用综合代码(但启用它进行仿真)。
对于Verilog HDL设计,请执行以下步骤来编辑每个Verilog源文件:
- 找到一个综合translate_off指令的情况,然后相应的综合translate_on指令紧接着是read_comments_as_HDL on指令,然后是注释的代码行。
- 用`ifdef SIM替换综合translate_off指令。
- 用'else替换指令上的后续综合translate_on和read_comments_as_HDL。
- 在评论代码的每一行之前删除评论标签。
- 删除read_comments_as_HDL off指令(如果存在),并在注释行的末尾添加`endif。
- 对步骤1中描述的每种情况重复步骤1-5。
在如上所述编辑IP文件之后,在功能仿真脚本中使用编译器指令+ define + SIM来成功仿真设计。