天天看點

00——Phsical Design初稿2021-09-06上午

00——Phsical Design數字後端

    • 一、數字後端流程
      • 例:一個完整的設計
    • 1.DATA preparation——資料準備
      • ·Pin list file→PPA file——port資訊:IO的順序、擺放、位置
        • Floorplan 平面圖:擺放IP、IO
      • ·Wire Bond and Finger Map
        • Wire Bonding 接口文檔
        • Finger Map
      • ·LEF(Library Exchange File) 庫交換檔案
        • LEF Header(Tech File)
        • LEF Cell View(Milkyway參考庫(ref檔案))
      • ·Gate level Netlist 門級網表——Verilog
      • ·RC tech file(RTL Compiler)
      • ·timing constraints(SDC)
      • Timing Library(NLDM,CCS,ECSM)
      • First Place and Don't Touch
        • First Plac——部分IP需要優先考慮
      • don‘t touch
    • 2.FloorPlan & Place——平面布置圖&擺放(自動)
      • power、IO & blocks
      • Floorplan adjustment 調整
      • Power Distribution(power plan)——配電
      • Placement
    • 3.Timing 優化
      • 原因
      • 方法
    • 4.Clock Tree Synthesis(CTS)
      • 原因:為了同步所有的flip-flops(觸發器)
      • 目标
    • 5.Routing 繞線
    • 6.Verification驗證
      • STA Setup/Hold
      • Formal Function check
      • SI Glitch check
      • Power Simulation/Low Power check
      • DRC/LVS
      • DFM

一、數字後端流程

前端從RTL→Netlist→PR後端(後端從scan netlist開始)

00——Phsical Design初稿2021-09-06上午

例:一個完整的設計

module add_decoder_x (mem0,mem1,cs,en,add);

output		mem0,mem1,cs;
input		en;
input		[31:30] add;
reg			mem0,mem1,cs; /*register是寄存器的意思*/

always 0 (add or en)
begin	
		(mem0,mem1,cs)=3'b0;
		casex({add,en})
			3'b101 : mem0 = 1'b1;
			3'b111 : mem1 = 1'b1;
			3'b0?1 : cs = 1'b1;
		endcase
end
endmodule
           
00——Phsical Design初稿2021-09-06上午
00——Phsical Design初稿2021-09-06上午
gds.lib放在一個檔案夾裡

1.DATA preparation——資料準備

00——Phsical Design初稿2021-09-06上午

·Pin list file→PPA file——port資訊:IO的順序、擺放、位置

00——Phsical Design初稿2021-09-06上午

Floorplan 平面圖:擺放IP、IO

00——Phsical Design初稿2021-09-06上午

布圖規劃是應用闆設計的展現。

·Wire Bond and Finger Map

Wire Bonding 接口文檔

這個文檔是design house和封裝廠的接口。它描述了設計者對于晶片的封裝要求。封裝廠會根據這份文檔完成封裝設計,其結果需要design house的設計工程師确認。

Bonding Map中含有的資訊包括,封裝類型、die size、scribe line和seal ring寬度,還有PAD opening的尺寸和坐标。這些坐标通常是後端工程師從版圖中提取的,前端工程師需要計算一下是否合理。最後還有最重要的,就是wire bonding的資訊。它指定了每一個PAD opening需要bonding到哪一個finger,哪些PAD之間需要做bonding,哪些PAD需要bonding到substrate,哪些bonding是需要多根wire的。multi-wire bonding有助于減小電感,抑制SSN,當然其缺點是增加了成本。

Finger Map

00——Phsical Design初稿2021-09-06上午
  • Ball assignment and bonding consider sufficient S.I. and power quality.
  • Pad assignment correspond to substrate design rule.

    引腳排列方式符合design rule

·LEF(Library Exchange File) 庫交換檔案

LEF Header(Tech File)

00——Phsical Design初稿2021-09-06上午

手動放置位置,寫了用到的層和金屬

LEF、Timing lib在IP庫裡都會帶

LEF Cell View(Milkyway參考庫(ref檔案))

00——Phsical Design初稿2021-09-06上午

隻描述到M1,底層無所謂,還會寫上PIN的位置

圖形是由下面的代碼轉化的

·Gate level Netlist 門級網表——Verilog

展現與标準單元的關系,是從前端給的。

參考:什麼是門級網表
00——Phsical Design初稿2021-09-06上午

·RC tech file(RTL Compiler)

用來提取電容檔案,是工廠給的

·timing constraints(SDC)

設計限制(時序限制),是前端給的

對信号的限制
create_clock -name {CLKR_TSTCLK_v0} -period 10 -waveform { 0.000 5.000 }         /*> -period 10		——	周期10
> -waveform{0.000 5.000}  	——	上升沿0-5*/

set_multicycle_path -through [list \
	[get_pins AUX_TOP/U_EXTHOSTBRIDGE_AUX/WDATAFIFO/G13299/Y] \
-to [get_pins AUX_TOP/U_EXTHOSTBRIDGE_AUX/F2/G13445/Y] ] -setup -end 2
           
00——Phsical Design初稿2021-09-06上午

Timing Library(NLDM,CCS,ECSM)

定義power、pin、電容等限制

