并行設(shè)計(jì)法探究
利用最新開發(fā)的軟件技術(shù)可以完成高效的并行電路板設(shè)計(jì)。這種新的技術(shù)能使多個設(shè)計(jì)師、多個進(jìn)程和不同種類的工具同時(shí)工作于同一個設(shè)計(jì)數(shù)據(jù)庫,并能顯著地提高設(shè)計(jì)生產(chǎn)力。
與將設(shè)計(jì)分成若干部分并獨(dú)立地完成各個部分的傳統(tǒng)方法不同,此新技術(shù)能在一個公共數(shù)據(jù)庫上創(chuàng)建并行進(jìn)程,并能自動同步進(jìn)程的變化、解決相互間可能發(fā)生的沖突。這在EDA行業(yè)是首創(chuàng)。
自從20世紀(jì)90年代在電路板設(shè)計(jì)中廣泛采用CAD以來,制造領(lǐng)域通過自動化和工藝優(yōu)化手段一直在不斷地提高設(shè)計(jì)生產(chǎn)力。不幸的是,隨著電路設(shè)計(jì)軟件技術(shù)的不斷創(chuàng)新,要求支持新的信號、元器件或板級制造技術(shù)的呼聲也在日益高漲,因此整個設(shè)計(jì)時(shí)間幾乎沒有縮短(甚至更長)。
如果設(shè)計(jì)方法學(xué)沒有根本性改變的話,軟件將始終扮演硬件技術(shù)的跟隨者角色,而不會成為發(fā)展曲線上的領(lǐng)先者。多位工程師從事同一設(shè)計(jì)的并行工程技術(shù)一直是生產(chǎn)力突破的有效法寶。傳統(tǒng)的分而治之法將設(shè)計(jì)分成若干個部分并分配到各個工程師手上,最后把各個部分聯(lián)接起來,并通過強(qiáng)制措施(根據(jù)預(yù)先定義好的規(guī)則自動做出決定)或巧妙手段(讓工程師逐個解決沖突)解決所有的沖突。
這種方法對于電路的原理圖設(shè)計(jì)來說是相當(dāng)有效的,因?yàn)樗梢愿鶕?jù)功能直接把設(shè)計(jì)分割成多個模塊和頁。雖然如此,但這種方法仍需要相當(dāng)多的人工操作才能解決模塊間的互連問題,如信號名沖突、元件遺漏等等。只要設(shè)計(jì)師相互間看不到對方在做什么,上述這些失誤就很有可能發(fā)生。
如果一個并行設(shè)計(jì)方法允許多個設(shè)計(jì)師能夠在同一時(shí)間同時(shí)做同一個設(shè)計(jì),能看到其他設(shè)計(jì)師做的編輯內(nèi)容,能實(shí)時(shí)自動地管理各種潛在的沖突,那么這種并行設(shè)計(jì)方法才能獲得最佳的靈活性和生產(chǎn)力。
并行設(shè)計(jì)架構(gòu)
新的并行設(shè)計(jì)技術(shù)需要在網(wǎng)絡(luò)環(huán)境中運(yùn)行的一個設(shè)計(jì)進(jìn)程管理器(服務(wù)器)和多個設(shè)計(jì)客戶端。服務(wù)器軟件的主要工作是從每個客戶端接收更新請求,并對請求實(shí)施檢查以確保沒有違反設(shè)計(jì)規(guī)則,然后根據(jù)更新內(nèi)容使每個客戶端同步。
每個客戶端必須擁有自己專用的處理器和存儲器。新的并行設(shè)計(jì)架構(gòu)還假設(shè)通信系統(tǒng)能夠支持客戶端與服務(wù)器之間實(shí)時(shí)高效交換信息所需的最小帶寬和最大延時(shí)。每個客戶端都能看到整個設(shè)計(jì),并在服務(wù)器處理它們時(shí)觀察到其它客戶端的編輯。設(shè)計(jì)數(shù)據(jù)庫允許存儲于網(wǎng)絡(luò)上的任何地方。
這種并行設(shè)計(jì)架構(gòu)允許多個設(shè)計(jì)師同時(shí)做同一個設(shè)計(jì),而無需以邏輯或其它任何方式分割設(shè)計(jì)。這是一個真正實(shí)時(shí)的合作設(shè)計(jì)環(huán)境,在這種環(huán)境下所有與分割邊界以及分割-聯(lián)接操作期間管理數(shù)據(jù)完整性相關(guān)的問題都不會出現(xiàn)。
由于多個設(shè)計(jì)師能夠以并行方式無任何限制地做同一個設(shè)計(jì),因此能夠顯著地縮短整個設(shè)計(jì)周期。
每個設(shè)計(jì)都有相關(guān)的設(shè)計(jì)團(tuán)隊(duì),只有團(tuán)隊(duì)的成員才被允許訪問設(shè)計(jì)數(shù)據(jù)。任何一個團(tuán)隊(duì)成員都能在服務(wù)器和單個客戶端上啟動一個設(shè)計(jì)會議。其它客戶端可以在任何時(shí)候參與該會議。
設(shè)計(jì)最開始時(shí)是裝載在服務(wù)器上的,當(dāng)客戶端加入會議并將服務(wù)器設(shè)計(jì)的當(dāng)前狀態(tài)自動下載到客戶端的存儲器內(nèi)后,客戶端就得到初始化并獲得同步。一旦客戶端加入設(shè)計(jì)會議,它就可以使用應(yīng)用程序中可用的標(biāo)準(zhǔn)編輯工具對設(shè)計(jì)進(jìn)行編輯。
編輯事件是由客戶端發(fā)起的一項(xiàng)獨(dú)立活動,它作為一個更新請求發(fā)往服務(wù)器。例如將一個器件從A點(diǎn)移動到B點(diǎn)就組成了一個編輯事件,事件的開始是選取器件,事件的結(jié)束是以鼠標(biāo)點(diǎn)擊(或等效的輸入)指示新位置。編輯事件作為一個事務(wù)處理被發(fā)往服務(wù)器,它描述了要刪除的東西和要添加的東西。
每次客戶端產(chǎn)生的編輯事件在發(fā)送到服務(wù)器之前必須先執(zhí)行本地的設(shè)計(jì)規(guī)則檢查(DRC),然后設(shè)置好編輯請求的優(yōu)先級并根據(jù)先進(jìn)先出的原則進(jìn)入輸入消息隊(duì)列。服務(wù)器接收到編輯請求后先將它整合進(jìn)設(shè)計(jì)數(shù)據(jù)庫,然后執(zhí)行DRC。如果沒有發(fā)現(xiàn)什么問題,編輯請求就被批準(zhǔn),并通過輸出消息隊(duì)列發(fā)往所有客戶端,用于客戶內(nèi)部核心數(shù)據(jù)庫的同步。
大多數(shù)計(jì)算時(shí)間花費(fèi)在本地客戶端上。在客戶端目標(biāo)對象被增加、編輯和刪除,同時(shí)執(zhí)行所有與那些編輯相關(guān)的自動化操作(如推、擠和平滑)。與客戶端相比,服務(wù)器的負(fù)載相對要輕一些,因此不會影響到系統(tǒng)性能。對該環(huán)境的測試表明服務(wù)器的響應(yīng)速度非???,不會降低客戶端的速度。
電路板的自動布線
并行設(shè)計(jì)技術(shù)的第二個應(yīng)用是電路板的自動布線。多年來分布式自動布線一直是電路板布線軟件的“強(qiáng)大武器”。以前IC布線器已轉(zhuǎn)換到分布式環(huán)境運(yùn)行。然而,電路板布線問題有很大的不同,直到現(xiàn)在人們還是認(rèn)為必須改編自動布線器才能充分利用多個計(jì)算機(jī)共同完成同一設(shè)計(jì)的優(yōu)勢。軟件供應(yīng)商和第三方工程師們在試圖獲得可接受的性能提升方面也作過多次嘗試,但都以失敗告終。
新的并行設(shè)計(jì)技術(shù)所采用的架構(gòu)能夠解決分布布線環(huán)境下的大多數(shù)關(guān)鍵問題,它知道如何防止或解決沖突。同樣,服務(wù)器擔(dān)當(dāng)設(shè)計(jì)進(jìn)程管理角色,來自每個自動布線器客戶端的請求在服務(wù)器中被整合、檢查并廣播到其它客戶端。所有自動布線器客戶端保持同步,因此當(dāng)在本地增加新的布線路徑時(shí),布線路徑?jīng)_突的機(jī)率很小。
整合高效工具
由于電路設(shè)計(jì)是包含了眾多步驟和規(guī)則的一個過程,因此要想獲得優(yōu)良的生產(chǎn)力,必須緊密地整合最高效的點(diǎn)式工具。在整個設(shè)計(jì)過程中數(shù)據(jù)和規(guī)則必須能順暢的流動。
在過去20年中,EDA工業(yè)發(fā)生了規(guī)模空前的合并和收購,結(jié)果軟件供應(yīng)商的設(shè)計(jì)流程都依賴于眾多工具的整合。除此之外,大型公司要求眾多軟件供應(yīng)商的工具能集成到自己獨(dú)特的設(shè)計(jì)流程中。
權(quán)宜之計(jì)是編寫一個接口,通過該接口將一個工具的ASCII輸出轉(zhuǎn)換成其它工具的ASCII輸入格式。照這樣做的話會生成上百個ASCII接口,每個接口用于克服常見的數(shù)據(jù)模型和規(guī)則不兼容問題。
這種整合方法的基本要求是所有應(yīng)用必須擁有完全兼容的數(shù)據(jù)模型。每個應(yīng)用程序處理數(shù)據(jù)時(shí)可能使用不同的工具和不同的自動化水平,但每個應(yīng)用程序必須能夠接收改動并加以識別,從而知道下一步該做什么。
也可能使用并行設(shè)計(jì)技術(shù)整合某個應(yīng)用以執(zhí)行一組特定的任務(wù),如創(chuàng)建、布局、布線和編輯嵌入式器件。如果這樣,那么那個應(yīng)用程序就能被自動限制成只允許使用那些特定的功能。
電路和板設(shè)計(jì)
將并行版圖和并行整合所需的技術(shù)結(jié)合起來可以形成這樣的環(huán)境,即設(shè)計(jì)流程中的多個不同應(yīng)用可以被整合在一起,并供多個設(shè)計(jì)師同時(shí)使用。
例如,原理圖設(shè)計(jì)、約束管理、版圖設(shè)計(jì)、三維機(jī)械設(shè)計(jì)仿真和制造等應(yīng)用程序能以某種方式整合起來,從而允許所有這些應(yīng)用程序被同步投入使用,同時(shí)在整個設(shè)計(jì)流程中更新和同步所有的編輯事件。甚至在混合環(huán)境中可能出現(xiàn)多個相似的應(yīng)用,比如多個版圖工具。
由于多個應(yīng)用程序在同時(shí)運(yùn)行,工程師就能快速理解所增加路徑的信號完整性效應(yīng)。如在蜂窩話機(jī)設(shè)計(jì)的三維機(jī)械系統(tǒng)中,器件在版圖中的移動能夠立即獲得更新和被檢查。
評論