POCV/SOCV的時序報告中有如下變量:
Mean: 高斯分布中的μ值(平均值)
Sensit: sensitivity,也就是1個Sigma的值;
Corner: Sigma邊界的最差值
cell的delay = Delay mean + N * Delay sigma;
cell 的Transition = Slew mean + N * Slew sigma;
以2.5GHz, 12nm, DVFS, A72數字后端訓練營項目為例,下圖列出了mean跟sigma值的時序報告:
我們把圖放大如下:
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后端培訓”
01
12nm Cortex-A72后端實戰
本項目是真實項目實戰培訓,低功耗UPF設計,后端參數如下:
工藝:12nm
頻率:2.5GHz
資源:2000_0000instances
低功耗:DVFS
為了滿足廣大學員的訴求,我們將12nmA72 TOP課程分為兩個版本:
1、基礎版(價格是知名機構的1/5,全國最低價)
2、進階版(低功耗、hierarchy UPF、Stampling)!業界最先進技術!
進階版本的低功耗設計如下:7個power domain
Stampling打起來真是高級手工藝術,全網唯一:
Flow:PartitionFlow
時鐘結構分析:
復位結構分析:
12nm 2.5GHz的A72實戰訓練營需要特別設置Latency,TOP結構如下,參加過景芯SoC全流程訓練營的同學都知道CRG部分我們會手動例化ICG來控制時鐘,具體實現參見40nm景芯SoC全流程訓練項目,本文介紹下12nm 2.5GHz的A72實戰訓練營的Latency背景,歡迎加入實戰。
時鐘傳播延遲Latency,通常也被稱為插入延遲(insertion delay)。它可以分為兩個部分,時鐘源插入延遲(source latency)和時鐘網絡延遲(Network latency)。
大部分訓練營同學表示平時都直接將Latency設置為0了,那latency值有什么用呢?其實這相當于一個target值,CTS的engine會根據你設置的latency值來插入buffer來實現你的latency target值。
下圖分為1st Level ICG和2nd Level ICG,請問這些ICG為什么要分為兩層?
請問,為什么不全部把Latency設置為0?2nd Level ICG的latency應該設置為多少呢?
latency大小直接影響clock skew的計算。時鐘樹是以平衡為目的,假設對一個root和sink設置了400ps的latency值,那么對另外的sink而言,就算沒有給定latency值,CTS為了得到較小的skew,也會將另外的sink做成400ps的latency。請問,為何要做短時鐘樹?因為過大的latency值會受到OCV和PVT等因素的影響較大,并有time derate的存在。
02
28nm Cortex-A7后端實戰
此外,我們提供全國最低價的28nm A7后端設計,價格驚喜!打垮動輒1.5w-2.5w的后端培訓價格!
我們再來對比下A72與A7的資源。A72Gate數目是A7的13倍!如果都采用28nm制程,A72的面積應該是1180790um^2,實際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后端設計課程采用的全國最低價格來推廣,本文不做過多介紹,本文重點介紹下先進的12nm A72進階版本課程。分享個例子,比如,Cortex-A72低功耗設計,DBG domain的isolation為何用VDDS_maia_noncpu供電而不是TOP的VDD?
答:因為dbg的上一級是noncpu,noncpu下面分成dbg和兩個tbnk。
再分享個例子,比如,Cortex-A72低功耗設計,這個switch cell是雙開關嗎?答:不是,之所以分trickle和hammer,是為了解決hash current大電流,先開trickle,然后再開hammer。
再分享個例子,比如,Cortex-A72進階版本課程的低功耗例子:請問,如果iso cell輸出都要放parent,輸入放self,那么下面-applies_to_outputs對應的-location為何是self?
答:這個需要了解CPU的內部設計架構,tbnk掉電 VDDS_maia_noncpu也必然掉電,pst如下,所以-applies_to_outputs對應的-location是可以的,那么注意下debug domain呢?
實際上,沒有tbnk到debug domain的信號,因此腳本如下:
再分享個例子,比如,Cortex-A72進階版本課程的低功耗例子:為何non_cpu的SRAM的VDD VDDM都接的可關閉電源?SRAM的VDD VDDM分別是常開、和retention電源吧?
答:本來是VDDM作為retention電源設計的,VDD關掉后 VDDM可以供電作為retention使用,但是此處沒有去做memory的雙電源,sram當成單電源使用,不然sram無法徹底斷電。
再分享個例子,比如,Cortex-A72基礎版課程有學員的Cortex-A72 maia_cpu LVS通過,但是MAIA頂層LVS比對不過,我們來定位一下。
以FE_OFN4326_cfgend_cpu1_o為例,點擊下圖FE_OFN4326_cfgend_cpu1_o:
找到calibredrv錯誤坐標:(1949,139)
對應到innovus去看坐標:(1949,139)
看到maia_cpu的pin腳過于密集,造成頂層連接pin腳時候會無法繞線,從而導致innovus從maia_cpu上面走線,形成short。盡管maia_cpu帶了blockage,但是invs沒有足夠的連接pin的routing resource,也就只能在maia_cpu上面去try了。
修改辦法很簡單,具體操作option參見知識星球。
保存db,重新LVS,比對通過。
03
12nm Cortex-A72—DFT實戰
開發完成,全國最低價!
04
景芯SoC—全芯片UPF后端實戰
景芯SoC培訓的全芯片UPF低功耗設計(含DFT設計)
景芯SoC訓練營培訓項目,低功耗設計前,功耗為27.9mW。
低功耗設計后,功耗為0.285mW,功耗降低98.9%!
7天沖刺PR訓練營有同學問如何給IO添加PAD?請思考景芯SoC的IO和PAD如何實現最佳?
7天沖刺PR訓練營有同學問,同樣的floorplan,有些同學很快跑完,有些同學則遇到大量DRC問題(EDA工具不停iteration)導致工具始終無法跑完,具體什么問題呢?
首先,小編發現該同學的stripe把TM2定義為了horizontal,而熟悉景芯工藝的同學知道,TM2的preference direction是VERTICAL。
查詢景芯的lef庫文件也可以確認:
用錯方向有多大影響呢?大家上景芯SoC的后端flow實踐一下吧,實踐出真知。
7天沖刺PR訓練營有同學問,為啥PR花了一天一夜24個小時完成布線還大量DRC錯誤?小編已經將設計規模盡可能減小以加速PR設計,實際上2小時就可以跑完routing,為何這么慢?原因就是低功耗單元的走線。具體原因及解決辦法歡迎加入景芯訓練營討論。
其錯誤主要集中在M4上,請思考如何解決。
7天沖刺PR訓練營有同學問,power switch cell的secondPG pin(VDDG)從M1接出的,而不是M2, 請思考有什么問題?如何解決?
7天沖刺PR訓練營有同學問,景芯SoC培訓營同學遇到Corner Pad LVS不過怎么處理?
完成景芯SoC培訓的前端設計仿真、DFT后,我們來到后端flow,本教程教你一鍵式跑完數字后端flow。
生成腳本命令如下:
tclsh ./SCRIPTS/gen_flow.tcl -m flat all
生成flow腳本之前需要配置setup.tcl等相關參數,具體參見【全網唯一】【全棧芯片工程師】提供自研的景芯SoC前端工程、DFT工程、后端工程,帶你從算法、前端、DFT到后端全流程參與SoC項目設計。
景芯SoC訓練營的同學問,為何innovus讀取做好的floorplandef文件報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的時期,我們可以通過定義fp_file的方式來加載floorplan:
set vars(fp_file) "./data_in/DIGITAL_TOP.def"
但是現在innovus升級并放棄了fp_file的加載方式,當然也可以用老版本的EDI9.1及以前版本來加入fp_file,然后轉存為新版本,這方式明顯沒有必要。正如下log提示所說,檢查log是非常好的工程師習慣。
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.
小編的直覺告訴我,先去看看同學保存的def文件是哪個def版本?
同學保存方式如下:
那么請問如何解決?請大家加入景芯訓練營實踐。
景芯SoC用了很多異步FIFO,關注異步RTL實現的同學,可以抓取異步FIFO出來看一下版圖連線:
查看下所有異步FIFO cell的面積;
dbget [dbget top.insts.pstatus unplaced -p].area
查下所有異步FIFO的cell的名字:
dbget [dbget top.insts.pstatus unplaced -p].name
那么怎么抓出異步路徑來觀察版圖走線呢?如何讓report_timing呢?更多內容參見知識星球和SoC訓練營。
審核編輯:黃飛
-
cpu
+關注
關注
68文章
10878瀏覽量
212167 -
時鐘網絡
+關注
關注
0文章
16瀏覽量
6579 -
POCV
+關注
關注
1文章
6瀏覽量
12465
原文標題:詳解POCV/SOCV時序報告
文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論