為了應(yīng)付日益增長(zhǎng)的復(fù)雜性,必須提高抽象的水平。但當(dāng)摩爾定律將SoC(系統(tǒng)單芯片)的復(fù)雜性加速到逃逸速度時(shí),哪里能找到一種作為RTL(寄存器傳輸級(jí))補(bǔ)充的新抽象方法?很多觀察家注意到,面向硬件的文本式RTL可替代邏輯圖,從而推斷認(rèn)為某種系統(tǒng)級(jí)描述語(yǔ)言(如SystemC)將提供下一個(gè)好的抽象。不過(guò)這種情況并不會(huì)出現(xiàn)。
Atrenta公司主席、總裁兼首席執(zhí)行官Ajoy Bose認(rèn)為:“可重用IP(智能產(chǎn)權(quán))才是新的抽象等級(jí)。”如果看看SoC設(shè)計(jì)團(tuán)體正在做的工作,就會(huì)發(fā)現(xiàn),創(chuàng)建SoC的過(guò)程就是對(duì)以前所用IP的尋找、特性確定和裝配過(guò)程。無(wú)論是哪種設(shè)計(jì)創(chuàng)建工具(SystemC、Verilog亦或邏輯圖),都只是扮演一個(gè)填充空白的角色,如專利功能以及IC的締結(jié)組織結(jié)構(gòu)。但正如大量EDA公司、代工廠和大多數(shù)SoC設(shè)計(jì)者所想象的那樣,今天的設(shè)計(jì)流已經(jīng)緩慢地認(rèn)識(shí)到了這個(gè)現(xiàn)實(shí)??匆幌伦约旱墓ぞ?,你就會(huì)知道每個(gè)SoC都開(kāi)始于一組功能需求,以及一張白紙。實(shí)際上,要考慮的是一個(gè)SoC設(shè)計(jì)中真正做什么,以及從這些觀察數(shù)據(jù)中可以抽象出什么結(jié)論。
新的抽象
Synopsys公司主席兼首席執(zhí)行官Aart de Geus喜歡樂(lè)高玩具,他還喜歡用它們作為硅IP的比擬。他指出,將IP裝配起來(lái)創(chuàng)建一片SoC,就像把樂(lè)高積木塊裝成玩具一樣。IP塊是其中的RTL抽象,就好像樂(lè)高積木塊要比用塑料或木頭,去手工制作出一艘船或一只恐龍來(lái)得簡(jiǎn)單。這種模擬可以一直做下去,直到開(kāi)始無(wú)效。
樂(lè)高積木(尤其是高價(jià)主題包中的精密積木塊)也可以體現(xiàn)出以IP為中心的設(shè)計(jì)流應(yīng)該是什么樣子。最開(kāi)始是需求,這與傳統(tǒng)設(shè)計(jì)流沒(méi)有兩樣。但以IP為中心的設(shè)計(jì)流很快就會(huì)與傳統(tǒng)方式分道揚(yáng)鑣。在傳統(tǒng)流程中,要將需求劃分為更小的模塊,仔細(xì)地定義接口,直到這些模塊足夠小,使RTL設(shè)計(jì)師能用Verilog編寫(xiě)它們。而以IP為中心的流程則幾乎相反:你要選擇適用的IP塊,將它們與需求匹配,就像裝配樂(lè)高積木一樣。你要嘗試盡可能用較少的塊,留下的空間盡量少。然后用新代碼填充這些空白。
設(shè)計(jì)流程再繼續(xù)下去,兩種方案仍然是各行其道。傳統(tǒng)流程經(jīng)過(guò)了功能驗(yàn)證,綜合,分析,時(shí)鐘、電源和測(cè)試的精細(xì)插入,后端設(shè)計(jì)以及收斂,這些過(guò)程都在不斷去除抽象,創(chuàng)建更多的實(shí)現(xiàn)細(xì)節(jié),直到需求變成為多層的多邊形。在每個(gè)新的級(jí)別上,流程都要停下來(lái),驗(yàn)證該設(shè)計(jì)是否仍然滿足需求。
而以IP為中心的流程再次走了幾乎相反的道路。它的要點(diǎn)是將IP裝配為一個(gè)滿足需求的系統(tǒng),而盡可能少地尋求有關(guān)IP細(xì)節(jié)的新信息。Bose稱:“在裝配過(guò)程中不要陷入調(diào)試IP的誤區(qū)。”
這種情景對(duì)很多團(tuán)隊(duì)都很理想,富有吸引力。de Geus說(shuō):“例如在中國(guó),設(shè)計(jì)方法研究的就是如何快速地從定義走到IP列表,再到裝配。”
但現(xiàn)實(shí)情況通常并不是這樣。Open-Silicon公司工程副總裁Taher Madraswala說(shuō):“至少今天有些功能有很好的定義,理論上你本可以在整個(gè)流程中把它們看作黑箱子,但也僅僅是理論上而已。實(shí)際上,最終還要在綜合與門級(jí)優(yōu)化時(shí)打開(kāi)黑箱子。”為解決這些問(wèn)題,必須遍歷一個(gè)理想的設(shè)計(jì)流,找到希望與現(xiàn)實(shí)之間的差距。你必須考慮IP選擇、裝配、實(shí)現(xiàn)和收斂。
IP選擇
從需求到一個(gè)IP BOM(物料清單)的過(guò)程是變化的,而且很不幸要手工完成。如何從A到B取決于系統(tǒng)的性質(zhì)、IP的可用性、設(shè)計(jì)團(tuán)隊(duì)在重用方面的經(jīng)驗(yàn)、芯片差異化的營(yíng)銷計(jì)劃,以及企業(yè)策略等等。這個(gè)過(guò)程不能依賴的一件事是自動(dòng)化,Synopsys公司的de Geus指出,理論上說(shuō),自動(dòng)化應(yīng)不存在障礙。
他發(fā)現(xiàn),在RTL時(shí),Design Compiler能從Verilog源中有效地找出該公司DesignWave的相對(duì)復(fù)雜塊。不過(guò),對(duì)于較大的IP塊,自動(dòng)化就不穩(wěn)定了。他說(shuō):“用IP時(shí),塊都不太通用,要加入更多的人工選擇?!?/p>
有些情況下,手工IP選擇的輕松程度可以接近于自動(dòng)化工具。例如,很多較小的SoC仍然采用一種簡(jiǎn)單的、類似于微控制器的架構(gòu):一個(gè)CPU核心、一個(gè)本地緩存,還有一系列外設(shè)接口。所有需要的塊一般都能從第三方IP庫(kù)中獲得,再補(bǔ)足AMBA(先進(jìn)微控制器總線架構(gòu))接口的管腳,就可以插接到一起了。對(duì)于其它情況,IP的選擇并不能從需求明顯看出。例如,假設(shè)一個(gè)智能手機(jī)SoC有多種授權(quán)與加密的要求。你是獲取一個(gè)大且昂貴的第三方加密引擎許可證,還是選擇一個(gè)較小的加密數(shù)據(jù)路徑協(xié)處理器?另外,你是用MathWorks的MatLab開(kāi)發(fā)自己的塊并做綜合,還是采用一個(gè)較快的(或第二個(gè))CPU核心,并用軟件處理需求?
功能的選擇并不是過(guò)程的結(jié)束。功能類似的模塊之間可能有很多方面的差異,包括性能、面積、功耗、接口要求、可配置性、對(duì)時(shí)鐘與電源控制的條件、驗(yàn)證覆蓋范圍以及使用史。IP塊的數(shù)據(jù)表中應(yīng)有很多這類信息,但有些需要詳細(xì)詢問(wèn)該塊以往的用戶,甚至要做少量反向工程。
要從一個(gè)可執(zhí)行的SoC需求文件去推論出一個(gè)復(fù)雜IP塊,這種邏輯問(wèn)題也許是可以解決的。大多數(shù)需求文檔仍然采用人類語(yǔ)言,不過(guò)并非可執(zhí)行格式。此外,選擇某個(gè)IP所需要的多數(shù)支持性信息也是零散的,缺乏標(biāo)準(zhǔn)的格式,并且可能是專有的。顯然,自動(dòng)IP選擇還需要做大量工作。
現(xiàn)在存在一種非常有趣且大部分尚未披露的可能性。通常人們認(rèn)為形式驗(yàn)證是相關(guān)的驗(yàn)證工具。但據(jù)Jasper設(shè)計(jì)自動(dòng)化公司營(yíng)銷與業(yè)務(wù)發(fā)展副總裁Oz Levia稱,形式上測(cè)試某個(gè)特性真實(shí)性的能力擁有超出傳統(tǒng)驗(yàn)證的應(yīng)用。例如,設(shè)計(jì)者可以用Jasper公司的ActiveDesign在開(kāi)發(fā)期間研究RTL,有助于掌控RTL代碼的創(chuàng)建。從這個(gè)想法擴(kuò)展開(kāi)去,Levia描述了Jasper與ARM工程師如何合作起來(lái),將針對(duì)ARM存儲(chǔ)器相關(guān)協(xié)議的英語(yǔ)規(guī)范手工轉(zhuǎn)換為一個(gè)可執(zhí)行的規(guī)范,Jasper再將它綜合為一組斷言。原理上說(shuō),一個(gè)設(shè)計(jì)團(tuán)隊(duì)可以使用這個(gè)過(guò)程,從需求創(chuàng)建出一組斷言,然后再用形式工具檢查一個(gè)IP塊與需求的符合程度。可編程IP或可配置IP都會(huì)帶來(lái)挑戰(zhàn),但過(guò)程中至少會(huì)產(chǎn)生一個(gè)將IP塊裝入一個(gè)設(shè)計(jì)的工作說(shuō)明。
裝配
IP裝配是以IP為中心設(shè)計(jì)的流程基礎(chǔ)。有些設(shè)計(jì)者使用“裝配”,而不是“集成”,以示一種重要的區(qū)別。在這個(gè)階段的想法是,將IP塊看作是可配置的黑箱,而只編寫(xiě)一些在完成黑箱配置后,要將它們膠合到一起的RTL。這種情況與“集成”這一名詞所代表的日益膨脹IP塊有很大不同。
理想的裝配過(guò)程必須開(kāi)始于系統(tǒng)級(jí)仿真。在另一個(gè)意義上,系統(tǒng)仿真就是IP選擇的驗(yàn)證階段:你要檢驗(yàn)所選擇的IP塊是否能以一種滿足系統(tǒng)需求的方式聯(lián)結(jié)在一起。de Geus說(shuō):“在一個(gè)IP裝配流中,系統(tǒng)校驗(yàn)與驗(yàn)證更加重要。通常,我們需要一個(gè)快速的原型來(lái)驗(yàn)證軟件可以在芯片上工作。”
快速原型的重要性表明,IP塊的事務(wù)級(jí)模型可能很有價(jià)值。但I(xiàn)P供應(yīng)商有時(shí)并沒(méi)有事務(wù)級(jí)模型,或這些模型對(duì)現(xiàn)有IP版本不再正確。不過(guò),你幾乎總能用到軟IP的RTL源,從而創(chuàng)建基于FPGA的快速原型,這就是FPGA原型對(duì)IP中心化設(shè)計(jì)的重要性。
另外,還可以在裝配期間做另一種早期評(píng)估。靜態(tài)分析可以檢查IP有無(wú)違背規(guī)則,是否符合最佳實(shí)踐。評(píng)估通常可以相當(dāng)接近于最終芯片的功耗、性能和面積。Atrenta公司的Bose說(shuō):“今天,使用高等級(jí)綜合的結(jié)果要比用軟IP有更多的不確定性?!?/p>
在一個(gè)理想化的世界里,一旦將各個(gè)塊裝入原型,驗(yàn)證了系統(tǒng)的性能,并研究了大致的特性,則要做的唯一驗(yàn)證工作將是現(xiàn)有塊和新塊之間的連接情況。但不同的情況下,對(duì)于理想的接近程度也會(huì)不同。
也許最接近于理想的方案是:IP、互連,以及IC實(shí)現(xiàn)全是一個(gè)來(lái)源(圖1)。附文“FPGA的情況”是這種情況的一個(gè)實(shí)例。真實(shí)世界里確實(shí)能有這種好運(yùn)氣,但僅適用于那些有強(qiáng)大的設(shè)計(jì)重用文化的垂直型集成公司,如IBM、意法半導(dǎo)體、幾家最大的日本公司,以及在私募投資者重新關(guān)注自己優(yōu)先權(quán)以前的恩智浦和飛思卡爾。如果沒(méi)有強(qiáng)大的企業(yè)重用文化,以及公司對(duì)IP開(kāi)發(fā)過(guò)程的控制,很難獲得一種純粹的黑箱裝配流程。Bose說(shuō):“人們?nèi)匀粦杏谧鰧?shí)現(xiàn)重用所需的少量額外工作?!彼硎救毡镜腟TARC(半導(dǎo)體技術(shù)學(xué)術(shù)研究中心)提供了一本出色的重用手冊(cè)。不過(guò),有些開(kāi)發(fā)IP的團(tuán)隊(duì)缺乏訓(xùn)練與管理支持,不能在這個(gè)等級(jí)上使自己的設(shè)計(jì)可重用化。
下一個(gè)最接近理想環(huán)境的就是工業(yè)標(biāo)準(zhǔn)(如AMBA),它定義了塊間的全部互連,還有所有符合標(biāo)準(zhǔn)的IP(圖2)。此時(shí),裝配只是要確保信號(hào)名稱以及極性一致,并且所有接口都可以工作在所要求頻率上。如果沒(méi)有一個(gè)統(tǒng)一的總線標(biāo)準(zhǔn),則事情就變得更復(fù)雜了。你必須根據(jù)已配置IP塊的實(shí)例去了解接口,必要情況下,還要?jiǎng)?chuàng)建額外的RTL膠合邏輯,以執(zhí)行各塊之間的事務(wù),并且必須驗(yàn)證所有這些工作。
Open-Silicon的Madraswala稱,關(guān)鍵是尋找到一種驗(yàn)證交互作用的方式,而不用驗(yàn)證IP的所有內(nèi)部東西。他說(shuō):“你可以利用IP以前已被用過(guò)這一事實(shí)??纯醋约旱挠?jì)劃日期表,決定把自己的驗(yàn)證時(shí)間花在什么地方。你可能更愿意編寫(xiě)斷言或測(cè)試,來(lái)驗(yàn)證IP數(shù)據(jù)表中的邏輯集成要求,而不是做一個(gè)全面的驗(yàn)證計(jì)劃。但要知道檢查什么和不檢查什么,經(jīng)驗(yàn)很關(guān)鍵?!盡adraswala補(bǔ)充說(shuō),這種驗(yàn)證方案對(duì)仿真的依賴高于形式工具。
實(shí)現(xiàn)
在這一點(diǎn)上,IP中心設(shè)計(jì)流開(kāi)始與傳統(tǒng)流程重新匯合了。軟IP塊、新的塊以及互連都要去做綜合,并進(jìn)入掃描插入、布局與布線。硬IP也進(jìn)入了布局布線的流程。然后,團(tuán)隊(duì)關(guān)閉設(shè)計(jì)。不過(guò),在某些方面,IP為中心的設(shè)計(jì)仍有自己的獨(dú)特性。
Madraswala認(rèn)為,差異之一是電源管理的方案。他說(shuō):“針對(duì)電源管理的設(shè)計(jì)調(diào)整正在成為設(shè)計(jì)流的一個(gè)獨(dú)立階段。這正在成為一種獨(dú)有的藝術(shù)與技術(shù)。”Madraswala解釋說(shuō),當(dāng)你自己設(shè)計(jì)一個(gè)塊時(shí),可以使用綜合開(kāi)關(guān),做再對(duì)位以簡(jiǎn)化時(shí)序;做精細(xì)粒度的時(shí)鐘門控,以及其它網(wǎng)表級(jí)的優(yōu)化技術(shù),其中大部分可獲得功耗的優(yōu)勢(shì)。
舉例來(lái)說(shuō),其它工具可以改變時(shí)鐘的偏移,以控制峰值的時(shí)鐘電流。Teklatech公司首席執(zhí)行官Tobias Bjerregaard說(shuō),用綜合開(kāi)關(guān)也可以做一些此類工作,但工程師們?nèi)匀粫?huì)手工完成這些任務(wù)。所有這些技術(shù)都非常有用,但全都用于第三方IP也許并不明智。
Madraswala稱:“我們可能沒(méi)有原始源碼,因此無(wú)法做等效性檢查。通常我們沒(méi)有權(quán)利去改變塊的設(shè)計(jì)。”問(wèn)題是,對(duì)一個(gè)許可證優(yōu)化到何種地步,才會(huì)違反一個(gè)IP塊的保證條款,這件事很難確定。
Synopsys公司的de Geus也懷疑對(duì)等效性檢查器的依賴性,但原因不同。他說(shuō):“形式工具不斷地尋找可以生成的綜合。例如,綜合工具可以做延遲瀏覽,但形式等效性檢查器卻可能看不到與原電路等效的重組電路。 ”
相反,Open-Silicon的Madraswala則建議在塊級(jí)對(duì)IP使用時(shí)鐘門控與電源門控。他解釋說(shuō):“我們圍繞代碼放了一個(gè)封裝器,讓它表現(xiàn)出我們想要的方式?!边@種方案避免了修改第三方的代碼。Madraswala說(shuō),物理設(shè)計(jì)仍保持傳統(tǒng)方式。硬IP塊加入了布局布線流程,具體要依賴于供應(yīng)商的集成指導(dǎo)。Madraswala說(shuō),他的公司會(huì)對(duì)塊運(yùn)行一個(gè)DRC(設(shè)計(jì)規(guī)則檢查),以確保它符合當(dāng)前的規(guī)則平臺(tái),并與供應(yīng)商對(duì)集成進(jìn)行目視評(píng)估。他說(shuō):“有時(shí)候,他們尚未寫(xiě)好有些指南?!監(jiān)pen-Silicon在這個(gè)過(guò)程后會(huì)做一個(gè)平面設(shè)計(jì)的DRC,但Madraswala稱,99%的情況下不會(huì)有任何問(wèn)題。
相對(duì)來(lái)說(shuō),后端流程從基于IP的設(shè)計(jì)獲益不多。除FPGA設(shè)計(jì)以外,都不能省略DRC、提取或時(shí)序、信號(hào)完整性,以及功率完整性的收斂。在這些領(lǐng)域中,仍留有太多的技巧和細(xì)節(jié),如不同的約束、電源管理策略以及DFT(可測(cè)試設(shè)計(jì))方案。這些差異可能只在集成后的芯片上才體現(xiàn)出來(lái)。不過(guò),仍然存在著以IP為中心設(shè)計(jì)流的理想情況,這就是選擇并嵌合起多個(gè)塊、驗(yàn)證互連,然后按一個(gè)鍵就獲得了最終設(shè)計(jì)。
這樣一個(gè)流程要求非常訓(xùn)練有素的IP設(shè)計(jì)人員。de Geus認(rèn)為:“樂(lè)高積木的智力只限于思考插頭與插座,但這只走了一半。另一半是弄明白如何保持非常嚴(yán)格的公差,使插頭與插座可以反復(fù)再三地工作,而不會(huì)卡住或松脫。”這也適用于以IP為中心流程的進(jìn)一步自動(dòng)化:能與門控起到同等作用的也許就是提高IP的標(biāo)準(zhǔn)化水平和創(chuàng)建技巧。
評(píng)論
查看更多