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