王秋實, 張 杰, 孟少鵬
(中國電子科技集團公司第三十八研究所, 安徽合肥 230088)
DDR技術起始于2001年,之后廣泛應用于各類芯片并成為主流。基于這個前提,雙倍數據率物理層接口(DDR PHY)技術應運而生。DDR PHY成為存儲控制器邏輯和DRAM顆粒物理接口間的通用規范接口,加速了DDR技術的發展。在芯片中,DDR PHY通常作為一個獨立模塊單獨設計[1]。
集成電路設計分為前端設計和后端設計。前端設計包含系統架構設計、子模塊設計、硬件描述語言實現及功能仿真驗證等。后端設計是將前端設計映射到可加工的硅工藝的過程,包括綜合、布局、電源布線、標準單元擺放、時鐘樹綜合、繞線等[2]。
DDR PHY的物理設計流程與全芯片的物理設計流程相同。針對28 nm工藝的特殊性,我們特別定制了一些設計流程,包括在布局階段插入特殊的物理單元(Physical Cell)、時鐘樹繞線層(NDR)的選擇、繞線策略的更改等[3-4]。DDR PHY的物理設計的關鍵在于時序路徑的設計,時序路徑質量的好壞將嚴重影響DDR系統的性能。
本文首先在第一節介紹所用DDR PHY的架構,第二節描述了DDR PHY的時序路徑及其后端設計的難點,第三節提出了基于Innovus工具的解決辦法,最后總結全文。
本文中的DDR PHY是我單位采購的商用“半硬核”IP,基于28 nm流片生產。它能夠提供與JEDEC標準的DDR3和DDR4 SDRAM通信的完整物理接口,最高數據率為1 400 Mbps。
之所以稱之為“半硬核”IP,是因為整個DDR PHY基于slice構成,IP開發商提供已經固化完成的slice模塊。slice模塊是DDR控制器和DRAM顆粒的“橋梁”,整個DDR PHY使用到的slice模塊種類包括:
(1) Data slice (8 DQ/1 DM/1 DQS),負責數據信號的串并轉換;
(2) Address/control slice (4 control/address),負責地址信號的轉換;
(3) Address/control master slice,負責控制各個Address/control slice;
(4) Memory clock slice,負責時鐘信號的轉換。
圖1是DDR PHY的結構圖。除slice模塊之外,整個DDR PHY還包括一些數字模塊,稱之為soft module,包括DFI接口、配置接口、內部寄存器等,構成存儲控制器和slice模塊之間的電路。

圖1 DDR PHY的結構圖
DDR PHY的輸出信號包括數據信號、地址信號、地址控制信號、時鐘信號等,每一條從時鐘輸入管腳到這些輸出信號的路徑都是需要重點關注的時序路徑。
歸納來說,DDR PHY中的時序路徑可以分為如下5段:
Stage 1:時鐘輸入端clk_ctrl到deskew PLL;
Stage 2:deskew PLL到slice模塊時鐘端;
Stage 3:slice模塊時鐘端到內部寄存器CK端;
Stage 4:slice模塊內部寄存器到slice模塊輸出端;
Stage 5:slice模塊輸出端到IO。
DDR PHY需要為存儲控制器邏輯和DRAM顆粒之間提供高速、穩定、可靠的數據通信,這對時序路徑的整體延時、不同路徑之間的延遲差等設計指標提出了苛刻的要求。
時間預算就是在時序路徑中分配延時的過程。由于各個slice模塊已經固化,因此Stage 3和Stage 4的延遲已經固定。為保證達到設計目標,在設計初期需要時序路徑中其他階段的延時進行合理的規劃。
DDR的存取時間代表了讀取數據所延遲的時間,與時序路徑的整體延時直接相關。從設計指標上來說,存取時間越小則越優。
在布局階段,通過將deskew PLL與slice模塊就近擺放來減小Stage 2的延時;通過將slice模塊與IO單元就近擺放來減小Stage 5的延時。
路徑對齊是DDR PHY時序路徑設計的最大難點。如圖2所示,在所有延遲角落下,路徑對齊要求如下:同一個data slice和同一個address slice的輸出信號間的延遲偏移均不能超過75 ps,同一個address control slice的輸出信號間的延遲偏移不能超過85 ps;memory clock slice的輸出信號的延遲要大于所有data slice和address slice的輸出信號間的延遲,且它們之間的延遲偏移不能超過125 ps;address slice、address control slice和memory clock slice的輸出信號間的延遲偏移不能超過150 ps;所有DDR PHY的輸出信號之間的延遲偏移不能超過170 ps。

