為了延長電子便攜式產品的電池使用時間,降低設計功耗變得越來越重要。在IC設計流程中,多種電源管理技術逐漸被應用,如clockgating,MSV(Multiple Supply Voltage),PSO(Power ShutOff)。然而這些低功耗技術的引入,對驗證工作帶來了很大的挑戰性。 CPF(Common Power Format)是Cadence公司提出的一套完整的低功耗解決方案。本文根據CPF在低功耗驗證過程中的實際使用情況,闡述了如何使用CPF來查找低功耗設計問題以及簡化驗證工作。 VIA芯片的低功耗設計和驗證的挑戰 在筆者目前負責的芯片中,用到的主要的低功耗設計技術包括clock gating,MSV(Multiple Supply Voltage)和PSO(Power Shut Off)。CPF主要被用于進行PSO的驗證。 圖1是一個芯片結構示意圖:黃色區域表示電源always-on的電源域。電源關斷的控制信號來自外部。 圖1 芯片模塊圖 低功耗芯片設計的驗證方式評估 由于RTL代碼沒有電源信息,因此在RTL通常很難驗證到和低功耗設計相關的bug。 為了實現RTL級代碼的power aware驗證,我們在2007年第四季度針對支持低功耗設計的驗證方式進行了評估,選擇了基于CPF的Cadence的流程和另外一家基于PLI方式的低功耗驗證方式進行了評估。 表1是評估結果。 表1 Power Aware驗證評估結果 應用CPF驗證低功耗設計流程 1 將低功耗設計規范寫成cpf文件 此步驟在我們的設計中非常簡單,下面是一個簡單的cpf文件的示意。 # Define the top domain set_design TOP # Define the default domain create_power_domain -name pdTop -default # Define Power-Domain A create_power_domain -name pdA -instances {uA uC} -shutoff_condition {!uPCM/pso[0]} 2 在驗證流程中讀入cpf文件 應用IDTS進行仿真包括3個步驟: Ncvlog:編譯文件 Ncelab:擴展和鏈接 Ncsim:進行仿真 進行power aware simulation時,只需要在第二步ncelab增加一個option“-nclps_cpf design.cpf”把第一部產生的cpf讀入就可以了。 以下是進行仿真之前關于低功耗設計的相關信息: ***Low Power Simulation Power Information Power domain -Default -AlwaysOn Power domain -Instances: TESTBENCH.inst.alu_inst.aui Power domain -Instances: TESTBENCH.inst.alu_inst.lui Power domain -Instances: TESTBENCH.inst.alu_inst Power domain -Instances: TESTBENCH.inst.rf_inst Total number of power domains:5 圖2是電源關斷恢復的波形圖。 當對應的電源關斷控制信號有效時,對應的power domain中的信號被置為X值。 當對應的電源關斷控制信號有效時,對應的power domain中的信號依然為X,當對應的信號恢復程序執行后,信號恢復正常。 圖2 電源關斷恢復的波形圖 應用CPF驗證低功耗設計 在選定Cadence基于CPF的power aware verification flow作為此項目的低功耗設計芯片的設計流程之后,我們在其他設計中也應用了此流程,如門級網表設計等。 在應用此流程之后,設計人員得以發現了一些與低功耗設計相關的設計bug,避免了芯片的失敗。 由于設計和驗證環境都非常復雜,Cadence flow中顯現出一些問題: ① default power domain shut-off: 最初CPF文件不支持default power domain可以被關斷,導致cpf文件寫起來比較麻煩,因為此項目中的design是大部分電路可以被關斷,只有部分電路是always-on。 經功能改進后,現在的Cadence在IUS611S011之后的版本中增加了此項功能。 ② pass-through信號的處理: 當一個來在always-on domain的信號值通過一個shut-off domain到達一個always-on domain時,此信號被置為X值。 此功能后未被實現在新版本軟件中。目前可以有一個選項控制,對于這類信號是保持或者被置為X值。 ③force信號的處理: 為實現某些特定功能,在驗證環境中增加了一系列force語句。當這些force應用到可以被關斷的power domain中的信號時,一旦此模塊被關斷,又恢復供電之后,這些force將丟失。 目前此功能增強申請正在處理中。 目前我們的低功耗設計技術還比較簡單,只應用了電源關斷技術。CPF還可以支持信號隔離(isolation),狀態保留寄存器(SRPG)等,這在將來的設計中可能使用到。 結束語 通過應用Cadence的基于CPF的power aware驗證流程,實現了針對低功耗設計的流程。應用此流程,我們無須對現有流程做修改,并幫助發現設計中如果不應用此流程無法發現的bug,使得開發人員在進行后端設計之前就可以及時發現和低功耗相關的bug。 |