原创 引导语句“//……”在synopsys DC中的用途

2007-10-23 19:54 4482 4 6 分类: FPGA/CPLD

以前一直没弄懂,以为就是个简单的注释完事,原来还可以用来引导综合过程:


设计者在写设计代码时,有时可能针对仿真写一些语句,这些语句可能是不为DC所接受,也不希望DC接受;设计者如果不对这些语句进行特殊说明,DC读入设计代码时就会产生语法错误。


另一种情况是,设计者在写设计代码,有些设计代码是为专有的对象写的(如公司内部),这些专有的设计代码可能不希望被综合。


Synopsys提供了引导语句,设计者可以使用这些引导语句控制DC综合的对象。
在设计代码中,引导语句“// synopsys translate_off”后直到“// synopsys translate_on”之间的语句被DC忽略。下面的例子给出了这两个引导语句的用法。

举例:
// synopsys translate_off
`ifdef XXXX


// synopsys_translate_on
    `define VENDOR_ID 16'h0083
// synopsys_translate_off
`else
    `define VENDOR_ID 16'h0036
`endif
// synopsys_translate_on



parallel_case 和full_case引导格式
一般情况下,DC把case语句综合成选择器电路,但也可能把case语句综合成优先权译码电路。有时,优先权译码电路是不必要的,这是可以使用“// synopsys parallel_case”引导语句强迫DC把case语句综合成选择器电路。这种引导格式在case状态声明没有完全列举时应用较多。

举例:
always @(cs_state)
begin
    case(cs_state) // synopsys parallel_case
          2'b00: next_state = 2'b01;
          2'b01: next_state = 2'b00;
          2'b10: next_state = 2'b10;
          default: next_state = 2'b00;
    endcase
end

在case语句中,如果列举的条件不完全,DC将生成不必要的锁存单元。在状态机描述中,可能没有一些状态,此时如果不加声明,DC将认为条件没有完全列举。在这种情况下,设计者可以使用full_case引导语句。



举例:
always @(cs_state)
begin
    case(cs_state) // synopsys full_case
        2'b00: next_state = 2'b01;
        2'b01: next_state = 2'b00;
        2'b10: next_state = 2'b10;
    endcase
end

文章评论4条评论)

登录后参与讨论

用户55520 2011-10-26 09:08

好。。。。

ash_riple_768180695 2007-10-25 12:06

我在Quartus里也遇过类似问题:Avalon_Microsequencer初步调试成功。这玩意功能强大,就是可读性差,神出鬼没的。

用户1113192 2007-10-24 21:54

工具是 synopsys DC  linux下的非常优秀的DC 可能Altera的设计都是synopsys DC验证得来的。当然Quartus ISE Modelsim Synplify 可能不认,做条件编译是绝对不合适的,这是synopsys DC的专有命令/

ash_riple_768180695 2007-10-24 11:57

问题在于综合工具可以识别的指导语句,仿真工具不能识别。造成仿真结果与综合后的行为不一致。还是要从代码上下功夫,这种指导语句偶尔用一下无妨,用多了就不是个好习惯。

ash_riple_768180695 2007-10-24 11:33

慎用啊,刚看完一篇文章,讲的就是这个问题。
相关推荐阅读
用户1113192 2011-02-09 17:26
2011 新的一年 共同进步
空间荒废了一年了,今天打开了 呵呵  还在。 真是对不起各位大侠了。有需求发我邮箱吧。wwh_nuaa@163.com.   明天开始上班了。祝大家心情愉快。大展宏图。...
用户1113192 2009-05-27 15:05
高级加密标准(AES)算法
高级加密标准(AES)算法...
用户1113192 2009-05-27 14:59
分组对称加密模式:ECB/CBC/CFB/OFB缺CTR- -
分组对称加密模式:ECB/CBC/CFB/OFB缺CTR- -                                       【虎.无名】一般的加密通常都是块加密,如果要加密超过块大小的...
用户1113192 2009-05-27 14:57
基于AES算法的WLAN安全机制分析
基于AES算法的WLAN安全机制分析Performance Analysis of AES-Based WLAN Security刘永元,张联峰,刘乃安摘要:高级加密标准(AES)加密算法Rijnda...
用户1113192 2009-05-23 14:27
工作日志
 xilinx 11.1 update pdf ...
用户1113192 2009-05-18 08:33
图文并茂VLAN全接触
https://static.assets-stash.eet-china.com/album/old-resources/2009/5/18/3f8b27e9-5417-46f5-897f-dc13...
我要评论
4
4
关闭 站长推荐上一条 /2 下一条