?

門控時鐘單元IP核設計

2009-01-20 02:08陳志強潘蘭芳韓安太吳秀山
中國集成電路 2009年10期
關鍵詞:低功耗

陳志強 潘蘭芳 韓安太 吳秀山

摘要:門控時鐘是VLSI設計中降低功耗的一種主要技術,將門控時鐘設計為一個獨立的IP,可以降低設計的復雜性。在對門控時鐘的基本工作原理和結構分析的基礎上,本文給出了將門控時鐘單元電路設計為一個獨立IP核的設計流程,并生成了系統物理設計和驗證階段所需要的庫文件。設計結果已成功地應用于高性能、低功耗嵌入式CPU的設計。

關鍵詞:門控時鐘單元;IP核;低功耗;靜態時序分析

中圖分類號:TN47 文獻標識碼:A

1引 言

在同步電路中,每個時序單元都有一個時鐘信號,時鐘信號通過時鐘網絡連接到各個時序單元,時鐘網絡能夠提供足夠的驅動并且能將時鐘偏移控制在一定的范圍內。但是由于時鐘信號在系統工作期間不斷地翻轉,以及時鐘網絡的產生使線網電容增加,導致系統功耗增加,當時序單元中寄存器的狀態不需要改變或者一些功能模塊(如ALU,內存,FPU等)在某一個時間段空閑時,關閉其時鐘信號是降低時序電路時鐘信號功耗的一種有效途徑。有研究表明,數字計算機中時鐘信號的功耗占總功耗的15%-45%之多[1]。

門控時鐘技術[1-4]能夠有效減少電路中的冗余翻轉,將空閑電路模塊的時鐘信號臨時關閉以減小電路的功耗,是一種重要的降低時鐘信號功耗的方法。通常門控時鐘引入是在設計的邏輯綜合階段,加入門控時鐘綜合腳本,在設計中插入門控時鐘結構。但是門控時鐘結構中有一個鎖存器,這樣在綜合階段和后續的靜態時序分析(STA)、自動測試模式生成(ATPG)、時鐘樹綜合(CTS)等步驟中都要特別考慮門控時鐘結構,增加了后續工作量,延長了設計的tape-out時間。但是如果將門控時鐘結構做成一個獨立的IP(Intellectual Property,知識產權),就能像標準單元一樣使用,降低了設計測試的復雜性[4]。

本文詳細分析了門控時鐘的基本工作原理和組成結構,并給出了將門控時鐘單元電路設計為一個獨立IP的流程。設計的門控時鐘單元IP核已成功地應用于嵌入式CPU-CKxxx(xxx為隱去的型號)的設計中。

2門控時鐘基本工作原理和結構

ASIC設計中一般采用上升沿觸發的D觸發器來組成寄存器和/或存儲單元,如果D觸發器要保持前一個狀態的值,一般采用如圖1所示的MUX電路。

在圖1中,當寄存器狀態需要改變時,GATE端使能,輸入端信號通過MUX進入D觸發器,觸發器的時鐘一直有效,即使在GATE關閉時,D觸發器也在工作。在存在大量的總線和寄存器組的設計中,這些冗余的翻轉會消耗大量的功耗。如果可以使用一個門控時鐘單元替代MUX,芯片的面積也將減小,功耗也就相應降低。

門控時鐘的基本原理如圖2所示。當Q值相對于前一個時鐘周期保持穩定或者不需要數據通路的輸出時,使Enable=0,屏蔽時鐘信號CLK,否則Enable=1,使電路處于正常工作狀態。

對于上升沿觸發的觸發器,門控時鐘的原理如圖3所示,它在邏輯功能上與圖1所示的電路相同,當EN=1時,時鐘信號被屏蔽,GCLK端沒有時鐘信號;當EN=0時,時鐘信號正常。但是,必須保證EN在時鐘的前半周期達到穩定。

如果改用與門實現上升沿觸發器的門控時鐘,即使EN在時鐘的前半周期達到穩定,GCLK也會出現毛刺,所以上升沿觸發器的門控時鐘一般利用或門實現。但是如果,EN信號在時鐘的后半周期達到穩定,也會有毛刺出現。為了解決這個問題,在或門的前面加一個鎖存器,這樣不管EN信號何時達到,毛刺都不會傳遞到GCLK可以阻止。

