實現更快的工程變更命令處理時間

為多個市場分類設計晶片的設計團隊為求能夠向客戶提供先進又具特色的產品,會持續不斷制定各種艱巨的目標;而為了達成目標,團隊也積極突破先進節點設計的效能、功耗與面積(PPA)的極限。

在PPA極限的推展過程中,最關鍵的部分在於「合成到實作」週期(synthesis-to-implementation cycle)。而在這晶片設計週期,大多數設計團隊會使用新思科技的數位設計系列(Synopsys Digital Design Family),包括Synopsys Design Compiler或Synopsys Fusion Compiler產品。設計團隊通常希望利用所有可用的高度複雜功能,例如重定時(retiming)、multibit banking、進階數據路徑優化等,藉以實現最佳成果品質(QoR)。能擁有快速、可預測的SoC設計週期,則是客戶們為能滿足銷售時機縮短,而努力實現的關鍵競爭優勢。

對於設計團隊而言,他們也須要能夠快速因應頻繁、預期之外以及最後一刻才出現的暫存器傳輸邏輯(RTL)功能改變的能力。這些改變通常以功能工程變更命令(ECO)實施,過程中RTL會被凍結,且於後期階段進行合成與佈局佈線。ECO是修復功能驗證錯誤或增加關鍵新功能時必需的指令。

相較於重新設計晶片,ECO能節省時間與成本,因此是更好的選擇。但通常ECO在設計週期的後期才會發生,且可能牽涉到極高的複雜度;意味著ECO可能會影響序列 (sequential)、狀態機(state machines)、時脈重設路徑等。因此,對於自動化工具的需求顯而易見。

什麼是功能ECO?

功能ECO (functional ECO)是在閘級網表(gate-level netlist)中插入邏輯的流程,可對應RTL發生的改變。提供此功能的自動解決方案可比較原始設計和ECO設計間受到影響的邏輯錐(logic cones),定義出最精煉並可呈現相關改變的一組閘,並可在原始設計中輕鬆實現佈局佈線網表的修補(patch)。

ECO有各式各樣的使用方式,包括在設計中添加或刪除邏輯乃至更為細緻的改變,例如:針對訊號完整性進行路由清理,可說是應有盡有。所有ECO的目標都是盡快將產品推向市場,並將正確性和時程進度的風險降至最低。處理ECO可說是一段高壓、工時長又充滿不確定性的時期。

鑑於執行ECO過程產生的進度壓力,我們的重點在於:

  • 快速的處理時間:盡快生成準確的修補
  • 最少的反覆運算:於功能方面,修補方式應具備準確以及時序性,並將對設計造成的干擾降至最低

功能ECO解決方案的成功條件

鑑於上述要求,現在就來回顧市場上現有功能 ECO解決方案的侷限(圖1)。

第一代功能ECO解決方案存在基本流程方面的限制:這類方案均遵守網表驅動(netlist-driven)流程,因此ECO創建流程只能比較兩個已完全合成的網表,也就是原始網表和新合成的ECO網表。儘管ECO可經由數行RTL或幾個組合閘確認,但這些解決方案讓使用者不得不對ECO分割區(partition)進行重新合成。考量到實施ECO的進度壓力,如果分割區需要數天時間才能完全合成,將可能使設計團隊遭遇難以承受的高昂代價。

第二項限制是為數眾多的工具都希望能在ECO合成步驟中重現合成優化。換句話說,這類解決方案期望ECO網表具備與原始網表完全相同的優化程度。但在ECO合成期間RTL的變更,可能會使合成工具採用不同的優化路徑。例如某些先前維持固定的 暫存器(register)常數,經過ECO之後可能就不再固定不變。由於某些banking策略可能不同,因此某些暫存器會合併或發生暫存器重複的步驟。

用不同優化方式針對這兩個網表進行比較的工具,可能難以正確識別邏輯錐之間的真實差異,也因此無法進行功能上的修正和/或最佳的修補,最終將在ECO合成步驟增加不必要的限制;也將導致工程師被迫進行大量繁雜的處理工作或自訂設定,讓合成步驟能重現相關功能,以讓ECO工具能夠起用這兩個網表並形成最精煉的修補。

因為擔心在ECO週期的後期可能會遇到這類複雜問題,設計工程師通常會減少合成優化步驟,如:打散模塊(ungrouping)、時序邏輯優化(sequential optimization)和反相時序優化(inversion push),讓 ECO 週期循環更順暢。本質上,ECO主導團隊進行合成的方式;但,其實應該盡可能避免這種情況。

圖一:市面上多數功能ECO解決方案都存在著會影響品質和處理時間的限制。

總括來說,現有自動化解決方案大多在ECO RTL就緒至完成ECO的過程中,會遇到以下限制:

  • 僅支援網表流程,使用者被迫執行ECO合成步驟以進行修補。由於合成過程有時需要好幾天的時間,因而將大大影響處理時間(TAT)。
  • 施加限制,換言之就是ECO合成必須以與原始合成完全相同的方式重現,以盡可能減少兩個網表之間的優化差異。由於需要大量自訂設置以進行合成重現,這也會影響到處理時間。
  • 上述兩個步驟若有任何不一致,都將可能導致工具產生出結果不正確且成效不彰的修補,並將導致多次人工返工(iteration)以取得正確修補。
  • 最後,由於擔心上述情況一次全部發生,設計人員將不使用合成優化並犧牲掉QoR。

「一次到位」的工程改變指令(ECO)解決方案

幸運的是,設計團隊可選擇能提供「一次到位」(first-time-right) 的ECO,且相較於市面上其他的競爭解決方案,速度更快、品質更好。Synopsys Formality® ECO的功能ECO解決方案能在ECO RTL準備就緒後立即啟動ECO生成過程;這對設計人員而言是一個良好的開始,並可在後期ECO期間節省大量寶貴時間(圖2)。

圖二:左邊圖示說明坊間其他競爭的功能ECO解決方案存在著限制;而右邊圖示則強調Synopsys Formality ECO解決方案能夠以更高品質和更短處理時間提供成功的ECO。

此解決方案採用革命性方法,結合利用Synopsys Formality Equivalence Checking和來自Design Compiler或Fusion Compiler解決方案本身具有的合成技術。

此時Formality ECO 解決方案會先比較原始和ECO RTL,利用結構分析功能識別並區分代表ECO的改變區域。其中的「find_equivalent_net」功能可跨越模組和flop的界限,並定位找出網路邊界。這種方法有助於將取得ECO RTL改變所需的最小ECO區域隔離出來。

然後將這些區域發送至Design Compiler或Fusion Compiler 解決方案執行「針對性合成」(targeted synthesis)。這本質上是一種ECO感知智慧合成過程,只會合成改變的區域。實際上,確實沒有必要完成整個ECO的合成。針對性合成可準確凸顯並僅合成受ECO影響的模組內部區域。另外,其合成過程是在整體設計限制的背景下所執行的智慧彙編,可支援所有需要的優化,進而排除犧牲QoR的問題。如此一來,生成的ECO可確保功能正確性。

Formality ECO技術經過證明,能夠提供快上10倍的TAT,減少5倍的修補,並可在廣泛應用領域中支援並實現設計的最大QoR (圖3)。

圖三:Synopsys Formality ECO解決方案可為高品質ECO提供諸多優勢。