<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 電路板設(shè)計(jì)的并行設(shè)計(jì)法

          電路板設(shè)計(jì)的并行設(shè)計(jì)法

          作者: 時(shí)間:2017-06-13 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/358137.htm

          利用最新開(kāi)發(fā)的軟件技術(shù)可以完成高效的并行。這種新的技術(shù)能使多個(gè)設(shè)計(jì)師、多個(gè)進(jìn)程和不同種類的工具同時(shí)工作于同一個(gè)設(shè)計(jì)數(shù)據(jù)庫(kù),并能顯著地提高設(shè)計(jì)生產(chǎn)力。


          與將設(shè)計(jì)分成若干部分并獨(dú)立地完成各個(gè)部分的傳統(tǒng)方法不同,此新技術(shù)能在一個(gè)公共數(shù)據(jù)庫(kù)上創(chuàng)建并行進(jìn)程,并能自動(dòng)同步進(jìn)程的變化、解決相互間可能發(fā)生的沖突。這在EDA行業(yè)是首創(chuàng)。


          自從20世紀(jì)90年代在中廣泛采用CAD以來(lái),制造領(lǐng)域通過(guò)自動(dòng)化和工藝優(yōu)化手段一直在不斷地提高設(shè)計(jì)生產(chǎn)力。不幸的是,隨著電路設(shè)計(jì)軟件技術(shù)的不斷創(chuàng)新,要求支持新的信號(hào)、元器件或板級(jí)制造技術(shù)的呼聲也在日益高漲,因此整個(gè)設(shè)計(jì)時(shí)間幾乎沒(méi)有縮短(甚至更長(zhǎng))。


          如果設(shè)計(jì)方法學(xué)沒(méi)有根本性改變的話,軟件將始終扮演硬件技術(shù)的跟隨者角色,而不會(huì)成為發(fā)展曲線上的領(lǐng)先者。多位工程師從事同一設(shè)計(jì)的并行工程技術(shù)一直是生產(chǎn)力突破的有效法寶。傳統(tǒng)的分而治之法將設(shè)計(jì)分成若干個(gè)部分并分配到各個(gè)工程師手上,最后把各個(gè)部分聯(lián)接起來(lái),并通過(guò)強(qiáng)制措施(根據(jù)預(yù)先定義好的規(guī)則自動(dòng)做出決定)或巧妙手段(讓工程師逐個(gè)解決沖突)解決所有的沖突。


          這種方法對(duì)于電路的原理圖設(shè)計(jì)來(lái)說(shuō)是相當(dāng)有效的,因?yàn)樗梢愿鶕?jù)功能直接把設(shè)計(jì)分割成多個(gè)模塊和頁(yè)。雖然如此,但這種方法仍需要相當(dāng)多的人工操作才能解決模塊間的互連問(wèn)題,如信號(hào)名沖突、元件遺漏等等。只要設(shè)計(jì)師相互間看不到對(duì)方在做什么,上述這些失誤就很有可能發(fā)生。


          如果一個(gè)方法允許多個(gè)設(shè)計(jì)師能夠在同一時(shí)間同時(shí)做同一個(gè)設(shè)計(jì),能看到其他設(shè)計(jì)師做的編輯內(nèi)容,能實(shí)時(shí)自動(dòng)地管理各種潛在的沖突,那么這種方法才能獲得最佳的靈活性和生產(chǎn)力。


          架構(gòu)


          新的并行設(shè)計(jì)技術(shù)需要在網(wǎng)絡(luò)環(huán)境中運(yùn)行的一個(gè)設(shè)計(jì)進(jìn)程管理器(服務(wù)器)和多個(gè)設(shè)計(jì)客戶端。服務(wù)器軟件的主要工作是從每個(gè)客戶端接收更新請(qǐng)求,并對(duì)請(qǐng)求實(shí)施檢查以確保沒(méi)有違反設(shè)計(jì)規(guī)則,然后根據(jù)更新內(nèi)容使每個(gè)客戶端同步。


          每個(gè)客戶端必須擁有自己專用的。新的并行設(shè)計(jì)架構(gòu)還假設(shè)通信系統(tǒng)能夠支持客戶端與服務(wù)器之間實(shí)時(shí)高效交換信息所需的最小帶寬和最大延時(shí)。每個(gè)客戶端都能看到整個(gè)設(shè)計(jì),并在服務(wù)器處理它們時(shí)觀察到其它客戶端的編輯。設(shè)計(jì)數(shù)據(jù)庫(kù)允許存儲(chǔ)于網(wǎng)絡(luò)上的任何地方。

          這種并行設(shè)計(jì)架構(gòu)允許多個(gè)設(shè)計(jì)師同時(shí)做同一個(gè)設(shè)計(jì),而無(wú)需以邏輯或其它任何方式分割設(shè)計(jì)。這是一個(gè)真正實(shí)時(shí)的合作設(shè)計(jì)環(huán)境,在這種環(huán)境下所有與分割邊界以及分割-聯(lián)接操作期間管理數(shù)據(jù)完整性相關(guān)的問(wèn)題都不會(huì)出現(xiàn)。


          由于多個(gè)設(shè)計(jì)師能夠以并行方式無(wú)任何限制地做同一個(gè)設(shè)計(jì),因此能夠顯著地縮短整個(gè)設(shè)計(jì)周期。


          每個(gè)設(shè)計(jì)都有相關(guān)的設(shè)計(jì)團(tuán)隊(duì),只有團(tuán)隊(duì)的成員才被允許訪問(wèn)設(shè)計(jì)數(shù)據(jù)。任何一個(gè)團(tuán)隊(duì)成員都能在服務(wù)器和單個(gè)客戶端上啟動(dòng)一個(gè)設(shè)計(jì)會(huì)議。其它客戶端可以在任何時(shí)候參與該會(huì)議。


          設(shè)計(jì)最開(kāi)始時(shí)是裝載在服務(wù)器上的,當(dāng)客戶端加入會(huì)議并將服務(wù)器設(shè)計(jì)的當(dāng)前狀態(tài)自動(dòng)下載到客戶端的內(nèi)后,客戶端就得到初始化并獲得同步。一旦客戶端加入設(shè)計(jì)會(huì)議,它就可以使用應(yīng)用程序中可用的標(biāo)準(zhǔn)編輯工具對(duì)設(shè)計(jì)進(jìn)行編輯。


          編輯事件是由客戶端發(fā)起的一項(xiàng)獨(dú)立活動(dòng),它作為一個(gè)更新請(qǐng)求發(fā)往服務(wù)器。例如將一個(gè)器件從A點(diǎn)移動(dòng)到B點(diǎn)就組成了一個(gè)編輯事件,事件的開(kāi)始是選取器件,事件的結(jié)束是以鼠標(biāo)點(diǎn)擊(或等效的輸入)指示新位置。編輯事件作為一個(gè)事務(wù)處理被發(fā)往服務(wù)器,它描述了要?jiǎng)h除的東西和要添加的東西。


          每次客戶端產(chǎn)生的編輯事件在發(fā)送到服務(wù)器之前必須先執(zhí)行本地的設(shè)計(jì)規(guī)則檢查(DRC),然后設(shè)置好編輯請(qǐng)求的優(yōu)先級(jí)并根據(jù)先進(jìn)先出的原則進(jìn)入輸入消息隊(duì)列。服務(wù)器接收到編輯請(qǐng)求后先將它整合進(jìn)設(shè)計(jì)數(shù)據(jù)庫(kù),然后執(zhí)行DRC。如果沒(méi)有發(fā)現(xiàn)什么問(wèn)題,編輯請(qǐng)求就被批準(zhǔn),并通過(guò)輸出消息隊(duì)列發(fā)往所有客戶端,用于客戶內(nèi)部核心數(shù)據(jù)庫(kù)的同步。


          大多數(shù)計(jì)算時(shí)間花費(fèi)在本地客戶端上。在客戶端目標(biāo)對(duì)象被增加、編輯和刪除,同時(shí)執(zhí)行所有與那些編輯相關(guān)的自動(dòng)化操作(如推、擠和平滑)。與客戶端相比,服務(wù)器的負(fù)載相對(duì)要輕一些,因此不會(huì)影響到系統(tǒng)性能。對(duì)該環(huán)境的測(cè)試表明服務(wù)器的響應(yīng)速度非常快,不會(huì)降低客戶端的速度。


          電路板的


          并行設(shè)計(jì)技術(shù)的第二個(gè)應(yīng)用是電路板的。多年來(lái)分布式一直是電路板布線軟件的“強(qiáng)大武器”。以前IC布線器已轉(zhuǎn)換到分布式環(huán)境運(yùn)行。然而,電路板布線問(wèn)題有很大的不同,直到現(xiàn)在人們還是認(rèn)為必須改編自動(dòng)布線器才能充分利用多個(gè)計(jì)算機(jī)共同完成同一設(shè)計(jì)的優(yōu)勢(shì)。軟件供應(yīng)商和第三方工程師們?cè)谠噲D獲得可接受的性能提升方面也作過(guò)多次嘗試,但都以失敗告終。


          新的并行設(shè)計(jì)技術(shù)所采用的架構(gòu)能夠解決分布布線環(huán)境下的大多數(shù)關(guān)鍵問(wèn)題,它知道如何防止或解決沖突。同樣,服務(wù)器擔(dān)當(dāng)設(shè)計(jì)進(jìn)程管理角色,來(lái)自每個(gè)自動(dòng)布線器客戶端的請(qǐng)求在服務(wù)器中被整合、檢查并廣播到其它客戶端。所有自動(dòng)布線器客戶端保持同步,因此當(dāng)在本地增加新的布線路徑時(shí),布線路徑?jīng)_突的機(jī)率很小。

          整合高效工具


          由于電路設(shè)計(jì)是包含了眾多步驟和規(guī)則的一個(gè)過(guò)程,因此要想獲得優(yōu)良的生產(chǎn)力,必須緊密地整合最高效的點(diǎn)式工具。在整個(gè)設(shè)計(jì)過(guò)程中數(shù)據(jù)和規(guī)則必須能順暢的流動(dòng)。


          在過(guò)去20年中,EDA工業(yè)發(fā)生了規(guī)??涨暗暮喜⒑褪召?gòu),結(jié)果軟件供應(yīng)商的設(shè)計(jì)流程都依賴于眾多工具的整合。除此之外,大型公司要求眾多軟件供應(yīng)商的工具能集成到自己獨(dú)特的設(shè)計(jì)流程中。


          做的話會(huì)生成上百個(gè)ASCII接口,每個(gè)接口用于克服常見(jiàn)的數(shù)據(jù)模型和規(guī)則不兼容問(wèn)題。


          這種整合方法的基本要求是所有應(yīng)用必須擁有完全兼容的數(shù)據(jù)模型。每個(gè)應(yīng)用程序處理數(shù)據(jù)時(shí)可能使用不同的工具和不同的自動(dòng)化水平,但每個(gè)應(yīng)用程序必須能夠接收改動(dòng)并加以識(shí)別,從而知道下一步該做什么。


          也可能使用并行設(shè)計(jì)技術(shù)整合某個(gè)應(yīng)用以執(zhí)行一組特定的任務(wù),如創(chuàng)建、布局、布線和編輯嵌入式器件。如果這樣,那么那個(gè)應(yīng)用程序就能被自動(dòng)限制成只允許使用那些特定的功能。


          電路和板設(shè)計(jì)


          將并行版圖和并行整合所需的技術(shù)結(jié)合起來(lái)可以形成這樣的環(huán)境,即設(shè)計(jì)流程中的多個(gè)不同應(yīng)用可以被整合在一起,并供多個(gè)設(shè)計(jì)師同時(shí)使用。


          例如,原理圖設(shè)計(jì)、約束管理、版圖設(shè)計(jì)、三維機(jī)械設(shè)計(jì)仿真和制造等應(yīng)用程序能以某種方式整合起來(lái),從而允許所有這些應(yīng)用程序被同步投入使用,同時(shí)在整個(gè)設(shè)計(jì)流程中更新和同步所有的編輯事件。甚至在混合環(huán)境中可能出現(xiàn)多個(gè)相似的應(yīng)用,比如多個(gè)版圖工具。


          由于多個(gè)應(yīng)用程序在同時(shí)運(yùn)行,工程師就能快速理解所增加路徑的信號(hào)完整性效應(yīng)。如在蜂窩話機(jī)設(shè)計(jì)的三維機(jī)械系統(tǒng)中,器件在版圖中的移動(dòng)能夠立即獲得更新和被檢查。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();