圖2中虛線框內是改進后的門控時鐘結構,引入鎖存器以后,要將或門改為與門,否則GATE信號為高電平時會將時鐘信號屏蔽,導致時鐘信號不能達到GCLK端。鎖存器保證了GATE信號只有在CLK發生當D觸發器的狀態不需要改變時,GATE信號為0,這時GCLK端沒有時鐘信號,觸發器的狀態保持不變,這樣就可以使D觸發器在狀態不需要改變時關閉觸發端的時鐘信號,從而達到降低功耗的目的。圖5顯示了門控時鐘工作波形。

3建立門控時鐘單元

由于Foundry提供的免費單元庫沒有門控時鐘單元,為了節約設計成本,門控時鐘單元需要自行設計。一個完整的門控時鐘單元庫需要建立以下庫文件:用于版圖編輯的GDS2文件、用于綜合和布局布線的timing model(*.db格式和*.lib格式)和LEF文件、用于LVS的spice網表。下面給出基于TSMC18標準單元庫將圖2所示的結構設計為一個物理門控時鐘結構單元的步驟。

3.1 門控時鐘單元結構的Verilog HDL描述

下面為一個邏輯時鐘單元的Verilog硬件描述:

#file name: gated_cell.v

module gated_cell (clk_in, SE, external_en, clk_out);

input clk_in, SE, external_en;

output clk_out;

wire clk_en_af_latch, n1;

TLATNX4 clk_en_af_latch_reg ( .D(external_en), .GN(clk_in), .Q(clk_en_af_latch) );

OAI21X4 U1 (.A0(SE), .A1(clk_en_af_latch), .B0(clk_in), .Y(n1) );

CLKINVX20 U2 ( .A(n1), .Y(clk_out) );

endmodule

其中clk_in, SE, external_en和clk_out分別對應于圖2中的CLK, SCAN_ENABLE, GATE和GCLK,實例TLATNX4, OAI21X4和CLKINVX20的尺寸是根據全局設計中的驅動能力在標準單元庫中選擇的。

3.2 產生門控時鐘單元的版圖描述GDS2文件和LEF文件

利用商業化的布圖布線工具產生門控時鐘的GDS2文件。這里以CADENCE版圖設計工具SE來說明門控時鐘的版圖描述GDS2文件的設計過程。

(1) 讀入標準單元庫的LEF(Library Exchange Format,庫交換格式)文件;讀入標準單元庫timing model GCF(General Constraints Format)文件;讀入門控時鐘單元的Verilog HDL網表文件和標準單元的Verilog HDL網表文件tsmc18.v。

(2) 初始化預布局(initialize floorplan),放置設計單元,布線。

(3) 在SE中導出門控時鐘單元的GDS2文件和LEF文件。

(4) 這里產生的GDS2文件是通過讀入標準單元的LEF文件產生的,不包含其中三個標準單元的版圖信息。所以要將SE導出的GDS2文件和Foundry提供的標準單元的GDS2文件讀入CADENCE的工具Virtuso,然后從Virtuso中再導出包含三個標準單元版圖信息的完整的GDS文件。生成的版圖如圖6所示。

3.3 Timing model的產生

Timing model提供單元的時序信息,在物理設計階段用于時序分析和時序優化。Primetime是SYNOPSYS公司的靜態時序分析工具,這里借助Primetime來提取門控時鐘單元的Timing model。下面給出了min/max時序分析分析用Timing model的產生步驟,獨立的min,typical,max分析用的Timing model的產生步驟也是如此,只不過產生過程用的命令有些許變化(可以參考SYNOPSYS的幫助文檔)。

(1) 定義搜索和連接路徑;讀入標準單元庫的timing model文件

用到的命令:set link_path; set search_path; read_min_max_lib。

(2) 讀入門控時鐘單元的Verilog HDL描述設計,設定連線模型和運行環境,設定時鐘信號。

用到的命令:read_db; link_design; set_wire_load_model; set_operating_conditions; create_clock.

(3)提取門控時鐘的timing model。

命令和設定如下:

