Design compiler综合教程
一、邏輯綜合的主要步驟
synthesis = translation + logic optimization + gate mapping
DC工作流程主要分為這三步
Translation :主要把描述RTL級的HDL語言,在約束下轉(zhuǎn)換成DC內(nèi)部的統(tǒng)一用門級描述的電路(Generic Boolean Gates)(DC自己的庫表現(xiàn)),以GTECH或者沒有映射的ddc形式展現(xiàn)。也就是說此階段沒有用到工藝庫。
Logic optimization :就是把統(tǒng)一用門級描述的電路進行優(yōu)化,就是把路徑調(diào)整一下,門給改一下等等。
Gate mapping :門級映射,把優(yōu)化了的統(tǒng)一門級描述,DC用工藝廠商的工藝庫把電路給映射出來,得到一個.ddc文件。這個.ddc文件可以包含許多豐富的信息,比如映射的門電路信息、網(wǎng)表.v格式的網(wǎng)表、延時信息(sdf)、工作約束(sdc)等信息。(.ddc不能用文本編輯器打開)。.ddc這個包含的網(wǎng)表文件是實際意義的網(wǎng)表文件,而.v這個形式的網(wǎng)表文件是用來做后仿真的文件。
二、邏輯綜合的具體步驟
1、在Linux下,啟動DC。打開命令行,輸入?dc_shell –gui
2、設(shè)置庫文件。
點擊File - Setup
設(shè)置
(1)Search path :當(dāng)在Link Library中無法找到某些模塊時,DC會在Search Path下的庫中自動找對應(yīng)的模塊。比如Synopsis的DesignWare中的庫就缺省包含在了Search Path下,這也就是為什么一般不需要手動設(shè)置Synthetic Library的原因。在Verilog源文件中,如果找不到include的文件,也會在Search Path下尋找。
(2)Link library 和 Target library?:Link library 和 target library 統(tǒng)稱為?technology library(即工藝庫,習(xí)慣稱之為綜合庫),technology library 由半導(dǎo)體制造商提供,包含相關(guān) cell 的信息及設(shè)計約束標(biāo)準(zhǔn),后綴一般為".db",其中:
?Target library: 在門級優(yōu)化及映射的時候提供生成網(wǎng)表的 cell,即DC 用于創(chuàng)建實際電路的庫。
?Link library: 提供設(shè)計網(wǎng)表中的 cell,可以跟target_library使用同一個庫,但是 DC 不用 link library中的 cell 來綜合設(shè)計。
當(dāng) DC 讀入設(shè)計時,它自動讀入由 link library 變量指定的庫。當(dāng)連接設(shè)計時,DC 先搜尋其內(nèi)存中已經(jīng)有的庫,然后在搜尋由 link library 指定的庫。
注:當(dāng)讀入的文件是門級網(wǎng)表時,需要把 link library 指向生成該門級網(wǎng)表的庫文件,否則 DC 因不知道網(wǎng)表中門單元電路的功能而報錯。?
(3)Symbol library :Symbol library 提供 Design Vision GUI 中設(shè)計實現(xiàn)的圖形符號,如果你使用腳本模式而不使用 GUI,此庫可不指定 Symbol library
(4)Synthetic?library :即為 Designware library ,名字上翻譯是綜合庫,但卻常稱之為IP庫,而不是直譯。特殊的 Designware library 是需要授權(quán)的(比如使用多級流水線的乘法器),默認(rèn)的標(biāo)準(zhǔn) Designware 由 DC 軟件商提供,無需指定。
?
3、讀入verilog RTL文件
點擊 File - Read 選擇自己的verilog文件
?
4、Check Design 檢查設(shè)計
點擊 Design - Check Design?
5、在下方dc shell命令行輸入set_max_area 0(按最小的面積綜合)
6、在下方dc shell命令行輸入compile –map_effort medium –area_effort medium(為優(yōu)化面積而做出的努力程度)
7、在下方dc shell命令行輸入report_cell
8、查看綜合后的電路面積
面積為3468.54719,這個面積是電路中的門級器件的面積,不包括內(nèi)部金屬線的面積,根據(jù)經(jīng)驗,最終的電路面積 ≈?此面積/0.7。
?
因為我們實驗室不需要自己做后仿真,所以跑DC的唯一目的就是看面積,我暫時也沒搞清楚為什么不需要設(shè)置時鐘約束,環(huán)境約束等。
?
參考鏈接:
https://www.jianshu.com/p/a891ef3fe71e
https://zhuanlan.zhihu.com/p/82716151
?
總結(jié)
以上是生活随笔為你收集整理的Design compiler综合教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从 Arm Compiler 5 迁移到
- 下一篇: jQuery实现异形轮播图