根據(jù)摩爾定律的發(fā)展,晶體管的Poly的最小柵極長度已經(jīng)到達(dá)了1nm甚至更小,集成電路的規(guī)模越來越大,集成度越來越高。因而,設(shè)計者已經(jīng)無法像最原始的手動將HDL(Verilog/VHDL)等描述語言轉(zhuǎn)化為電路圖并描述元件間互聯(lián)來產(chǎn)生一個門級網(wǎng)表。所以各種用于ASIC設(shè)計的EDA工具(DC,Genus等)也應(yīng)運而生。
圖1 邏輯綜合在整個IC設(shè)計流程RTL2GDS之間的位置
在整個ASIC設(shè)計的流程中,需要前端設(shè)計工程師完成可實現(xiàn)功能的RTL代碼,最后到用于流片的GDSII則是包含芯片制造廠家的工藝信息,這中間邏輯綜合起到了很重要的橋接作用。綜合工具會根據(jù)我們使用的芯片廠商提供的標(biāo)準(zhǔn)單元庫文件的信息,將HDL的RTL代碼轉(zhuǎn)化為帶工藝信息的門級電路網(wǎng)表(netlist),進行formal形式驗證,確保綜合過后與RTL階段功能邏輯一致后,綜合階段時序沒風(fēng)險后再交付給后端工程師來進行布局布線。
小編以S家的DC為例子分享一些在設(shè)計過程中需要進行的時鐘結(jié)構(gòu)分析(以經(jīng)典的reg2reg為例子),約束設(shè)置,邏輯綜合。
首先作為一個優(yōu)秀的邏輯綜合工程師,SDC約束/UPF/CPF約束是少不了寫的,尤其是對一些端口和Critical path,一個“干凈”的網(wǎng)表是后端的完美開局!約束包括環(huán)境約束和設(shè)計約束,設(shè)計約束又分 為時序約束和設(shè)計規(guī)則約束。整個綜合的過程,最關(guān)鍵的部分就是制定一個正確的約束,特別是時序約束。約束定義的好壞影響到綜合結(jié)果的優(yōu)劣。
圖2 Reg2Reg的經(jīng)典STA路徑
我們以對Clock的約束為例子, Clock latency通常指的就是從Clock pin(source)或IO pad中傳遞到sink點CP端的延遲,在綜合階段由于是未傳播的,因此Skew的值通常是前后兩級寄存器對應(yīng)的source到CP端的Cell Delay或單純Net delay計算的差值,并包含在uncertainty內(nèi)。
Clock_transiton的值要根據(jù)工藝來進行調(diào)整,通常在28nm以下的工藝,Clock_transition的值要取在對應(yīng)時鐘周期的十分之一內(nèi),具體情況要根據(jù)lib內(nèi)的查找表來定。下面簡單寫下在SDC中對input clock—i_clk時需要注意的約束:
同時,異步復(fù)位信號造成網(wǎng)表內(nèi)的部分寄存器的Q—>rstn端發(fā)生setup Violation也是一個邏輯綜合工程師會經(jīng)常遇到的問題,這種異步的復(fù)位端時序檢查我們需要添加MutiCyle來進行檢查上的放松。MutiCyle的放松約束包括:同頻時鐘,快到慢,慢到快等等,不同情況MutiCyle的約束書寫也不盡相同:
介紹完綜合工程師需要掌握的部分重要約束的書寫,ICer們再跟著小編來看看邏輯綜合的每個階段,到底在干什么吧!
電路的綜合一般分為三個步驟,分別是轉(zhuǎn)化(Translation)、邏輯優(yōu)化(Logic Optimizaion)和映射(Mapping)。
轉(zhuǎn)化(Translation):把描述RTL級的HDL語言(verilog),在約束下轉(zhuǎn)化成綜合工具內(nèi)部的統(tǒng)一用門級描述的電路(Generic Boolean Gates),即HDL—>netlist
邏輯優(yōu)化(Logic Optimization):把統(tǒng)一用門級描述的電路進行優(yōu)化,改善路徑和門。
映射(Mapping):把優(yōu)化了的統(tǒng)一門級描述。以DC為例,DC使用工藝庫(lib庫)將電路映射出來,得到.ddc文件,該文件包含如映射的門電路信息與網(wǎng)表,.v格式的網(wǎng)表,延時信息(sdf)【sdf文件主要包括cell, net delay信息和cell的hold,setup,recover,removel等邊沿應(yīng)該滿足的要求等信息】,工作約束(sdc)【包含clk的信息,以及驅(qū)動,輸入輸出延時,最大最小延遲約束,特殊路徑等】等信息。.ddc中包含的網(wǎng)表是實際意義上的綜合過后的網(wǎng)表文件(類似PT中的session,innovus內(nèi)的enc),.v的網(wǎng)表是用于進行后仿的文件。
在上面的過程中,約束對于綜合而言非常重要,如果不施加約束,綜合工具會產(chǎn)生非優(yōu)化(no-opt)的網(wǎng)表,無法滿足要求。綜合是約束驅(qū)動(Constraint driven)的,給定的約束是綜合的目標(biāo),約束一般是在對整個系統(tǒng)進行時序分析得到的,綜合工具會對電路進行優(yōu)化以滿足約束的要求。綜合以時序路徑為基礎(chǔ)進行優(yōu)化。
綜合的具體過程
1. 準(zhǔn)備RTL代碼,經(jīng)過前端仿真后才能用于綜合;
2. 定義庫,設(shè)定好所需要用到的綜合庫等多種庫;
3. 讀入設(shè)計,綜合工具讀入RTL代碼并進行分析;
4. 定義設(shè)計環(huán)境,設(shè)定設(shè)計的工作環(huán)境、端口的驅(qū)動和負(fù)載、線負(fù)載模型等;
5. 設(shè)置設(shè)計約束(關(guān)鍵),主要是定義時鐘和I/O的約束,約束要適當(dāng),只有正確的約束才能得到正確的結(jié)果;
6. 設(shè)置綜合策略,top-down和bottom-up兩種策略(就是文件目錄順序不一樣),根據(jù)需求進行選擇;
7. 優(yōu)化設(shè)計,綜合工具可以根據(jù)約束對電路進行優(yōu)化,也可認(rèn)為加入命令改變優(yōu)化方法;
8. 分析和解決設(shè)計的問題,在設(shè)計綜合后,根據(jù)報告分析設(shè)計中出現(xiàn)的問題,并修訂問題;
9. 保存設(shè)計數(shù)據(jù),綜合結(jié)束后,保存各種數(shù)據(jù)以供后續(xù)布局布線使用(需先通過formal驗證)
好了,今天這期的邏輯綜合內(nèi)容小編就介紹到這里了,下期小編將會以一個帶載入UPF流程的Genus的SYN Flow為切入點,進行實戰(zhàn)中的綜合Flow的解析!
審核編輯:劉清
-
IC設(shè)計
+關(guān)注
關(guān)注
38文章
1297瀏覽量
104048 -
EDA工具
+關(guān)注
關(guān)注
4文章
268瀏覽量
31817 -
HDL
+關(guān)注
關(guān)注
8文章
327瀏覽量
47407 -
ASIC技術(shù)
+關(guān)注
關(guān)注
0文章
19瀏覽量
7594 -
UPF
+關(guān)注
關(guān)注
0文章
50瀏覽量
13531
原文標(biāo)題:搞芯片,不懂邏輯綜合是啥?
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論