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