POCV/SOCV的時(shí)序報(bào)告中有如下變量:
Mean: 高斯分布中的μ值(平均值)
Sensit: sensitivity,也就是1個(gè)Sigma的值;
Corner: Sigma邊界的最差值
cell的delay = Delay mean + N * Delay sigma;
cell 的Transition = Slew mean + N * Slew sigma;
以2.5GHz, 12nm, DVFS, A72數(shù)字后端訓(xùn)練營(yíng)項(xiàng)目為例,下圖列出了mean跟sigma值的時(shí)序報(bào)告:
我們把圖放大如下:
incr mean = 0.0062;
incrsigma = 0.0002;
到CTS_ccl_inv_00537/I的pre-Arrival Mean = -0.4416;
則到CTS_ccl_inv_00537/ZN的Arrival mean=-0.4416+0.0062= -0.4354;
到CTS_ccl_inv_0537/I的Pre-Arrival Sigma= 0.0018;
則到CTS_ccl_inv_0537/ZN的Arrival sigma= sqr (0.0018 ^ 2 + 0.0002^ 2)= 0.0018;
所以可得,到CTS_ccl_inv_0537/ZN的Arrival delay 為:
Arrival delay = Arrival mean + N * Arrival sigma = -0.4354+ 3*0.0018 = -0.4300
“12nm工藝,2.5GHz頻率,DVFS低功耗A72后端培訓(xùn)”
01
12nm Cortex-A72后端實(shí)戰(zhàn)
本項(xiàng)目是真實(shí)項(xiàng)目實(shí)戰(zhàn)培訓(xùn),低功耗UPF設(shè)計(jì),后端參數(shù)如下:
工藝:12nm
頻率:2.5GHz
資源:2000_0000instances
低功耗:DVFS
為了滿足廣大學(xué)員的訴求,我們將12nmA72 TOP課程分為兩個(gè)版本:
1、基礎(chǔ)版(價(jià)格是知名機(jī)構(gòu)的1/5,全國(guó)最低價(jià))
2、進(jìn)階版(低功耗、hierarchy UPF、Stampling)!業(yè)界最先進(jìn)技術(shù)!
進(jìn)階版本的低功耗設(shè)計(jì)如下:7個(gè)power domain
Stampling打起來真是高級(jí)手工藝術(shù),全網(wǎng)唯一:
Flow:PartitionFlow
時(shí)鐘結(jié)構(gòu)分析:
復(fù)位結(jié)構(gòu)分析:
12nm 2.5GHz的A72實(shí)戰(zhàn)訓(xùn)練營(yíng)需要特別設(shè)置Latency,TOP結(jié)構(gòu)如下,參加過景芯SoC全流程訓(xùn)練營(yíng)的同學(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)練營(yíng)的Latency背景,歡迎加入實(shí)戰(zhàn)。
時(shí)鐘傳播延遲Latency,通常也被稱為插入延遲(insertion delay)。它可以分為兩個(gè)部分,時(shí)鐘源插入延遲(source latency)和時(shí)鐘網(wǎng)絡(luò)延遲(Network latency)。
大部分訓(xùn)練營(yíng)同學(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的存在。
02
28nm Cortex-A7后端實(shí)戰(zhàn)
此外,我們提供全國(guó)最低價(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ì)課程采用的全國(guó)最低價(jià)格來推廣,本文不做過多介紹,本文重點(diǎn)介紹下先進(jìn)的12nm A72進(jìn)階版本課程。分享個(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了。
修改辦法很簡(jiǎn)單,具體操作option參見知識(shí)星球。
保存db,重新LVS,比對(duì)通過。
03
12nm Cortex-A72—DFT實(shí)戰(zhàn)
開發(fā)完成,全國(guó)最低價(jià)!
04
景芯SoC—全芯片UPF后端實(shí)戰(zhàn)
景芯SoC培訓(xùn)的全芯片UPF低功耗設(shè)計(jì)(含DFT設(shè)計(jì))
景芯SoC訓(xùn)練營(yíng)培訓(xùn)項(xiàng)目,低功耗設(shè)計(jì)前,功耗為27.9mW。
低功耗設(shè)計(jì)后,功耗為0.285mW,功耗降低98.9%!
7天沖刺PR訓(xùn)練營(yíng)有同學(xué)問如何給IO添加PAD?請(qǐng)思考景芯SoC的IO和PAD如何實(shí)現(xiàn)最佳?
7天沖刺PR訓(xùn)練營(yíng)有同學(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)練營(yíng)有同學(xué)問,為啥PR花了一天一夜24個(gè)小時(shí)完成布線還大量DRC錯(cuò)誤?小編已經(jīng)將設(shè)計(jì)規(guī)模盡可能減小以加速PR設(shè)計(jì),實(shí)際上2小時(shí)就可以跑完routing,為何這么慢?原因就是低功耗單元的走線。具體原因及解決辦法歡迎加入景芯訓(xùn)練營(yíng)討論。
其錯(cuò)誤主要集中在M4上,請(qǐng)思考如何解決。
7天沖刺PR訓(xùn)練營(yíng)有同學(xué)問,power switch cell的secondPG pin(VDDG)從M1接出的,而不是M2, 請(qǐng)思考有什么問題?如何解決?
7天沖刺PR訓(xùn)練營(yíng)有同學(xué)問,景芯SoC培訓(xùn)營(yíng)同學(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)練營(yíng)的同學(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)練營(yíng)實(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
那么怎么抓出異步路徑來觀察版圖走線呢?如何讓report_timing呢?更多內(nèi)容參見知識(shí)星球和SoC訓(xùn)練營(yíng)。
審核編輯:黃飛
-
cpu
+關(guān)注
關(guān)注
68文章
10825瀏覽量
211150 -
時(shí)鐘網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
16瀏覽量
6561 -
POCV
+關(guān)注
關(guān)注
1文章
6瀏覽量
12442
原文標(biāo)題:詳解POCV/SOCV時(shí)序報(bào)告
文章出處:【微信號(hào):全棧芯片工程師,微信公眾號(hào):全棧芯片工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論