可以利用hdl描述中的一些特定的注釋語句來控制綜合工具的工作,從而彌補**環境和綜合環境之間的差異,這些注釋語句稱為編譯器指示語句。
verilog編譯器指示語句
1. translate_off/ translate_on
這組語句用來指示dc停止翻譯 「//synopsys...translate_off」之後的verilog描述,直至出現 「//synopsys translate_on」。當verilog**鐘含有供**用的不可綜合語句時,這項功能能使**方便地在**工具與綜合工具之間移植。
例1(translate_off/ translate_on指示語句的使用):
//synopsys translate_off
//synopsys translate_on
2. parallel_case/ full_case
dc可能使用帶優先順序的結構來綜合verilog的case語句,為避免這種情況,可以使用「//synopsys...parallel_case」指示dc將case語句綜合為並行的多路選擇器結構。
(parallel_case指示語句的使用):
always @ (state)
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
另外,verilog允許case語句不覆蓋所有可能情況,當這樣的**由dc綜合時將產生鎖存器。為避免這種情況,可以使用「//synopsys full_case」指示dc所有可能已完全覆蓋。
例2(full_case指示語句的使用):
always @ (sel or a1 or a2)
case (sel) //synopsys full_case
2』b00: z = a1;
2』b01: z = a2;
2』b10: z = a1 & a2;
endcase
編譯器之語義分析
semantic 語言的意義 編譯器的語義分析階段將變數與其用法關聯起來,檢查每個表示式是否有正確的型別,還有,將抽象的語法翻譯成更簡單的形式以 方便生成機器語言 碼 符號表將識別符號和其型別 位置關聯起來,當我們去處理變數,函式的宣告時,就是將這些資訊組織 繫結 起來,放在表裡,當需 要知道這些函...
編譯器之語義分析
semantic 語言的意義 編譯器的語義分析階段將變數與其用法關聯起來,檢查每個表示式是否有正確的型別,還有,將抽象的語法翻譯成更簡單的形式以 方便生成機器語言 碼 符號表將識別符號和其型別 位置關聯起來,當我們去處理變數,函式的宣告時,就是將這些資訊組織 繫結 起來,放在表裡,當需 要知道這些函...
Linux 編譯器之 GCC
編輯器是指我用它來寫程式的 編輯 而我們寫的 語句,電腦是不懂的,我們需要把它轉成電腦能懂的語句,編譯器就是這樣的轉化工具。就是說,我們用編輯器編寫程式,由編譯器編譯後才可以執行!gcc gnu compiler collection,gnu 編譯器套件 是由gnu開發的程式語言編譯器。gcc 原本...