|
作者:John Gallagher ASIC綜合產品營銷總監(jiān) Synplicity公司 E-mail: Johng@synplicity.com
編者按:隨著設計復雜性增加,傳統(tǒng)的綜合方法面臨越來越大的挑戰(zhàn)。為此,Synplicity公司開發(fā)了同時適用于FPGA或 ASIC設計的多點綜合技術,它集成了“自上而下”與“自下而上”綜合方法的優(yōu)勢,能提供高結果質量和高生產率,同時削減存儲器需求和運行時間。
盡管半導體技術在其發(fā)展過程中曾遭遇種種難以克服的障礙,但正如高登·摩爾多年前所預言的那樣,ASIC和FPGA的密度繼續(xù)每隔18個月翻一番。
硅潛力的疾速釋放是一件喜憂摻半的事。一方面,硅技術提供的功能與性能可以滿足最具挑戰(zhàn)性應用的需要;另一方面,當今設計工具的局限性令人沮喪,因為這使我們無法充分利用硅技術的全部潛力。隨著設計規(guī)模和器件復雜性不斷攀升,設計工作成為阻礙我們實現(xiàn)各類IC的制約因素。盡管電子設計自動化(EDA)行業(yè)近10年來一直致力于解決這個問題,但所謂的“生產力落差”仍在持續(xù)擴大。
設計綜合面臨的挑戰(zhàn)
這種生產力落差在綜合領域表現(xiàn)得最為明顯。傳統(tǒng)綜合方法的處理能力有限,因而要求將設計分割成不超過20萬門的子模塊。對于容量達2千萬門的芯片,設計者可能需要管理100個以上的不同子模塊,以完成一個設計的綜合。此外,大多數(shù)設計者更習慣基于功能或時序分割設計,相對而言,基于門數(shù)進行分割顯得不夠直觀。當前綜合流程的另一個缺陷是它們不能很好地優(yōu)化分立的功能。這正是今天需要獨立數(shù)據路徑綜合的原因之一。嵌入式FPGA將既需要專門的綜合映射器,又需要在全芯片的背景下進行優(yōu)化。
自十年前出現(xiàn)綜合技術以來,設計復雜性取得了驚人的增長。因此,傳統(tǒng)解決方案的效力正在衰退,這的確不足為奇。
設計復雜性還給綜合技術帶來許多其它問題。當一個綜合應用必須有效地操作大量設計數(shù)據時,存儲器利用率將變成一項真正的挑戰(zhàn)。除了龐大的設計規(guī)模外,處理計算任務所需的設計管理開銷也會使運行時間延長。隨著高復雜度、高約束性的功能被分解到綜合過程中,IP集成亦成為設計者必須面臨的另一項挑戰(zhàn)。為了不斷優(yōu)化時序或理順子模塊之間的相關性,設計反復的次數(shù)將會大大增加,從而顯著延長設計時間。
在把綜合技術應用于復雜設計時,所面臨的另一個重要挑戰(zhàn)是保持設計穩(wěn)定性。當把優(yōu)化后的子模塊集成回整個設計中時,這可能帶來意想不到的復雜問題。隨著設計和硅技術變得越來越復雜,這些問題的復雜性將隨之增加。為了克服綜合工具的上述缺點,設計者正在采用以下幾種策略。一種是復雜的外圍工作,如編寫高級腳本。這種基于外圍工作的解決方案雖然能夠達到目的,但通常會過度犧牲結果的質量(QoR)和生產效率。為了使用傳統(tǒng)方法成功地對一個大型ASIC設計進行綜合,這常常需要擴展的人工腳本,但由人工編寫腳本是極容易出錯的,而且要求設計者具有很高的腳本編寫技巧。這種方法只能給設計帶來很少的“增加值”,但卻要消耗寶貴的人力和時間。
另一個策略是專注于寄存器傳輸級(RTL)設計,然后將RTL交由ASIC供應商來綜合與實現(xiàn)。籍此,設計者可以避免與傳統(tǒng)綜合有關的麻煩。這種“RTL簽字確認(signoff)”方法非常依賴于高質量的RTL以及芯片供應商愿意為設計結果承擔風險的責任心。設計者可能會擔心設計被交付給那些對設計及系統(tǒng)問題知之甚少而且不關心設計能否成功的公司。
從這些策略的本性來看,它們假定綜合無法改進或者綜合就是瓶頸。然而,綜合是所有高級IC設計流程中一個根本的組成環(huán)節(jié)。無論由誰來執(zhí)行綜合,只要這種技術繼續(xù)困擾芯片的實現(xiàn),我們就會犧牲設計工作的生產效率和質量。因此,綜合是一個必須解決的重要問題。
“自上而下”與“自下而上”
傳統(tǒng)上,解決綜合問題有兩種方法:“自下而上”和“自上而下”。每種方法各有其長處和不足。“自下而上”的方法是指將設計分割成綜合工具處理容量之內的子模塊,從而使每個模塊能夠被獨立處理。這允許局部的重編譯和多處理,從而加速設計!白韵露稀绷鞒踢允許將設計的某個部分從整體中隔離出來,以進行改進。如果采用得當,這能提高結果的穩(wěn)定性。
按單個模塊計算,“自下而上”法能提供最佳的運行時間,但整體運行時間可能因為項目管理和人工腳本開銷而有所延長。腳本編寫本身很重要,但也容易出錯。此外,這種方法可能會降低結果的質量(QoR)。采用“自下而上”法,綜合工具只能“看見”各個子模塊內的優(yōu)化機會,而不能跨越分割界線對整體設計進行改進。分割的次數(shù)越多,設計離可能的最佳QoR就越遠。
“自上而下”的綜合方法考慮整個系統(tǒng)級RTL和約束,允許綜合工具在一次操作中優(yōu)化設計,而不必跨越分割的模塊。與“自下而上”的設計相比,這種方法可產生最佳的QoR,因為綜合工具是在整個設計上進行操作。由于不需要人工腳本和管理各種不同的子模塊,它更易于實現(xiàn)。然而,它需要的存儲容量和運行時間使之無法應用于大型設計中。即使很小的設計改動也要求重新對整個設計進行綜合,這幾乎是不切實際的。類似地,“自上而下”法要對復制的模塊單獨進行綜合,與“自下而上”法對復制模塊一次綜合相比,這將導致更長的運行時間。最后,為了滿足時序要求,布局與布線過程將變得非常反復。從QoR方面來看,“自上而下”法是理想的解決方案,但從設計規(guī);蚱渌O計要求來看,它并不是每種設計的最佳選擇。
多點綜合:面向大型設計的綜合技術
無論是單純的“自上而下”法還是單純的“自下而上”法都不是很多設計的正確解決之道。它們所需要的是集“自上而下”法的易用性及QoR優(yōu)勢與“自下而上”法的高效率及低存儲器需求于一體的方法,而且這種方法仍要能夠被自上而下或自下而上地使用。這一點在大型設計中尤其重要,因為現(xiàn)有的“自上而下”或“自下而上”流程不能獲得最佳的QoR和運行時間。為了解決這個問題以及百萬門ASIC和可編程系統(tǒng)級芯片(PSoC)設計者所面臨的其它挑戰(zhàn),Synplicity公司開發(fā)了多點(MultiPoint)綜合技術。
|