您好,登錄后才能下訂單哦!
這期內(nèi)容當中小編將會給大家?guī)碛嘘P如何做physical aware synthesis及需要注意的點,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
方法學上,感謝DEF 架起了前后端之間的橋梁,DEF 將 floorplan 的信息傳遞給綜合工具,使其可以在邏輯優(yōu)化時考慮真實的『物理信息』,并根據(jù)DEF 的約束做placement 及global route , 依據(jù)global route的結(jié)果估算net delay,與此同時也做congestion 優(yōu)化,完成所謂的 physical aware synthesis。
工具端,C跟S都跳脫不出方法學,只是實現(xiàn)方式上有所差別而已,S家的physical synthesis 除了要設physical 相關的變量之外,大概還需要額外三個東西(此處完全憑不靠譜的記憶,如有謬誤請指正):1) dc_shell -topo; 2) create MilkWay DB; 3) compile_ultra -spg。本文將以C 家的Genus 為例來陳訴如何做physical aware synthesis。講工具的套路都是從輸入跟輸出說起,然后再一一展開,下圖是從Genus physical RAK上摳的圖(RAK是一系列簡單的lib,C家每個工具都有多個RAK, 在C家網(wǎng)站上可以下載到,強烈建議下載學習)。
Genus physical 的輸入除了 lib/rtl/sdc 之外,還必須要有tech lef/ std cell lef/ macro cell lef; DEF; QRC tech file。
LEF: tech lef/std cell lef/ RAM lef 由foundry 提供,sub-block lef 由后端提供。
用命令:set_attribute lef_library $lef_files 讀入,必須將tech lef 放在lef file list的首位;必須要讀全用到的所有cell 的lef,否則在log 中會看到警告:『由于某個cell 的物理信息不可用,所以該cell 被設成了不可用。』
Genus 從LEF 中讀入如下信息:
CAPACITANCE CPERSQ
EDGECAPACITANCE
RESISTANCE RPERSQ
SITE
WIDTH
Coupling capacitance
Capacitanceper unit of area
Fringing capacitance
QRC: QRC由foundry 提供,是個加密文件。
用命令:set_attribute qrc_table_file $qrc_files 讀入.
Genus 從QRC 中讀入如下信息:
PROCESS_VARIATION
BASIC_CAP_TABLE
width
Cc
Carea
Cfrg
DEF: floorplan 信息,由后端提供,后端大佬們說這是P&R 的靈魂所在,是基石是一切成功的基礎。
在Innovus 用Defout -floorplan -NoStdCell寫出一個包含以下部分的DEF,此處有注釋。
在Genus 中用命令read_def 讀入DEF file. Genus在讀DEF 時會check DEF 的Quality 并會報出相關的warning, 讀完DEF 后會生成一個如下的summary 報告,請修正需要修正的Error 跟Warning。
讀完DEF 后用命令 check_floorplan 進一步check DEF 的quality, 并及時修正Error 跟 Warning。
在輸入干凈了之后就可以命令工具開始做帶物理信息的邏輯優(yōu)化了,Genus 采用的是early physical,即從最開始就帶著physical 信息做優(yōu)化。Genus physical整個優(yōu)化過程由syn_gen -physical, syn_map -physical, syn_opt -physical/ spatial 三步構(gòu)成。建議在做完每一步優(yōu)化后就寫一個db 出來,在debug 的時候可以根據(jù)需求讀入不同階段的db, 比如debug 前后端module placement 的 correlation, 可以讀入syn_gen 后的DB 起GUI highlight module place 跟Innovus 的module place 對比。
Genus physical 有兩種flow, 兩個flow 的區(qū)別是:
syn_opt 所用option 不同,一種是:syn_opt -physical. 另一種是:syn_opt -saptial。
syn_opt -physical 會調(diào)用Innovus 來做placement 跟global route,結(jié)果是legalize 的,后端如果吃入Genus 寫出的netlist + DEF 則只需要run place_opt_design -incr 即可。
syn_opt -spatial 用Genus 內(nèi)嵌的placement 引擎做placement 跟 global route,結(jié)果不是legalize 的,后端需要run full place_opt_design.
兩個flow 的相關變量有差別,用戶可以根據(jù)自己的設計、工藝跟團隊構(gòu)成選擇相應flow。
綜合完成后,需要check 綜合的quality,對于physical aware synthesis 除了PPA 還需要關注 overflow,此處說兩點:
用report_timing -physical -gui 可以在layout 中highlight 出完整的timing path,是debug timing最基本的一招而且十分有效,可以看數(shù)據(jù)流、看走線,看bufferring.
report congestion可以report 出overflow,打開congestion map 去看congestion 是由什么引起的,然后對癥下藥。如:跟macro 相關的congestion 需去找后端確認floorplan 是否需要調(diào)整;跟結(jié)構(gòu)相關的congestion 是否在綜合時需要對這些結(jié)構(gòu)設置map_to_mux, 以使其保持mux 結(jié)構(gòu)而非替換成大量的OAI/ AOI; 如是cell堆積引起的congestion,找AE 確認是否有變量讓工具可以將congestion 嚴重區(qū)域的cell 推散。
上述就是小編為大家分享的如何做physical aware synthesis及需要注意的點了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。