圖2 DDR PHY路徑對齊要求
Innovus為CADENCE公司于2015年發布的全新后端物理設計平臺,基于該平臺可以進行從RTL到GDSII的全流程實現,采用平臺內嵌命令結合LINUX可以很方便地實現對數字電路網表文件的編輯[5]。
本節將結合項目實例從4個方面來闡述DDR PHY時序路徑設計難點的解決方法。
DCCK單元為專門設計的帶耦合電容的時鐘樹驅動單元,具有如下優點:單元延遲經過優化,保證時鐘路徑的延遲盡可能的小;具有對稱的上升時間和下降時間,保證了延時鏈的精度;由于耦合電容的存在,使時鐘樹的時鐘延遲、傳輸時間、時鐘偏移等參數不易受電源波動影響。
項目選取DCCK單元中閾值電壓為LVT、驅動能力為X8/12/16的緩沖器(buffer)和反相器(inverter)作為DDR PHY時鐘路徑的驅動單元,方法如圖3所示。

圖3 使用DCCK單元的設置腳本
如前文中所說,各個slice模塊已經固化,slice模塊時鐘輸入端到slice模塊內部寄存器CK端的時鐘樹路徑(即Stage 3)已經固定,項目使用insertion delay代表該部分時鐘樹的延遲。
項目使用create_ccopt_macro_model_spec命令將傳統cts引擎的macro model delays轉換成ccopt引擎中的insertion delay。需要注意的是,為了保證時鐘樹設計的精確性,需要在多模式多角落(MMMC)下設置insertion delay。圖4為使用insertion delay的部分設置腳本。

圖4 使用insertion delay的設置腳本
在ccopt中,skew group可以看作整個時鐘樹的子時鐘樹,用戶可以根據需要定制leaf pin、insertion delay、target skew等參數。
為了滿足2.3節提到的路徑對齊要求,項目創建不同的skew group來調整不同類別時序路徑的延時。主要進行延時調整的時序路徑為時鐘輸入管腳clk_ctrl到deskew PLL的時鐘樹路徑(即Stage 1)。圖5所示為將所有data slice的deskew PLL的參考時鐘輸入端創建skew group。

圖5 創建skew group腳本
為了使deskew PLL到slice模塊時鐘端(即Stage 2)的延時盡可能小,需要手工調整該段路徑上時鐘緩沖器的位置,使時鐘走線結果達到最優。
在最終的設計結果仍然無法達到路徑對齊的要求但不是很大的情況下,可以根據靜態時序分析(STA)結果手工添加緩沖器來調整,主要進行手工調整的時序路徑為slice模塊輸出端到IO的數據路徑(即Stage 5)。
DDR PHY最終的PPA(Performance, Power, Area)結果為:
(1) 尺寸為:寬8.7 μm,高1.4 μm;
(2) 工作頻率700 MHz,速率1 400 Mbps;
(3) 功耗1.5 W,靜態電壓降1.3%。
圖6為DDR PHY完成物理設計后的結果局部圖。

圖6 DDR PHY物理設計結果圖
表1為延遲偏移最大的工藝角情況下各時序路徑的延時信息。從表中可以看出,所有DDR PHY的輸出信號之間的延遲偏移為122 ps,滿足170 ps的設計要求。

表1 時序路徑的時序預算
集成了該DDR PHY的一款工業級DSP已經成功流片并通過測試,在測試板上,DDR系統能夠穩定運行在1 400 Mbps速率上。測試結果進一步證明了本文提出的DDR PHY物理設計方法的可行性和有效性。另外,隨著工藝推進到12 nm及對DDR PHY的速率要求提升到3 200 Mbps,本文提出的物理設計方法還有進一步的提升空間。