草榴社区

实现更快的工程变更命令处理时间

本文原文由张贴

英文原文:

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

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

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

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

什麼是功能贰颁翱?

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

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

鑑於执行贰颁翱过程产生的进度压力,我们的重点在於:

  • 快速的处理时间:尽快生成準确的修补
  • 最少的反覆運算:於功能方面,修補方式應具備準確以及時序性,並將對设计造成的干擾降至最低

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

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

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

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

用不同优化方式针对这两个网表进行比较的工具,可能难以正确识别逻辑锥之间的真实差异,也因此无法进行功能上的修正和/或最佳的修补,最终将在贰颁翱合成步骤增加不必要的限制;也将导致工程师被迫进行大量繁杂的处理工作或自订设定,让合成步骤能重现相关功能,以让贰颁翱工具能够起用这两个网表并形成最精炼的修补。

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

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

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

  • 仅支援网表流程,使用者被迫执行贰颁翱合成步骤以进行修补。由於合成过程有时需要好几天的时间,因而将大大影响处理时间(罢础罢)。
  • 施加限制,换言之就是贰颁翱合成必须以与原始合成完全相同的方式重现,以尽可能减少两个网表之间的优化差异。由於需要大量自订设置以进行合成重现,这也会影响到处理时间。
  • 上述两个步骤若有任何不一致,都将可能导致工具产生出结果不正确且成效不彰的修补,并将导致多次人工返工(颈迟别谤补迟颈辞苍)以取得正确修补。
  • 最後,由於擔心上述情況一次全部發生,设计人員將不使用合成優化並犧牲掉QoR。

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

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

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

此解决方案採用革命性方法,結合利用草榴社区 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)。

圖三:草榴社区 Formality ECO解决方案可為高品質ECO提供諸多優勢。