幾十年來(lái),一種結(jié)構(gòu)層次結(jié)構(gòu)一直是處理芯片設(shè)計(jì)復(fù)雜性的主要手段。它并不總是完美的,也沒(méi)有理想的方法來(lái)分而治之,因?yàn)檫@需要專(zhuān)注于正在執(zhí)行的分析。事實(shí)上,大多數(shù)系統(tǒng)都可以從各種不同的層次結(jié)構(gòu)中查看,同樣正確,并共同形成一個(gè)異層次結(jié)構(gòu)。
考慮當(dāng)今使用的層次結(jié)構(gòu)形式的最簡(jiǎn)單方法是要求工程師從概念上設(shè)計(jì)一個(gè)系統(tǒng)。他們可能會(huì)開(kāi)始繪制一個(gè)包含大塊的框圖,其中包含 CPU、編碼器、顯示子系統(tǒng)等標(biāo)簽。這不是一個(gè)功能層次結(jié)構(gòu),盡管許多劃分的塊被認(rèn)為是提供功能的。這也不是純粹的結(jié)構(gòu)分解,因?yàn)樵谛酒校磺卸甲兂闪?a target="_blank">晶體管的無(wú)定形海洋。
該圖大致遵循為印刷電路板設(shè)計(jì)開(kāi)發(fā)的層次結(jié)構(gòu),即引腳層次結(jié)構(gòu)。在最低級(jí)別,您可能使用了邏輯庫(kù),例如德州儀器 (TI) 7400 系列。這些設(shè)備有引腳映射。層次結(jié)構(gòu)的下一個(gè)級(jí)別是電路板級(jí)別,以及連接到背板的引腳。兩者之間幾乎沒(méi)有任何層次結(jié)構(gòu),原理圖只是分布在多個(gè)“圖紙”上。后來(lái),當(dāng)系統(tǒng)變得更加復(fù)雜時(shí),也支持結(jié)構(gòu)層次結(jié)構(gòu)。
![wKgaomVdYDqAdTGgAAr09ks32xY142.png](https://file1.elecfans.com/web2/M00/B0/03/wKgaomVdYDqAdTGgAAr09ks32xY142.png)
圖1:2013年左右復(fù)雜芯片的典型框圖。來(lái)源:德州儀器
這種形式的層次結(jié)構(gòu)提供了一種封裝,允許每個(gè)塊的開(kāi)發(fā)在某種程度上變得孤立,并將相互依賴性最小化。頂層成為這些塊相互連接的方式。然后,每個(gè)分割的塊都可以經(jīng)歷類(lèi)似的分解。
使用層次結(jié)構(gòu)的原因有很多?!叭萘渴瞧渲兄唬盇nsys產(chǎn)品營(yíng)銷(xiāo)總監(jiān)Marc Swinnen說(shuō)?!皢?wèn)題變得太大了,你必須把它分解成碎片。另一個(gè)是并行工程。你有多個(gè)團(tuán)隊(duì)想要同時(shí)進(jìn)行設(shè)計(jì),所以你把它分解并分別處理零件。三是重用。您希望重用其他人設(shè)計(jì)的塊。其中一種微妙的形式是標(biāo)準(zhǔn)單元庫(kù),它本身就是一種層次結(jié)構(gòu)形式。第四個(gè)原因是數(shù)據(jù)量的可管理性。第五個(gè)原因是重復(fù)的結(jié)構(gòu),比如內(nèi)存、多核,你只是自然地重用。第六個(gè)原因是混合域,例如模擬/數(shù)字,每個(gè)塊中都有不同的設(shè)計(jì)風(fēng)格。你將使用不同的工具,所以你把它們分層分解。
容量
隨著設(shè)計(jì)規(guī)模越來(lái)越大,許多算法需要越來(lái)越多的時(shí)間才能運(yùn)行。分解它們可以縮短執(zhí)行時(shí)間并減少所需的資源。Synopsys數(shù)字實(shí)現(xiàn)小組高級(jí)產(chǎn)品經(jīng)理Jim Schultz表示:“對(duì)于大型設(shè)計(jì),當(dāng)您進(jìn)入物理實(shí)現(xiàn)階段時(shí),這些非常大的設(shè)計(jì)可能需要數(shù)天甚至數(shù)周的時(shí)間才能完成?!叭绻惆咽虑楦阍伊耍杀究赡軙?huì)很高。等級(jí)制度是一種分而治之的方式。它讓我們知道我們可以一次關(guān)閉設(shè)計(jì)的一個(gè)部分。隨著我們不斷增加功能,芯片越來(lái)越大,這不僅與運(yùn)行時(shí)有關(guān),還與資源耗盡有關(guān)——放置所有這些可重用實(shí)例所需的內(nèi)存量超過(guò)了容量。
為了能夠進(jìn)行分層分析,必須確保為每個(gè)塊正確設(shè)置了邊界條件。然后,您需要在頂層跨邊界進(jìn)行分析。
“平面分析需要花費(fèi)大量時(shí)間,但可以提供完全的準(zhǔn)確性,”Synopsys 產(chǎn)品經(jīng)理 Rimpy Chugh 說(shuō)?!霸趯哟谓Y(jié)構(gòu)中采用黑盒方法可以提高速度,但會(huì)失去準(zhǔn)確性。這需要一種專(zhuān)門(mén)的解決方案(見(jiàn)圖2),其中可以保留模塊的接口邏輯,從而同時(shí)獲得速度和準(zhǔn)確性的好處??梢栽?IP 級(jí)別生成抽象模型,然后在 SoC 級(jí)別使用它。
![wKgZomVdYEGAFUpnAANyI-83kOk131.png](https://file1.elecfans.com/web2/M00/B1/C7/wKgZomVdYEGAFUpnAANyI-83kOk131.png)
圖 2:使用抽象模型的分層流程。來(lái)源:Synopsys
并行工程
設(shè)計(jì)團(tuán)隊(duì)不再局限于一棟建筑?!霸S多設(shè)計(jì)正在被劃分,以便一個(gè)團(tuán)隊(duì)在一個(gè)層次結(jié)構(gòu)上工作,另一個(gè)團(tuán)隊(duì)在另一個(gè)層次結(jié)構(gòu)上工作,它們可能在同一棟建筑中,也可能分布在世界各地,”是德科技 EDA 數(shù)據(jù)和 IP 管理產(chǎn)品管理總監(jiān) Simon Rance 說(shuō)?!斑@可能會(huì)帶來(lái)挑戰(zhàn),因?yàn)閳F(tuán)隊(duì)現(xiàn)在的工作速度不同。擁有穩(wěn)定的層次結(jié)構(gòu)變得很重要,因?yàn)橐院蠛茈y進(jìn)行更改。這通常只是作為最后的手段發(fā)生,但相反,我們看到團(tuán)隊(duì)粘合或捏造以使其發(fā)揮作用。它可能很丑陋,但我們?cè)谛⌒酒峡吹搅烁嗟奶魬?zhàn)。
重用
層次結(jié)構(gòu)需要以自上而下和自下而上的方式發(fā)揮作用?!霸谌梭w中,專(zhuān)門(mén)的細(xì)胞組織成系統(tǒng)和器官,這些系統(tǒng)和器官構(gòu)成了構(gòu)成人的基石,”Cadence 高級(jí)產(chǎn)品營(yíng)銷(xiāo)經(jīng)理 Brian LaBorde 說(shuō)。“同樣,晶體管組形成電路或邏輯門(mén),這些電路或邏輯門(mén)構(gòu)成組裝成系統(tǒng)的宏。在過(guò)去的幾十年里,我們看到越來(lái)越大的IC,有許多不同的專(zhuān)用電路,都集成在一個(gè)芯片上。這些布局的分區(qū)是虛擬的,由布局?jǐn)?shù)據(jù)庫(kù)中的層次結(jié)構(gòu)表示。
數(shù)據(jù)管理 所有設(shè)計(jì)都會(huì)產(chǎn)生大量數(shù)據(jù),并且必須對(duì)其進(jìn)行管理
。是德科技的 Rance 表示:“無(wú)論是針對(duì)汽車(chē)的 ISO 26262 標(biāo)準(zhǔn),還是針對(duì)軍用航空航天的 MIL882 標(biāo)準(zhǔn),工程生命周期管理都需要滿足功能安全標(biāo)準(zhǔn),因此您擁有許多資產(chǎn),從文檔到驗(yàn)證、測(cè)試標(biāo)準(zhǔn)、驗(yàn)證測(cè)試計(jì)劃和結(jié)果?!八羞@些都需要保留在層次結(jié)構(gòu)中,以便具有完全的可追溯性。無(wú)論如何,跟蹤層次結(jié)構(gòu)中的所有內(nèi)容是很困難的,但您也獲得了設(shè)計(jì)之外的所有內(nèi)容,例如驗(yàn)證和測(cè)試計(jì)劃。當(dāng)某些東西在測(cè)試中失敗,甚至在現(xiàn)場(chǎng)更糟時(shí),你回去做發(fā)現(xiàn),找出可能失敗的東西。如果你沒(méi)有將所有這些數(shù)據(jù)和元數(shù)據(jù)附加到層次結(jié)構(gòu)中,你就永遠(yuǎn)找不到它。
重復(fù)結(jié)構(gòu) 許多設(shè)計(jì)都包含重復(fù)結(jié)構(gòu)
,無(wú)論是存儲(chǔ)單元、小型處理器陣列還是接口。但這些陣列中隱藏著危險(xiǎn)?!凹僭O(shè)你有16個(gè)CPU內(nèi)核排列在一個(gè)4X4網(wǎng)格中,”Ansys的Swinnen說(shuō)?!霸瓌t上,這些都是相同的,但實(shí)際上它們具有不同的邊界條件。每個(gè)邊緣周?chē)沫h(huán)境都不同。如果要進(jìn)行優(yōu)化,則需要對(duì)每個(gè)進(jìn)行單調(diào),因?yàn)樗鼈冊(cè)谶吔缣幎加歇?dú)特的寄生效應(yīng)。總是有這種權(quán)衡。你如何保持可重用性,同時(shí)找到那些獨(dú)特的?當(dāng)你看到像熱這樣的事情時(shí),情況會(huì)變得更糟。
多域 雖然模擬和數(shù)字有很大不同,但開(kāi)發(fā)流程的其他方面也利用了工具的分離。“EDA的整個(gè)想法是把這個(gè)復(fù)雜的問(wèn)題,簡(jiǎn)化成一個(gè)結(jié)構(gòu)性問(wèn)題,把它切開(kāi),讓問(wèn)題變得非常簡(jiǎn)單,”Siemens Digital Industries Software的技術(shù)支持總監(jiān)Ron Press說(shuō)。“這就是掃描對(duì)DFT的作用。過(guò)去,即使他們有單獨(dú)的內(nèi)核,他們也試圖在一個(gè)大的平面圖像中完成所有事情。然后你必須等到設(shè)計(jì)的后期,你就會(huì)遇到一個(gè)更大的問(wèn)題?,F(xiàn)在,隨著分布式設(shè)計(jì)團(tuán)隊(duì)和內(nèi)核的重用,人們需要盡可能多的即插即用。他們將完成DFT的設(shè)計(jì),為該內(nèi)核制作圖案,然后將其插入頂層。只要它有某種類(lèi)型的隔離,例如包裝鏈,他們就可以單獨(dú)處理該部分,完成 DFT 設(shè)計(jì),并完成他們的圖案。這使得這些團(tuán)隊(duì)變得獨(dú)立,并使整個(gè)過(guò)程變得更加容易。
結(jié)構(gòu)層次結(jié)構(gòu)的問(wèn)題
沒(méi)有一個(gè)系統(tǒng)是完美的,這種形式的層次結(jié)構(gòu)確實(shí)會(huì)產(chǎn)生一些問(wèn)題?!霸谶@些邊界處設(shè)計(jì)約束肯定會(huì)產(chǎn)生開(kāi)銷(xiāo),”Synopsys 的 Schultz 說(shuō)。“你必須分解約束并正確定義它們,并將它們向下推到塊邊界。確保正確定義這些邊界是一個(gè)大問(wèn)題。另一個(gè)反對(duì)它的因素是,在設(shè)計(jì)上,當(dāng)你把一些東西分解成碎片,你說(shuō)這些是我的分區(qū),當(dāng)我去物理實(shí)現(xiàn)它時(shí),我不會(huì)跨這個(gè)邊界進(jìn)行優(yōu)化。你無(wú)法優(yōu)化——這個(gè)邊界現(xiàn)在是固定的。如果需要在該層次結(jié)構(gòu)中進(jìn)行優(yōu)化,則無(wú)法進(jìn)行。你自己是有限的。
這可能會(huì)影響多個(gè)工具和流程?!叭绻麄兪褂梅謱覦FT進(jìn)行頂層計(jì)劃,他們可能會(huì)計(jì)劃將如此多的引腳連接到內(nèi)核,”西門(mén)子出版社說(shuō),“然后事實(shí)證明,內(nèi)核不需要太多的模式,而他們?yōu)槠浞峙淞祟?lèi)似數(shù)量的引腳的另一個(gè)內(nèi)核需要更多的模式。如果他們很早就從頂層開(kāi)始凍結(jié)了他們的設(shè)計(jì),那么他們的模式交付就不會(huì)那么有效。
建立錯(cuò)誤的層次結(jié)構(gòu)可能會(huì)以多種方式限制您。Schultz補(bǔ)充道:“其中一個(gè)大問(wèn)題,尤其是對(duì)于大型SoC而言,網(wǎng)絡(luò)和通信會(huì)造成擁塞?!拔覀兛吹秸麄€(gè)芯片出現(xiàn)擁塞,尤其是當(dāng)設(shè)計(jì)分區(qū)不佳時(shí)。我看到塊通過(guò)其他塊進(jìn)行通信,您必須創(chuàng)建饋通。這可能會(huì)導(dǎo)致設(shè)計(jì)出現(xiàn)大量擁塞。此外,當(dāng)你做這樣的事情時(shí),要滿足你的時(shí)序要求要困難得多,因?yàn)槟銦o(wú)法輕松優(yōu)化完整的路徑。你必須單獨(dú)優(yōu)化每個(gè)區(qū)塊,并希望路徑都成功。
邊界處可能會(huì)發(fā)生微妙的變化?!爱?dāng)你毗鄰兩個(gè)街區(qū)時(shí),它們之間有一種邏輯上的聯(lián)系,但那里沒(méi)有物理上的東西,”Swinnen說(shuō)?!搬樐_只是相互接觸,但沒(méi)有電線。但是在你的網(wǎng)表中,你有一根應(yīng)該在那里的電線。它應(yīng)該有一個(gè)電阻,一個(gè)電容。您有邏輯線路,但沒(méi)有物理線路。然后是饋通,電線進(jìn)入塊的一側(cè),穿過(guò)塊,然后從另一端出來(lái)。有引腳,有物理線,但沒(méi)有邏輯線。從邏輯上講,它不存在。你不會(huì)在原理圖上畫(huà)出來(lái)。
有些工具可以處理糟糕的層次結(jié)構(gòu),但修復(fù)它們會(huì)產(chǎn)生其他問(wèn)題。Schultz 說(shuō):“當(dāng)你開(kāi)發(fā) RTL 并綜合它時(shí),你有一個(gè)邏輯層次結(jié)構(gòu)?!爱?dāng)你進(jìn)行物理設(shè)計(jì)時(shí),這些邏輯層次結(jié)構(gòu)必須一對(duì)一地映射到物理分區(qū)。最終發(fā)生的事情是,在我的邏輯層次結(jié)構(gòu)中,我可能有一個(gè)孩子在與該邏輯層次結(jié)構(gòu)下的孩子交談,而這個(gè)邏輯層次結(jié)構(gòu)實(shí)際上正在與另一個(gè)父母之下的東西交談很多,而這兩個(gè)父母成為他們自己的物理分區(qū)。這兩個(gè)父母可以物理地放置在芯片的兩側(cè)。邏輯層次結(jié)構(gòu)不利于物理實(shí)現(xiàn)。處理這個(gè)問(wèn)題的方式是通過(guò) RTL 重組?,F(xiàn)在我們開(kāi)始移動(dòng)?xùn)|西并修復(fù)邏輯,但這不是純粹的 RTL 或邏輯設(shè)計(jì)者會(huì)知道的事情。只有當(dāng)您考慮到物理層次結(jié)構(gòu)時(shí),才會(huì)出現(xiàn)該信息。兩者之間需要有溝通,才能真正優(yōu)化物理層次結(jié)構(gòu)。
這發(fā)生在流中的其他位置?!癗oC 位于最高駕駛艙層,您可以在其中擁有完整層次結(jié)構(gòu)的集成方面,”Arteris 解決方案和業(yè)務(wù)開(kāi)發(fā)副總裁 Frank Schirrmeister 說(shuō)?!爱?dāng)需要對(duì)層次結(jié)構(gòu)進(jìn)行更改時(shí),可能是因?yàn)?a target="_blank">電源域之間存在兩種不同的非功能性屬性,重構(gòu) RTL 可能很簡(jiǎn)單。對(duì)層次結(jié)構(gòu)進(jìn)行更高級(jí)別的集成有助于您相應(yīng)地重構(gòu)和重構(gòu) RTL,而您真的不想通過(guò)手動(dòng)更改所有模塊來(lái)做到這一點(diǎn)。
跟蹤這一點(diǎn)可能是一場(chǎng)噩夢(mèng)?!跋胂雽?duì)屬于層次結(jié)構(gòu)的文檔或文件的修訂控制,”Rance 說(shuō)。“然后,你可能會(huì)有該層次結(jié)構(gòu)的多個(gè)版本或修訂版,這取決于你在做什么。您可能有一個(gè)進(jìn)行 PPA 分析的驗(yàn)證團(tuán)隊(duì),并發(fā)現(xiàn)如果他們稍微調(diào)整一下并創(chuàng)建此層次結(jié)構(gòu)的另一個(gè)版本,它的性能會(huì)更好。你需要跟蹤這一點(diǎn)。
盡管等級(jí)制度有助于我們分而治之,但有些事情卻無(wú)視任何簡(jiǎn)化這些嘗試?!跋駸岱治鲞@樣的事情需要在整個(gè)芯片范圍內(nèi)完成,”Arteris 的 Schirrmeister 說(shuō)。“但你需要能夠?qū)⑵渑c芯片中發(fā)生的事情在功能上聯(lián)系起來(lái),與通過(guò)它運(yùn)行的數(shù)據(jù)相關(guān)聯(lián)。您希望能夠拍攝芯片照片,從生命周期的角度來(lái)看,您可以查看熱點(diǎn)以及每個(gè)功能的位置,并且受到的影響最大。將其與數(shù)據(jù)相關(guān)聯(lián)絕非易事。
其他層次結(jié)構(gòu)
其他層次結(jié)構(gòu)確實(shí)存在,例如功能層次結(jié)構(gòu)。我們今天最接近這一點(diǎn)的是一個(gè)需求跟蹤系統(tǒng),它從系統(tǒng)應(yīng)該做什么的高級(jí)定義開(kāi)始。這些任務(wù)被分解為越來(lái)越簡(jiǎn)單的任務(wù),直到最終確定實(shí)際提供它的邏輯或其他電路,以及驗(yàn)證是否滿足適當(dāng)要求的測(cè)試平臺(tái)。
一些層次結(jié)構(gòu)在設(shè)計(jì)過(guò)程中來(lái)來(lái)去去?!澳憧赡苡幸粋€(gè)時(shí)鐘樹(shù)的層次結(jié)構(gòu),”Schirrmeister說(shuō)?!芭潆娤到y(tǒng)有層次結(jié)構(gòu)。然后,系統(tǒng)分析工具可以看到一個(gè)層次結(jié)構(gòu),用于它們?nèi)绾螌⑺袞|西連接在一起,以獲得完整的芯片視角。我們對(duì)ESL(電子系統(tǒng)級(jí))的思考,是描述整個(gè)事情的可執(zhí)行功能規(guī)范的概念。這是尚未出現(xiàn)的東西。不知何故,我們似乎僥幸逃脫了,這令人驚訝。
物理布局提供了另一個(gè)層次結(jié)構(gòu)。最高層次是樓層規(guī)劃,它利用結(jié)構(gòu)層次結(jié)構(gòu)作為起點(diǎn)。放置這些塊,并在它們之間布線互連。每個(gè)模塊都使用物理綜合進(jìn)行布局,這再次處理本地互連。3D-IC將為此增加一個(gè)新的維度,現(xiàn)在可能在Z方向上存在布線。
Cadence 的 LaBorde 表示:“隨著我們開(kāi)始看到基于小芯片的 2.5D 和 3D 系統(tǒng)取代片上系統(tǒng) (SoC) 設(shè)計(jì),層次結(jié)構(gòu)將不再像物理現(xiàn)實(shí)的表示那樣具有戰(zhàn)略意義。“原理圖中的宏可能代表系統(tǒng)中的芯片,每個(gè)芯片都有自己獨(dú)特的工藝。它們之間的連接將是焊點(diǎn),而不是布局上的象征性引腳。
結(jié)論
雖然并不完美,但今天使用的非正式結(jié)構(gòu)分解已被證明是一種熟練的層次結(jié)構(gòu)。流程的某些方面因此而受到影響,但大多數(shù)方面都能夠有效地使用它,并且工具可以彌補(bǔ)其不足。雖然有一定程度的優(yōu)化潛力因此而喪失,但這可能是以生產(chǎn)力的名義做出的小犧牲之一。
審核編輯:黃飛
評(píng)論