Verilog 邏輯綜合

2022-05-20 14:40 更新

本教程經(jīng)常有提及綜合這個詞語?;蛘哒f有些邏輯不能綜合成實際電路,或者說有些邏輯設(shè)計綜合后的電路會有一些安全隱患。本章就簡單介紹下邏輯綜合的相關(guān)知識,僅從理論層次和普遍認(rèn)知的角度來闡述。待那個懵懂求知少年變成中年禿頂大叔,再來介紹邏輯綜合的具體實踐。好像也沒有多少時日了(手動狗頭)。

基本概念

綜合,就是在標(biāo)準(zhǔn)單元庫和特定的設(shè)計約束基礎(chǔ)上,把數(shù)字設(shè)計的高層次描述轉(zhuǎn)換為優(yōu)化的門級網(wǎng)表的過程。標(biāo)準(zhǔn)單元庫對應(yīng)工藝庫,可以包含簡單的與門、非門等基本邏輯門單元,也可以包含特殊的宏單元,例如乘法器、特殊的時鐘觸發(fā)器等。設(shè)計約束一般包括時序、負(fù)載、面積、功耗等方面的約束。

無論是數(shù)字芯片設(shè)計,還是 FPGA 開發(fā),現(xiàn)在綜合過程基本都是借用計算機(jī)輔助邏輯綜合工具,自動的將高層次描述轉(zhuǎn)換為邏輯門電路。設(shè)計人員可以將精力集中在系統(tǒng)結(jié)構(gòu)方案、高層次描述、設(shè)計約束和標(biāo)準(zhǔn)工藝庫等方面,而不用去關(guān)心高層次的描述怎么轉(zhuǎn)換為門級電路。綜合工具在內(nèi)部反復(fù)進(jìn)行邏輯轉(zhuǎn)換、優(yōu)化,最終生成最優(yōu)的門級電路。該過程如下所示。


結(jié)構(gòu)解釋

簡單的賦值語句通常被綜合為基本的邏輯門單元

assign F = (A & B) | C ;

上述代碼通常會被綜合為如下門級電路:


條件語句通常被綜合為選擇器

assign F = sel ? A : B ;

上述代碼通常會被綜合為如下門級電路:


always 塊中時鐘觸發(fā)的賦值語句通常被綜合為觸發(fā)器

always @(posedge clk) begin
    q <= d ;
end 

上述代碼通常會被綜合為如下電路:


再復(fù)雜的設(shè)計,綜合之后,都會被轉(zhuǎn)換為由各種單元庫原件組成的門級網(wǎng)表??傊?,邏輯綜合可以狹隘的理解為,將 Verilog 設(shè)計轉(zhuǎn)換為用優(yōu)化的基本邏輯門單元、特殊的宏單元表示的過程。

綜合流程

從高層次 RTL 描述到門級網(wǎng)表的詳細(xì)綜合過程如下圖所示。


RTL 描述

用硬件描述語言(例如 Verilog)設(shè)計數(shù)字電路,并進(jìn)行仿真保證邏輯功能的正確性。

翻譯

RTL 描述會被綜合工具轉(zhuǎn)換為一個未經(jīng)優(yōu)化的中間表示。該過程讀入 Verilog 描述的基本原語和操作,不考慮面積、時序、功耗等設(shè)計約束,僅完成簡單的內(nèi)部資源分配。

未優(yōu)化的中間表示

翻譯過程中產(chǎn)生的中間表示,數(shù)據(jù)格式由綜合工具內(nèi)部識別,用戶無法也無需了解。

邏輯優(yōu)化

優(yōu)化設(shè)計邏輯,刪除冗余邏輯。該過程往往會將 RTL 設(shè)計的一些變量刪除,或重新命名,邏輯實現(xiàn)過程往往也會改變,以達(dá)到邏輯的最優(yōu)化實現(xiàn)。該過程會產(chǎn)生優(yōu)化的內(nèi)部表示。

工藝映射和優(yōu)化

此步驟之前,設(shè)計的描述過程是獨(dú)立于目標(biāo)工藝的。該步驟中,綜合工具將使用工藝庫(標(biāo)準(zhǔn)單元庫)中提供的邏輯單元,實現(xiàn)設(shè)計的內(nèi)部表示。即設(shè)計會被映射到目標(biāo)工藝。實現(xiàn)過程中,還必須滿足時序、面積和功耗的約束,執(zhí)行一些局部的優(yōu)化。

標(biāo)準(zhǔn)單元庫

如之前所述,標(biāo)準(zhǔn)單元庫對應(yīng)工藝庫,可以包含簡單的與門、非門等基本邏輯門單元,也可以包含特殊的宏單元,例如乘法器、特殊的觸發(fā)器等。

為了更好的映射與優(yōu)化,每個邏輯單元,應(yīng)當(dāng)包含以下信息:

  • 功能描述
  • 版圖面積
  • 時序信息
  • 功耗信息

設(shè)計約束

設(shè)計約束一般包括時序、面積、功耗等方面的約束。三者之間往往存在制約關(guān)系。為了優(yōu)化時序,可能需要增加硬件資源,導(dǎo)致電路面積增大,功耗增加。為了產(chǎn)生規(guī)模更小的電路,又必須在電路速度上進(jìn)行妥協(xié)。數(shù)字電路設(shè)計時往往要綜合各種因素進(jìn)行取舍。

優(yōu)化的門級表示

工藝映射與優(yōu)化完成后,最終會生成由目標(biāo)工藝庫所描述的優(yōu)化后的門級網(wǎng)表。如果該網(wǎng)表滿足各種約束要求,則會被制作成最終的版圖。否則還需要修改設(shè)計約束或優(yōu)化 RTL 描述,以獲得滿足約束要求的門級網(wǎng)表結(jié)果。這個過程是反復(fù)的,直至最終網(wǎng)表滿足要求。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號