01
2.5GHz 12nm DVFS A72后端實(shí)戰(zhàn)
本培訓(xùn)項(xiàng)目是真實(shí)項(xiàng)目,低功耗hierarchyUPF設(shè)計(jì),價(jià)格是知名機(jī)構(gòu)的1/3,全網(wǎng)最低價(jià)。DVFS hierarchy低功耗A72后端實(shí)戰(zhàn)內(nèi)容簡介如下:
1) 根據(jù)低功耗需求,編寫UPF驗(yàn)證UPF
掌握hierarchy UPF文件編寫,掌握Flatten UPF文件編寫。
本項(xiàng)目采用hierarchy UPF方式劃分了7個(gè)power domain、voltage domain,指定power switch cell,其中包括SWITCH TRICKLE、SWITCH HAMMER。掌握低功耗cell的用法,選擇合適的isolation cell、level shifter等低功耗cell。
掌握Power gating,Clock gating設(shè)計(jì)技術(shù)。
掌握Multi-VT設(shè)計(jì)技術(shù),本項(xiàng)目時(shí)鐘樹都是ULVT,動(dòng)態(tài)功耗小,skew小。
掌握DVFS技術(shù),ss0p9 2.5GHz、ss0p722.0GHz,,其中sram不支持ss0p63。要做ss0p63的話,給sram vddm單獨(dú)一個(gè)0p7v的電源即可。
掌握multibit cell的用法,本項(xiàng)目CPU里面的mb高達(dá)95%,選擇合適的multibitcell得到超高的CPU利用率。INNOVUS里面一般不做mb的merge和split。所以前后一樣的,一般綜合做multibit的merge split。
2) 根據(jù)top floorplan def進(jìn)行CPU子系統(tǒng)的partition以及pin assignment。
Top的Power stripe的規(guī)劃及其push down。
SpecifyBlackBox,將CPU core鏡像partition。
手動(dòng)manual cut the BlackBox的方法,掌握復(fù)雜的floorplan設(shè)計(jì)方法經(jīng)驗(yàn)。
VerifyPowerDomain,檢查低功耗劃分以及UPF的正確性。
Pin assignment,根據(jù)timing的需求進(jìn)行合理的pin腳排布,并解決congestion問題。
掌握Timing budget。
掌握利用Mixplace實(shí)戰(zhàn)CPU的自動(dòng)floorplan,掌握AI的floorplan方法學(xué)。
3) 掌握Fusion compiler DCG,利用fusion compiler來完成DCG綜合,進(jìn)一步優(yōu)化timing與congestion。
4) 掌握hierarchy ICG的設(shè)計(jì)方法學(xué),實(shí)戰(zhàn)關(guān)鍵ICG的設(shè)置與否對(duì)timing的重大影響。
5) 掌握Stapling技術(shù),實(shí)戰(zhàn)power switch cell的布局和特殊走線的方法學(xué),掌握CPU子系統(tǒng)的powerplan規(guī)劃及實(shí)現(xiàn),保證CPU子系統(tǒng)和頂層PG的alignment。
6) 掌握CPU子系統(tǒng)和TOP的時(shí)序接口優(yōu)化。掌握TOPisolation cell的placement以及isolationcell input電學(xué)特性檢查。
7) 掌握TOP和CPU子系統(tǒng)的clocktree Balance優(yōu)化處理,common clock path處理。時(shí)鐘樹結(jié)構(gòu)trace和時(shí)鐘樹評(píng)價(jià)。
8) DRC/LVS
CPU子系統(tǒng)的DRC/LVS檢查
TOP系統(tǒng)的DRC/LVS檢查
Hierarchy & Flatten LVS檢查原理及實(shí)現(xiàn)方法
9) 靜態(tài)時(shí)序分析&IR-Drop
DMSA flow
根據(jù)Foundry的SOD(signoff doc)的Timing signoff標(biāo)準(zhǔn)建立PT環(huán)境。
Star RC寄生抽取及相關(guān)項(xiàng)檢查
Timing exception分析,包括set_false_path、set_multicyle_path解析。
PT timing signoff的Hierarchical和Flatten Timing檢查
PT和PR timing的差異分析、Dummy insertion和with dummy的Timing分析
IR-Drop分析
Stampling打起來真是高級(jí)手工藝術(shù),全網(wǎng)唯一:
Flow:PartitionFlow
時(shí)鐘結(jié)構(gòu)分析:
復(fù)位結(jié)構(gòu)分析:
12nm 2.5GHz的A72實(shí)戰(zhàn)訓(xùn)練營需要特別設(shè)置Latency,TOP結(jié)構(gòu)如下,參加過景芯SoC全流程訓(xùn)練營的同學(xué)都知道CRG部分我們會(huì)手動(dòng)例化ICG來控制時(shí)鐘,具體實(shí)現(xiàn)參見40nm景芯SoC全流程訓(xùn)練項(xiàng)目,本文介紹下12nm 2.5GHz的A72實(shí)戰(zhàn)訓(xùn)練營的Latency背景,歡迎加入實(shí)戰(zhàn)。
時(shí)鐘傳播延遲Latency,通常也被稱為插入延遲(insertion delay)。它可以分為兩個(gè)部分,時(shí)鐘源插入延遲(source latency)和時(shí)鐘網(wǎng)絡(luò)延遲(Network latency)。
大部分訓(xùn)練營同學(xué)表示平時(shí)都直接將Latency設(shè)置為0了,那latency值有什么用呢?其實(shí)這相當(dāng)于一個(gè)target值,CTS的engine會(huì)根據(jù)你設(shè)置的latency值來插入buffer來實(shí)現(xiàn)你的latency target值。
下圖分為1st Level ICG和2nd Level ICG,請(qǐng)問這些ICG為什么要分為兩層?
請(qǐng)問,為什么不全部把Latency設(shè)置為0?2nd Level ICG的latency應(yīng)該設(shè)置為多少呢?
latency大小直接影響clock skew的計(jì)算。時(shí)鐘樹是以平衡為目的,假設(shè)對(duì)一個(gè)root和sink設(shè)置了400ps的latency值,那么對(duì)另外的sink而言,就算沒有給定latency值,CTS為了得到較小的skew,也會(huì)將另外的sink做成400ps的latency。請(qǐng)問,為何要做短時(shí)鐘樹?因?yàn)檫^大的latency值會(huì)受到OCV和PVT等因素的影響較大,并有time derate的存在。
分享個(gè)例子,比如,Cortex-A72低功耗設(shè)計(jì),DBG domain的isolation為何用VDDS_maia_noncpu供電而不是TOP的VDD?
答:因?yàn)閐bg的上一級(jí)是noncpu,noncpu下面分成dbg和兩個(gè)tbnk。
再分享個(gè)例子,比如,Cortex-A72低功耗設(shè)計(jì),這個(gè)switch cell是雙開關(guān)嗎?答:不是,之所以分trickle和hammer,是為了解決hash current大電流,先開trickle,然后再開hammer。
再分享個(gè)例子,比如,Cortex-A72進(jìn)階版本課程的低功耗例子:請(qǐng)問,如果iso cell輸出都要放parent,輸入放self,那么下面-applies_to_outputs對(duì)應(yīng)的-location為何是self?
答:這個(gè)需要了解CPU的內(nèi)部設(shè)計(jì)架構(gòu),tbnk掉電 VDDS_maia_noncpu也必然掉電,pst如下,所以-applies_to_outputs對(duì)應(yīng)的-location是可以的,那么注意下debug domain呢?
實(shí)際上,沒有tbnk到debug domain的信號(hào),因此腳本如下:
再分享個(gè)例子,比如,Cortex-A72進(jìn)階版本課程的低功耗例子:為何non_cpu的SRAM的VDD VDDM都接的可關(guān)閉電源?SRAM的VDD VDDM分別是常開、和retention電源吧?
答:本來是VDDM作為retention電源設(shè)計(jì)的,VDD關(guān)掉后 VDDM可以供電作為retention使用,但是此處沒有去做memory的雙電源,sram當(dāng)成單電源使用,不然sram無法徹底斷電。
再分享個(gè)例子,比如,Cortex-A72基礎(chǔ)版課程有學(xué)員的Cortex-A72 maia_cpu LVS通過,但是MAIA頂層LVS比對(duì)不過,我們來定位一下。
以FE_OFN4326_cfgend_cpu1_o為例,點(diǎn)擊下圖FE_OFN4326_cfgend_cpu1_o:
找到calibredrv錯(cuò)誤坐標(biāo):(1949,139)
對(duì)應(yīng)到innovus去看坐標(biāo):(1949,139)
看到maia_cpu的pin腳過于密集,造成頂層連接pin腳時(shí)候會(huì)無法繞線,從而導(dǎo)致innovus從maia_cpu上面走線,形成short。盡管maia_cpu帶了blockage,但是invs沒有足夠的連接pin的routing resource,也就只能在maia_cpu上面去try了。
修改辦法很簡單,具體操作option參見知識(shí)星球。
保存db,重新LVS,比對(duì)通過。
02
28nm Cortex-A7后端實(shí)戰(zhàn)
此外,我們提供全網(wǎng)最低價(jià)的28nm A7后端設(shè)計(jì),價(jià)格驚喜!打垮動(dòng)輒1.5w-2.5w的后端培訓(xùn)價(jià)格!
我們?cè)賮韺?duì)比下A72與A7的資源。A72Gate數(shù)目是A7的13倍!如果都采用28nm制程,A72的面積應(yīng)該是1180790um^2,實(shí)際A72采用12nm制程面積是486100um^2,1180790/486100=2.4,符合摩爾定律。
Cortex-A7單核:
Gates=240291Cells=118421
Cortex-A72單核:
Gates=3125649Cells=1207766
28nmCortex-A7單核:
Area=90830.1um^2
12nmCortex-A72單核:
Area=486100.9um^2
28nm A7后端設(shè)計(jì)課程采用的全國最低價(jià)格來推廣,本文不做過多介紹,本文重點(diǎn)介紹下先進(jìn)的12nm A72進(jìn)階版本課程。
03
12nm Cortex-A72—DFT實(shí)戰(zhàn)
開發(fā)完成,全國最低價(jià)!
04
景芯SoC—全芯片UPF后端實(shí)戰(zhàn)
景芯SoC培訓(xùn)的全芯片UPF低功耗設(shè)計(jì)(含DFT設(shè)計(jì))
景芯SoC訓(xùn)練營培訓(xùn)項(xiàng)目,低功耗設(shè)計(jì)前,功耗為27.9mW。
低功耗設(shè)計(jì)后,功耗為0.285mW,功耗降低98.9%!
7天沖刺PR訓(xùn)練營有同學(xué)問如何給IO添加PAD?請(qǐng)思考景芯SoC的IO和PAD如何實(shí)現(xiàn)最佳?
7天沖刺PR訓(xùn)練營有同學(xué)問,同樣的floorplan,有些同學(xué)很快跑完,有些同學(xué)則遇到大量DRC問題(EDA工具不停iteration)導(dǎo)致工具始終無法跑完,具體什么問題呢?
首先,小編發(fā)現(xiàn)該同學(xué)的stripe把TM2定義為了horizontal,而熟悉景芯工藝的同學(xué)知道,TM2的preference direction是VERTICAL。
查詢景芯的lef庫文件也可以確認(rèn):
用錯(cuò)方向有多大影響呢?大家上景芯SoC的后端flow實(shí)踐一下吧,實(shí)踐出真知。
7天沖刺PR訓(xùn)練營有同學(xué)問,為啥PR花了一天一夜24個(gè)小時(shí)完成布線還大量DRC錯(cuò)誤?小編已經(jīng)將設(shè)計(jì)規(guī)模盡可能減小以加速PR設(shè)計(jì),實(shí)際上2小時(shí)就可以跑完routing,為何這么慢?原因就是低功耗單元的走線。具體原因及解決辦法歡迎加入景芯訓(xùn)練營討論。
其錯(cuò)誤主要集中在M4上,請(qǐng)思考如何解決。
7天沖刺PR訓(xùn)練營有同學(xué)問,power switch cell的secondPG pin(VDDG)從M1接出的,而不是M2, 請(qǐng)思考有什么問題?如何解決?
7天沖刺PR訓(xùn)練營有同學(xué)問,景芯SoC培訓(xùn)營同學(xué)遇到Corner Pad LVS不過怎么處理?
完成景芯SoC培訓(xùn)的前端設(shè)計(jì)仿真、DFT后,我們來到后端flow,本教程教你一鍵式跑完數(shù)字后端flow。
生成腳本命令如下:
tclsh ./SCRIPTS/gen_flow.tcl -m flat all
生成flow腳本之前需要配置setup.tcl等相關(guān)參數(shù),具體參見【全網(wǎng)唯一】【全棧芯片工程師】提供自研的景芯SoC前端工程、DFT工程、后端工程,帶你從算法、前端、DFT到后端全流程參與SoC項(xiàng)目設(shè)計(jì)。
景芯SoC訓(xùn)練營的同學(xué)問,為何innovus讀取做好的floorplandef文件報(bào)Error?首先看log:
Reading floorplan file - ./data_in/DIGITAL_TOP.def (mem = 1595.0M).
#% Begin Load floorplan data ... (date=10/23 2201, mem=1579.3M)
**ERROR: (IMPFP-710): File version unknown is too old.
以前EDI的時(shí)期,我們可以通過定義fp_file的方式來加載floorplan:
set vars(fp_file) "./data_in/DIGITAL_TOP.def"
但是現(xiàn)在innovus升級(jí)并放棄了fp_file的加載方式,當(dāng)然也可以用老版本的EDI9.1及以前版本來加入fp_file,然后轉(zhuǎn)存為新版本,這方式明顯沒有必要。正如下log提示所說,檢查log是非常好的工程師習(xí)慣。
Input floorplan file is too old and is not supported in EDI 10.1 and newer.
You can use EDI 9.1 and before to read it in, then save again to create new version.
小編的直覺告訴我,先去看看同學(xué)保存的def文件是哪個(gè)def版本?
同學(xué)保存方式如下:
那么請(qǐng)問如何解決?請(qǐng)大家加入景芯訓(xùn)練營實(shí)踐。
景芯SoC用了很多異步FIFO,關(guān)注異步RTL實(shí)現(xiàn)的同學(xué),可以抓取異步FIFO出來看一下版圖連線:
查看下所有異步FIFO cell的面積;
dbget [dbget top.insts.pstatus unplaced -p].area
查下所有異步FIFO的cell的名字:
dbget [dbget top.insts.pstatus unplaced -p].name
審核編輯:黃飛
-
cpu
+關(guān)注
關(guān)注
68文章
10769瀏覽量
210420 -
UPF
+關(guān)注
關(guān)注
0文章
49瀏覽量
13463 -
DVFS
+關(guān)注
關(guān)注
1文章
17瀏覽量
11980
原文標(biāo)題:2.5GHz頻率 hierarchy DVFS低功耗A72實(shí)戰(zhàn)
文章出處:【微信號(hào):全棧芯片工程師,微信公眾號(hào):全棧芯片工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論