news 2026/10/26 9:49:08

HDL Compiler:translate_on/translate_off综合指令的使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HDL Compiler:translate_on/translate_off综合指令的使用

相关阅读

HDL Compilerhttps://blog.csdn.net/weixin_45791458/category_12893238.html?spm=1001.2014.3001.5482


综合指令(Synthesis Directives)是一些特殊注释,用于影响综合工具如何处理RTL代码,这些注释会被综合工具识别,但会被其他工具(如仿真器)忽略。关于综合指令相关概念的更多介绍,可以参考下面的博客。HDL Compiler:综合指令https://chenzhang.blog.csdn.net/article/details/148695750

translate_on/translate_off综合指令用于指定某些RTL代码只用于仿真,而不会被综合工具考虑,一般用于如下所示的不可综合代码。

对于verilog

  • primitive定义
  • time定义
  • event定义
  • triand、trior、tri1、tri0、trireg定义
  • 对integer类型使用域选
  • initial语句
  • repeat语句
  • 延迟控制(#)
  • 事件控制(@event)
  • forever语句
  • fork语句
  • force语句
  • release语句
  • deassign语句
  • 精确相等===和精确不相等运算符!==

下面举例说明translate_on/translate_off指令的用法,该指令的语法如下所示。

// synopsys translate_off ***** // synopsys translate_on

考虑例1所示的RTL代码,其中使用了initial语句进行了初始化。

// 例1 module dff_with_initial ( input clk, input d, output reg q ); initial q = 1'b0; always @(posedge clk) q <= d; endmodule

读取设计时,HDL Compiler将产生以下的警告。

Warning: /home/zhangchen/Multiplier_Booth_STG_0/translate.v:7: The statements in initial blocks are ignored. (VER-281)

使用translate_on/translate_off指令可以使HDL Compiler读取设计时忽略其中的RTL代码,如例2所示。

// 例2 module dff_with_initial ( input clk, input d, output reg q ); // synopsys translate_off initial q = 1'b0; // synopsys translate_on always @(posedge clk) q <= d; endmodule

其实现在translate_on/translate_off指令即将被弃用,Synopsys推荐使用预定义宏SYNTHESIS和条件编译指令`ifdef、`ifndef、`else和`endif指定综合器需要忽略的RTL代码。

// 例3 module dff_with_initial ( input clk, input d, output reg q ); `ifndef SYNTHESIS initial q = 1'b0; `endif always @(posedge clk) q <= d; endmodule
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/26 9:46:22

【GATT】规范精讲[5]: 知道句柄就开口要——特征值五种读法与描述符回读全流程

发现流程走完,属性表的地图已经在客户端内存里铺开了:哪个服务占哪段句柄、每个特征的声明句柄和值句柄分别是多少、后面挂着哪些描述符。但地图不等于货物。真正要拿到温度、电量、设备名这些业务数据,客户端还得主动开口向服务器要——这就是读(Read)类过程要解决的问题…

作者头像 李华
网站建设 2026/10/26 9:44:22

【Windows 常用工具系列 15 -- VMWARE ubuntu 安装教程】

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/26 9:43:40

SPI与I2C总线解析:从原理到调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/26 9:43:09

IGBT失效分析实战:过压、短路与栅极驱动故障全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华