加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

淺談邏輯綜合之概述

09/20 11:45
4.6萬
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

什么是邏輯綜合

邏輯綜合是將較高抽象級(jí)別的設(shè)計(jì)(RTL)轉(zhuǎn)化為可實(shí)現(xiàn)的較低的抽象層級(jí)的設(shè)計(jì)的過程。就是將RTL轉(zhuǎn)化成門極網(wǎng)表的過程。

邏輯綜合過程可以針對(duì)時(shí)序、面積、可測(cè)性(DFT)、功耗(power)、運(yùn)行時(shí)間(run time)進(jìn)行優(yōu)化。

邏輯綜合的輸入文件:RTL(file list)、物理庫、時(shí)序庫、邏輯綜合flow、時(shí)序約束(clock、IO、異步設(shè)置等)、環(huán)境參數(shù)設(shè)置、upf(low power flow)。

邏輯綜合的輸出文件:netlist、sdc、ppa  report等。

邏輯綜合的EDA工具:Synopsys的DC(design  compiler)和Cadence的genus是廣泛使用的邏輯綜合工具。

DC邏輯綜合分為三個(gè)主要過程:翻譯(Translation)+邏輯優(yōu)化(logic optimization)+門級(jí)映射(mapping)。

邏輯綜合的目標(biāo)

獲得門級(jí)網(wǎng)表;插入時(shí)鐘門控;邏輯優(yōu)化、插入DFT邏輯;保持RTL和Netlist之間的邏輯等效性。

邏輯綜合的輸入和輸出文件

輸入:RTL、library、Constraints、UPF(power intent);

輸出:Netlist、Report(Qor、Area、Timing等),UPF等

HDL文件生成和庫

HDL文件(以VHDL或Verilog或SystemVerilog編寫);HDL分區(qū)和coding style會(huì)影響邏輯綜合和邏輯優(yōu)化過程;library基于所使用的的工藝制程。

庫有不同的分類:目標(biāo)庫、單元庫、符號(hào)庫、合成庫(DesignWare)等。

讀取文件

有兩種方法可以將文件讀入DC,一種是使用Analyze和Elaborate命令;另一種是使用read_file命令。

Analyze命令做如下動(dòng)作

讀取HDL源文件并做語法檢查和Synopsys規(guī)則檢查;

在轉(zhuǎn)化成通用邏輯門之前,檢查文件本身的錯(cuò)誤;

以中間文件的形式創(chuàng)建HDL庫對(duì)象;

把中間文件存儲(chǔ)在define_design_lib命令指定的路徑。

Elaborate做如下動(dòng)作

 

將design轉(zhuǎn)化成GTECH形式;

允許更改source file中定義的parameter;

將design中的算術(shù)運(yùn)算符替換為Design ware組件;

Link design;

Read file命令執(zhí)行如下操作

執(zhí)行與Analyze和Elaborate相同的檢查動(dòng)作;

不為verilog創(chuàng)建中間文件;

為VHDL創(chuàng)建中間文件;

不能自動(dòng)完成link動(dòng)作,需要在read_file命令完成后,手動(dòng)去做link動(dòng)作;

可以讀取不同的文件格式,如VHDL、Verilog、System Verilog、ddc。

設(shè)計(jì)環(huán)境約束

讀入設(shè)計(jì)后,就需要定義設(shè)計(jì)環(huán)境約束設(shè)計(jì)約束。Design environment包括Operating Condition 、 Wire Load Model、System interface requirements。

Operating condition:包括工藝、電壓、溫度要求(PVT);可以使用set_operating _condition在dc_setup.tcl中做相關(guān)設(shè)置。

Wire Load Model:允許DC估算net長(zhǎng)度和扇出對(duì)電阻、電容、net area的影響;并使用相關(guān)估算值來計(jì)算net dealy;一般,DC會(huì)使用零線負(fù)載模型。

System interface:和design交互的外部邏輯的約束,包括輸入強(qiáng)度設(shè)置(set_driving_cell)、輸出電容負(fù)載(set_load)、輸出扇出負(fù)載等。

可以使用report_lib、report_design等命令查看已經(jīng)加載的Design environment設(shè)置。

Design rule constrain和Design optimization constrain

DC進(jìn)行design優(yōu)化時(shí),主要使用兩種類型的約束。

設(shè)計(jì)規(guī)則約束(Design rule constrain):邏輯庫定義了這種隱式約束,這些約束是design必須滿足的。默認(rèn)情況下,設(shè)計(jì)規(guī)則約束優(yōu)先級(jí)高于設(shè)計(jì)優(yōu)化約束。

設(shè)計(jì)優(yōu)化約束(Design optimization constrain):這是顯式約束,DC會(huì)嘗試滿足這些約束,但不會(huì)以違反設(shè)計(jì)規(guī)則約束為代價(jià)。

 

DC會(huì)試圖同時(shí)滿足兩種約束,但設(shè)計(jì)規(guī)則約束優(yōu)先。

默認(rèn)情況下,DC根據(jù)重要性,按以下順序考慮各種約束:

設(shè)計(jì)規(guī)則約束:

Connection class、multiple port nets、maximum transition time、maximum fanout、maximum capacitance。

設(shè)計(jì)優(yōu)化約束:

Maximum  delay、minimum delay、maximum power、maximum area。

時(shí)序約束

時(shí)序約束需包括:時(shí)鐘、IO時(shí)序要求、組合邏輯delay要求、false path設(shè)置等。

相關(guān)鏈接:

design中的timing path之R2R

design中的timing path之I2O

design中的timing path之 R2O

Design中的timing path之 I2R

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

前華為海思工程師;與非網(wǎng)2022年度影響力創(chuàng)作者;IC技術(shù)圈成員。

微信公眾號(hào)