set extract_model_conservative true

set extract_model_tolerance 0.02

set extract_model_transition_limit 5.0

set extract_model_capacitance_limit 64

set extract_model_min_resolution 0.01

set extract_model_min_delay_threshold 35.0

extract_model -output ./model_min_max

-operating_conditions {MAX MIN}

-format {db lib}

-library_cell

- test_design

(4)打開產生的*.lib文件,將對應的引腳名改為圖中所示引腳名。由于*.lib文件可以進行編輯而*.db文件不能,所以將修改后的*.lib文件再讀入Primetime,重新提取修正過的db文件。

3.4 LVS用的spice網表文件的產生

運用MENTOR公司的Calibre生成門控時鐘單元的SPICE網表文件,產生的網表文件用于對這個設計進行LVS時引用。命令格式如下:

v2lvs –v ./verilog/clock_gating_cell.v –o ./lvs_netlist

/clock_gating_cell.sp

經過以上步驟,生成了物理設計階段門控時鐘單元的庫文件,利用這些庫文件,就能夠在設計中將建立的門控時鐘單元像標準單元一樣使用。在布局布線優化、時序優化和功耗優化時不需要額外考慮門控時鐘單元具體版圖信息、時序信息。

4門控時鐘單元在嵌入式

低功耗高性能CPU-CKxxx中的應用

CKxxx(xxx為隱去的型號)是一個“32位高性能低功耗嵌入式CPU,其中包含大量的總線和寄存器組,這種結構適合于使用門控時鐘,由于使用一個門控時鐘單元IP可以替代多個MUX,減小芯片面積,降低芯片物理設計的復雜性。利用上述流程設計的IP已成功地應用于CKxxx的設計中,圖7中白色的框為門控時鐘IP核單元的分布。

流片后的測試表明,采用門控時鐘單元IP設計的CKxxx工作正常。門控時鐘單元IP在CKxxx設計中的應用,降低了STA的復雜性和其它后續的工作量,縮短了該芯片的tape-out時間,降低了芯片了功耗和面積,提升了設計的時序性能,提高了產品的整體性能。

5結論

將門控時鐘單元電路設計成一個獨立的IP,可以降低芯片物理設計階段的復雜性,減小芯片的面積,提升系統的時序性能,保證設計的成功率。首先根據門控時鐘結構的Verilog HDL描述,在TSMC18工藝庫的基礎上生成了邏輯綜合階段所需要的庫文件,時序分析所需要的Timing model,版圖描述GDS2文件和LVS用的SPICE網表文件。該門控時鐘單元在嵌入式低功耗高性能CPU中的成功應用說明了本文的設計的單元是正確的、有效的。

參考文獻

[1] Qing Wu, Pedram M, and Xunwei Wu, Clock-gating and its application to low power design of sequential circuits[J]. Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on, 2000. 47(3): p. 415-420.

[2] Mukheijee A and Marek-Sadowska M. Clock and power gating with timing closure[J]. Design & Test of Computers, IEEE, 2003. 20(3): 32-39.

[3] Darren Jones, How to successfully use gated clocking in an ASIC design[C]. Boston: SNUG report, 2002.

[4] Synopsys, Power Compiler User Guide. 2003.

[5]Gray, Yeap K. Practical low power digital VLSI design[M]. Massachusetts: Kluwer Academic Publishers Group, 2001(2).

[6] 張永新, 陸生禮, 茹邦琴.門控時鐘的低功耗設計技術[J].微電子學與計算機.2004, 21(1):23-26

作者簡介

陳志強,博士,主要研究方向為超大規模集成電路低功耗設計研究及物理設計。

猜你喜歡
低功耗
核芯互聯發布高性能ADC模數轉換器
萊迪思發布全新低功耗FPGA技術平臺
一種應用于低功耗植入式醫療芯片的無線能量管理單元
物聯網產業離不開低功耗藍牙通信技術
基于SOC的智能野外目標監視和記錄系統設計與實現
基于餐飲服務的無線呼叫系統研究
基于ZigBee的無線聯網門鎖設計
基于壓電效應的傳感器自供電徐詩友
基于Chirp擴頻的超寬帶信號傳輸性能分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合