王秋實(shí), 張 杰, 孟少鵬
(中國(guó)電子科技集團(tuán)公司第三十八研究所, 安徽合肥 230088)
DDR技術(shù)起始于2001年,之后廣泛應(yīng)用于各類(lèi)芯片并成為主流?;谶@個(gè)前提,雙倍數(shù)據(jù)率物理層接口(DDR PHY)技術(shù)應(yīng)運(yùn)而生。DDR PHY成為存儲(chǔ)控制器邏輯和DRAM顆粒物理接口間的通用規(guī)范接口,加速了DDR技術(shù)的發(fā)展。在芯片中,DDR PHY通常作為一個(gè)獨(dú)立模塊單獨(dú)設(shè)計(jì)[1]。
集成電路設(shè)計(jì)分為前端設(shè)計(jì)和后端設(shè)計(jì)。前端設(shè)計(jì)包含系統(tǒng)架構(gòu)設(shè)計(jì)、子模塊設(shè)計(jì)、硬件描述語(yǔ)言實(shí)現(xiàn)及功能仿真驗(yàn)證等。后端設(shè)計(jì)是將前端設(shè)計(jì)映射到可加工的硅工藝的過(guò)程,包括綜合、布局、電源布線(xiàn)、標(biāo)準(zhǔn)單元擺放、時(shí)鐘樹(shù)綜合、繞線(xiàn)等[2]。
DDR PHY的物理設(shè)計(jì)流程與全芯片的物理設(shè)計(jì)流程相同。針對(duì)28 nm工藝的特殊性,我們特別定制了一些設(shè)計(jì)流程,包括在布局階段插入特殊的物理單元(Physical Cell)、時(shí)鐘樹(shù)繞線(xiàn)層(NDR)的選擇、繞線(xiàn)策略的更改等[3-4]。DDR PHY的物理設(shè)計(jì)的關(guān)鍵在于時(shí)序路徑的設(shè)計(jì),時(shí)序路徑質(zhì)量的好壞將嚴(yán)重影響DDR系統(tǒng)的性能。
本文首先在第一節(jié)介紹所用DDR PHY的架構(gòu),第二節(jié)描述了DDR PHY的時(shí)序路徑及其后端設(shè)計(jì)的難點(diǎn),第三節(jié)提出了基于Innovus工具的解決辦法,最后總結(jié)全文。
本文中的DDR PHY是我單位采購(gòu)的商用“半硬核”IP,基于28 nm流片生產(chǎn)。它能夠提供與JEDEC標(biāo)準(zhǔn)的DDR3和DDR4 SDRAM通信的完整物理接口,最高數(shù)據(jù)率為1 400 Mbps。
之所以稱(chēng)之為“半硬核”IP,是因?yàn)檎麄€(gè)DDR PHY基于slice構(gòu)成,IP開(kāi)發(fā)商提供已經(jīng)固化完成的slice模塊。slice模塊是DDR控制器和DRAM顆粒的“橋梁”,整個(gè)DDR PHY使用到的slice模塊種類(lèi)包括:
(1) Data slice (8 DQ/1 DM/1 DQS),負(fù)責(zé)數(shù)據(jù)信號(hào)的串并轉(zhuǎn)換;
(2) Address/control slice (4 control/address),負(fù)責(zé)地址信號(hào)的轉(zhuǎn)換;
(3) Address/control master slice,負(fù)責(zé)控制各個(gè)Address/control slice;
(4) Memory clock slice,負(fù)責(zé)時(shí)鐘信號(hào)的轉(zhuǎn)換。
圖1是DDR PHY的結(jié)構(gòu)圖。除slice模塊之外,整個(gè)DDR PHY還包括一些數(shù)字模塊,稱(chēng)之為soft module,包括DFI接口、配置接口、內(nèi)部寄存器等,構(gòu)成存儲(chǔ)控制器和slice模塊之間的電路。
圖1 DDR PHY的結(jié)構(gòu)圖
DDR PHY的輸出信號(hào)包括數(shù)據(jù)信號(hào)、地址信號(hào)、地址控制信號(hào)、時(shí)鐘信號(hào)等,每一條從時(shí)鐘輸入管腳到這些輸出信號(hào)的路徑都是需要重點(diǎn)關(guān)注的時(shí)序路徑。
歸納來(lái)說(shuō),DDR PHY中的時(shí)序路徑可以分為如下5段:
Stage 1:時(shí)鐘輸入端clk_ctrl到deskew PLL;
Stage 2:deskew PLL到slice模塊時(shí)鐘端;
Stage 3:slice模塊時(shí)鐘端到內(nèi)部寄存器CK端;
Stage 4:slice模塊內(nèi)部寄存器到slice模塊輸出端;
Stage 5:slice模塊輸出端到IO。
DDR PHY需要為存儲(chǔ)控制器邏輯和DRAM顆粒之間提供高速、穩(wěn)定、可靠的數(shù)據(jù)通信,這對(duì)時(shí)序路徑的整體延時(shí)、不同路徑之間的延遲差等設(shè)計(jì)指標(biāo)提出了苛刻的要求。
時(shí)間預(yù)算就是在時(shí)序路徑中分配延時(shí)的過(guò)程。由于各個(gè)slice模塊已經(jīng)固化,因此Stage 3和Stage 4的延遲已經(jīng)固定。為保證達(dá)到設(shè)計(jì)目標(biāo),在設(shè)計(jì)初期需要時(shí)序路徑中其他階段的延時(shí)進(jìn)行合理的規(guī)劃。
DDR的存取時(shí)間代表了讀取數(shù)據(jù)所延遲的時(shí)間,與時(shí)序路徑的整體延時(shí)直接相關(guān)。從設(shè)計(jì)指標(biāo)上來(lái)說(shuō),存取時(shí)間越小則越優(yōu)。
在布局階段,通過(guò)將deskew PLL與slice模塊就近擺放來(lái)減小Stage 2的延時(shí);通過(guò)將slice模塊與IO單元就近擺放來(lái)減小Stage 5的延時(shí)。
路徑對(duì)齊是DDR PHY時(shí)序路徑設(shè)計(jì)的最大難點(diǎn)。如圖2所示,在所有延遲角落下,路徑對(duì)齊要求如下:同一個(gè)data slice和同一個(gè)address slice的輸出信號(hào)間的延遲偏移均不能超過(guò)75 ps,同一個(gè)address control slice的輸出信號(hào)間的延遲偏移不能超過(guò)85 ps;memory clock slice的輸出信號(hào)的延遲要大于所有data slice和address slice的輸出信號(hào)間的延遲,且它們之間的延遲偏移不能超過(guò)125 ps;address slice、address control slice和memory clock slice的輸出信號(hào)間的延遲偏移不能超過(guò)150 ps;所有DDR PHY的輸出信號(hào)之間的延遲偏移不能超過(guò)170 ps。
圖2 DDR PHY路徑對(duì)齊要求
Innovus為CADENCE公司于2015年發(fā)布的全新后端物理設(shè)計(jì)平臺(tái),基于該平臺(tái)可以進(jìn)行從RTL到GDSII的全流程實(shí)現(xiàn),采用平臺(tái)內(nèi)嵌命令結(jié)合LINUX可以很方便地實(shí)現(xiàn)對(duì)數(shù)字電路網(wǎng)表文件的編輯[5]。
本節(jié)將結(jié)合項(xiàng)目實(shí)例從4個(gè)方面來(lái)闡述DDR PHY時(shí)序路徑設(shè)計(jì)難點(diǎn)的解決方法。
DCCK單元為專(zhuān)門(mén)設(shè)計(jì)的帶耦合電容的時(shí)鐘樹(shù)驅(qū)動(dòng)單元,具有如下優(yōu)點(diǎn):?jiǎn)卧舆t經(jīng)過(guò)優(yōu)化,保證時(shí)鐘路徑的延遲盡可能的小;具有對(duì)稱(chēng)的上升時(shí)間和下降時(shí)間,保證了延時(shí)鏈的精度;由于耦合電容的存在,使時(shí)鐘樹(shù)的時(shí)鐘延遲、傳輸時(shí)間、時(shí)鐘偏移等參數(shù)不易受電源波動(dòng)影響。
項(xiàng)目選取DCCK單元中閾值電壓為L(zhǎng)VT、驅(qū)動(dòng)能力為X8/12/16的緩沖器(buffer)和反相器(inverter)作為DDR PHY時(shí)鐘路徑的驅(qū)動(dòng)單元,方法如圖3所示。
圖3 使用DCCK單元的設(shè)置腳本
如前文中所說(shuō),各個(gè)slice模塊已經(jīng)固化,slice模塊時(shí)鐘輸入端到slice模塊內(nèi)部寄存器CK端的時(shí)鐘樹(shù)路徑(即Stage 3)已經(jīng)固定,項(xiàng)目使用insertion delay代表該部分時(shí)鐘樹(shù)的延遲。
項(xiàng)目使用create_ccopt_macro_model_spec命令將傳統(tǒng)cts引擎的macro model delays轉(zhuǎn)換成ccopt引擎中的insertion delay。需要注意的是,為了保證時(shí)鐘樹(shù)設(shè)計(jì)的精確性,需要在多模式多角落(MMMC)下設(shè)置insertion delay。圖4為使用insertion delay的部分設(shè)置腳本。
圖4 使用insertion delay的設(shè)置腳本
在ccopt中,skew group可以看作整個(gè)時(shí)鐘樹(shù)的子時(shí)鐘樹(shù),用戶(hù)可以根據(jù)需要定制leaf pin、insertion delay、target skew等參數(shù)。
為了滿(mǎn)足2.3節(jié)提到的路徑對(duì)齊要求,項(xiàng)目創(chuàng)建不同的skew group來(lái)調(diào)整不同類(lèi)別時(shí)序路徑的延時(shí)。主要進(jìn)行延時(shí)調(diào)整的時(shí)序路徑為時(shí)鐘輸入管腳clk_ctrl到deskew PLL的時(shí)鐘樹(shù)路徑(即Stage 1)。圖5所示為將所有data slice的deskew PLL的參考時(shí)鐘輸入端創(chuàng)建skew group。
圖5 創(chuàng)建skew group腳本
為了使deskew PLL到slice模塊時(shí)鐘端(即Stage 2)的延時(shí)盡可能小,需要手工調(diào)整該段路徑上時(shí)鐘緩沖器的位置,使時(shí)鐘走線(xiàn)結(jié)果達(dá)到最優(yōu)。
在最終的設(shè)計(jì)結(jié)果仍然無(wú)法達(dá)到路徑對(duì)齊的要求但不是很大的情況下,可以根據(jù)靜態(tài)時(shí)序分析(STA)結(jié)果手工添加緩沖器來(lái)調(diào)整,主要進(jìn)行手工調(diào)整的時(shí)序路徑為slice模塊輸出端到IO的數(shù)據(jù)路徑(即Stage 5)。
DDR PHY最終的PPA(Performance, Power, Area)結(jié)果為:
(1) 尺寸為:寬8.7 μm,高1.4 μm;
(2) 工作頻率700 MHz,速率1 400 Mbps;
(3) 功耗1.5 W,靜態(tài)電壓降1.3%。
圖6為DDR PHY完成物理設(shè)計(jì)后的結(jié)果局部圖。
圖6 DDR PHY物理設(shè)計(jì)結(jié)果圖
表1為延遲偏移最大的工藝角情況下各時(shí)序路徑的延時(shí)信息。從表中可以看出,所有DDR PHY的輸出信號(hào)之間的延遲偏移為122 ps,滿(mǎn)足170 ps的設(shè)計(jì)要求。
表1 時(shí)序路徑的時(shí)序預(yù)算
集成了該DDR PHY的一款工業(yè)級(jí)DSP已經(jīng)成功流片并通過(guò)測(cè)試,在測(cè)試板上,DDR系統(tǒng)能夠穩(wěn)定運(yùn)行在1 400 Mbps速率上。測(cè)試結(jié)果進(jìn)一步證明了本文提出的DDR PHY物理設(shè)計(jì)方法的可行性和有效性。另外,隨著工藝推進(jìn)到12 nm及對(duì)DDR PHY的速率要求提升到3 200 Mbps,本文提出的物理設(shè)計(jì)方法還有進(jìn)一步的提升空間。