pin(Y) {
• direction : output ;
• function : "(A&B)" ;
• max_capacitance : 1.3113 ;
• max_transition : 2 ;
• min_capacitance : 0.001 ;
• internal_power() {
• related_pin : "A" ;
• when : "B" ;
• fall_power(pwr_tin_oload_7x7) {
• index_1("0.03, 0.0654369, 0.189828, 0.427371, 0.797451,1.31672, 2");
• index_2("0.001, 0.024571, 0.10731, 0.26531, 0.51147, 0.85686, 1.3113");
• values("0.0219344, 0.0224672, 0.0229511, 0.0230905, 0.0231408, 0.0231651, 0.0231768",\
• cell_rise(tmg_ntin_oload_7x7) {
• index_1("0.03, 0.0654369, 0.189828, 0.427371, 0.797451, 1.31672, 2");
• index_2("0.001, 0.024571, 0.10731, 0.26531, 0.51147, 0.85686, 1.3113");
• values("0.09922, 0.138288, 0.25111, 0.461, 0.787618, 1.2452, 1.84572",
           

First Place and Don’t Touch

First Plac——部分IP需要優先考慮

00——Phsical Design初稿2021-09-06上午

優先考慮一些特殊要求,比如:

  • 距離相等
  • 資料不需要同時到達
  • 時鐘和資料都from/to IP子產品
IP指設計好的可以移植到别的晶片中的子產品(可以是電路或者是版圖),能夠買賣

don‘t touch

1.SDC檔案無法限制此類路徑。

2.通過手動逐個打開,set_max_delay設定最大延遲,或set_min_delay設定最小延遲來檢查延遲。

IP子產品的的timing library幾乎都是假的。

3.對于我們來說,develop a mix model flow to signoff the interface非常重要

2.FloorPlan & Place——平面布置圖&擺放(自動)

power、IO & blocks

1.根據PPA檔案放置IO和IP。

2.微調每個SRAM和子產品位置。

3.優先考慮first place關鍵cell。

4.power planning。

floorplan的目标是:

◆ 實體blocks的分區設計。

◆ 決定IO pads的位置、power pads的數量/位置和配電。

◆ 最小的congestion(擁塞)和關鍵path delay。

◆ 使晶片盡可能緻密。

撐面積解決問題,chip小供電最好

00——Phsical Design初稿2021-09-06上午

Floorplan adjustment 調整

00——Phsical Design初稿2021-09-06上午

布局→place→嘗試繞線→時序收斂

由routable和Timing判斷Floorplan合不合理
  • Floorplan:微調SRAM位置,檢查電源plan,調整晶片size,添加布線金屬等
  • Placement:建立place guide,設定子產品密度,保留布線通道等

Power Distribution(power plan)——配電

把需要供電的吃到電,減少壓降

RDL和metal7用線連起來

00——Phsical Design初稿2021-09-06上午

配電的目标是:

•連接配接電源pads和邏輯單元的VDD/VSS之間的金屬線。

•将壓降降至最低

•盡量減少地彈(ground bounce)

•VDD壓降和VSS地彈之和小于5%*VDD(靜态)

Placement

stdcell的place是工具自動完成的,placement是把stdcell拼起來
00——Phsical Design初稿2021-09-06上午

1.平面圖決定stdcell的放置位置。

2.每個cell等高不等寬。

3.放置在row上。

placement的目标是——

❑ 确定cell的位置。

❑ 最小的timing violation and congestion(時序沖突和擁塞)。

3.Timing 優化

原因

解決timing violation,修複wire load線負載模型 (預估stdcell之間的連線)和真實的RC loading的差距

前端拿來的是理想的,後端有真實繞線
00——Phsical Design初稿2021-09-06上午

實體層的面積 placement遠大于線負載區域

方法

如何進行timing優化

定時優化的任務包括:

  1. 首先,清除max、load max、transition沖突。(會導緻大的delay)
  2. 清除setup/hold的time violation沖突。
  3. 最大限度地減少關鍵path的延遲。
  4. 觸發器脈沖(flip flop pulse)寬度檢查。(最小寬度)
  5. clock負載檢查。(高電平)

Timing優化的辦法包括:

  1. 調整up/down cell的大小

    ——同一段功能不同size的stdcell,驅動不夠是以要增大減小size

  2. 插入緩沖區(buffers) ——距離過遠
  3. split loading分載 64→32*2這樣分裂
  4. 重構/複制

4.Clock Tree Synthesis(CTS)

原因:為了同步所有的flip-flops(觸發器)

00——Phsical Design初稿2021-09-06上午

将單個clock net轉換為多級緩沖樹,因為cell的驅動能力

前端不需要buffer(緩沖)→後端需要接太多flip-flops(觸發器→為了時鐘同步→同步delay)。為了增加驅動必須接buffer降loading

目标

  1. 縮小clock skew——最大和最小的delay的內插補點(越小越好,能容易的修複setup/hold的時序沖突 time violations)
  2. clock transition time最小——couple noise(耦合噪音)變小;clock jitter(時鐘抖動)變好
  3. 更少的clock緩沖來降低power功耗——功耗占full chip的20%~30%
  4. 最小的clock buffer level——降低OCV和clock jitter時鐘抖動

5.Routing 繞線

stdcell之間;ip和stdcell之間有連線在netlist裡,在這步接M2接stdcell的pin,自動繞線,如果不通就幹預
00——Phsical Design初稿2021-09-06上午

繞線的目的是:

❑ 用金屬線實體連接配接邏輯單元。

❑ 讓連線繞線最短和面積最小化。

❑ 盡可能減少圖層的變動次數以建立連接配接。

6.Verification驗證

00——Phsical Design初稿2021-09-06上午

STA Setup/Hold

28HLP sta标準

電壓是0.9*C

Formal Function check

SI Glitch check

Power Simulation/Low Power check

DRC/LVS

DFM

52.sram的位置會影響擺放、timing和繞線

53.如何擺放sram 一般是一大片出現

每個module關系比較近的要靠在一起 按G找一個group的

54.congestion解決不掉就要重來

55.時序收斂

優化時序之前要

看timing report

分析擺放

解決congestion問題

完成CTS之後要确認你的verilation

56.時序收斂的方法

57.繞線資源緊張會發生short

不能發生congestion issues

繼續閱讀