zoukankan      html  css  js  c++  java
  • 编译器指示语句

     

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

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

    Synopsys提供了引导语句,设计者可以使用这些引导语句控制DC综合的对象。

    1.4  编译器指示语句

    有时,可以利用HDL描述中的一些特定的注释语句来控制综合工具的工作,从而弥补仿真环境和综合环境之间的差异,这些注释语句称为编译器指示语句(Compiler Directives)

    1.4.1  Verilog编译器指示语句

    1)      translate_off/ translate_on

    这组语句用来指示DC停止翻译 “//synopsys translate_off”之后的Verilog描述,直至出现 “//synopsys translate_on”。当Verilog代码钟含有供仿真用的不可综合语句时,这项功能能使代码方便地在仿真工具与综合工具之间移植。

     

    1-3translate_off/ translate_on指示语句的使用):

    //synopsys translate_off

    /*仅供仿真用语句

       ……

    */

    //synopsys translate_on

    /*可综合语句

      ……

    */

     

    2)      parallel_case/ full_case

    DC可能使用带优先级的结构来综合Verilogcase语句,为避免这种情况,可以使用“//synopsys parallel_case”指示DCcase语句综合为并行的多路选择器结构。

     

    1-4parallel_case指示语句的使用):

    always @ (state)

        begin

            case (state)    //synopsys parallel_case

                2’b00:        new_state = 2’b01;

                2’b01:        new_state = 2’b10;

                2’b10:        new_state = 2’b00;

                default:       new_state = 2’b00;

            endcase

        end

    另外,Verilog允许case语句不覆盖所有可能情况,当这样的代码由DC综合时将产生锁存器。为避免这种情况,可以使用 “//synopsys full_case”指示DC所有可能已完全覆盖。

     

    1-5full_case指示语句的使用):

    always @ (sel or a1 or a2)

        begin

            case (sel)    //synopsys full_case

                2’b00:    z = a1;

                2’b01:    z = a2;

                2’b10:    z = a1 & a2;

            endcase

        end

     

    1.4.2    VHDL编译器指示语句

    1)      translate_off/ translate_on

    作用同Verilog,注意需要使用符合VHDL语法的注释:

    --synopsys translate_off

    --synopsys translate_on

    也可以使用:

    --pragma translate_off

    --pragma translate_on

    需要注意的是,在VHDL中使用了以上编译指示语句后,DC仍会对translate_off/on之间的描述进行语法检查,若想避免这一点,可以改变以下变量的值:

    hdlin_translate_off_skip_text = true

    2)      synthesis_off/ synthesis_on

    其作用和语法均类似于translate_offtranslate_on,只是它的作用不受上述变量控制。

     

  • 相关阅读:
    [轉][Windows] 已啟用Win7遠端桌面,從家中連回去卻無法連線?
    [轉]False SQL Injection and Advanced Blind SQL Injection
    SQL Injection with INFORMATION_SCHEMA (Mysql)
    Exploiting hard filtered SQL Injections
    Mysql 5 以上有内置库 information_schema,存储着mysql的所有数据库和表结构信息
    12个月内自学完成4年麻省理工学院计算机科学的33门课程的scotthyoung所谓的超速学习理论&方法(费曼技巧)?
    SQLi filter evasion cheat sheet (MySQL)
    [轉]字符形注入
    [轉]渗透测试必备Firefox全套渗透装
    Phpexcel範例
  • 原文地址:https://www.cnblogs.com/god_like_donkey/p/1526655.html
Copyright © 2011-2022 走看看