亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

電路設(shè)計(jì)中電路元件的試探群集法的制作方法

文檔序號(hào):6618627閱讀:261來(lái)源:國(guó)知局
專利名稱:電路設(shè)計(jì)中電路元件的試探群集法的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)和計(jì)算機(jī)軟件,更確切地說(shuō),涉及在集成電路 器件設(shè)計(jì)中使用的計(jì)算機(jī)軟件。
背景技術(shù)
隨著半導(dǎo)體制造技術(shù)的進(jìn)步,通常稱為芯片的集成電路器件繼續(xù) 變得更加強(qiáng)大而復(fù)雜。雖然早期的集成電路器件包括不足一百個(gè)晶體 管,但是當(dāng)今把成百萬(wàn)的晶體管集成在單個(gè)集成電路器件中是很常見(jiàn) 的。這種增大的晶體管教量使得曾經(jīng)需要幾個(gè)集成電路器件的某些運(yùn) 算現(xiàn)在能夠在單個(gè)集成電路器件中實(shí)現(xiàn),往往以更低的成本提供了更 高的性能。例如,在先前數(shù)據(jù)處理系統(tǒng)可能需要分開的集成電路器件 實(shí)現(xiàn)微處理器、存儲(chǔ)器、總線接口和存儲(chǔ)器控制器,芯片密度的進(jìn)步 現(xiàn)在允許所有這些功能都集成在同一集成電路器件中。由于這樣的器 件提供了高度的集成,所以它們一般被稱為"單片系統(tǒng)(systems on a chip)"。
芯片密度的提高也顯著地影響了集成電路芯片所用的設(shè)計(jì)技術(shù)。
典型情況下,在設(shè)計(jì)中不是手工地布置各個(gè)晶體管或邏輯門以獲得所 期望的邏輯功能,而是將設(shè)計(jì)過(guò)程的功能方面與物理方面分開。典型 情況下,設(shè)計(jì)的功能方面通過(guò)稱為邏輯設(shè)計(jì)的過(guò)程著手,它產(chǎn)生電路
設(shè)計(jì)的功能定義,典型情況下以諸如VHDL或Verilog之類的硬件描 述語(yǔ)言(HDL)定義。電路的HDL表達(dá)在許多方面類似于軟件程序, 因?yàn)镠DL表達(dá)通常定義將要由電路設(shè)計(jì)執(zhí)行的邏輯或功能。此外, 通過(guò)使邏輯設(shè)計(jì)與物理規(guī)劃分開,能夠以更高的抽象級(jí)別定義若干功 能。
與創(chuàng)建HDL表達(dá)并行,典型情況下通過(guò)規(guī)劃過(guò)程(往往稱為集 成)創(chuàng)建電路設(shè)計(jì)的物理定義,以實(shí)質(zhì)地創(chuàng)建邏輯門以及邏輯門之間 連接的"平面布置圖",表示所制造的集成電路上電路元件的實(shí)際物理 布局。為了釆用預(yù)定義的完整電路單元或塊來(lái)協(xié)助規(guī)劃,已經(jīng)開發(fā)了 自動(dòng)化工具,從而不再需要應(yīng)付數(shù)以百萬(wàn)計(jì)的各個(gè)邏輯門。例如,為 了從設(shè)計(jì)的HDL表達(dá)產(chǎn)生隨機(jī)邏輯宏(RLM)塊,已經(jīng)開發(fā)了合成 工具,因而規(guī)劃設(shè)計(jì)的人員為了完成電路設(shè)計(jì)只須放置這些RLM塊 并使之彼此相連。此外,某些設(shè)計(jì)加入了來(lái)自成品(OTS)邏輯塊的 塊,它們?cè)诟鞔卧O(shè)計(jì)中可重用。
一旦創(chuàng)建了物理定義,便可以進(jìn)行該設(shè)計(jì)的測(cè)試和仿真,以識(shí)別 一切潛在的計(jì)時(shí)和/或可制造性問(wèn)題。 一旦已經(jīng)確定該設(shè)計(jì)滿足這些需 求,便可以采用該設(shè)計(jì)制造集成電路。
集成電路已經(jīng)變得更加復(fù)雜,開發(fā)和測(cè)試過(guò)程中所涉及的人數(shù)已 經(jīng)大幅增加。事實(shí)上,在許多情況下執(zhí)行邏輯設(shè)計(jì)過(guò)程的人員與執(zhí)行 物理設(shè)計(jì)過(guò)程的集成者完全分開。不僅如此,隨著集成電路日益變得 更復(fù)雜、更大、更快,計(jì)時(shí)問(wèn)題變得更加顯著,往往在規(guī)劃已經(jīng)進(jìn)行 之后還需要修改設(shè)計(jì)的功能定義。在許多情況下,可能需要改寫功能 定義、更新物理定義和重測(cè)物理定義的幾次迭代,才能充分地解決計(jì) 時(shí)問(wèn)題。所以,對(duì)于參與這些不同過(guò)程的不同人員,調(diào)整對(duì)功能定義 和物理定義的更新可能變得問(wèn)題重重、耗時(shí)良多。
例如在一個(gè)特定區(qū)域,規(guī)劃過(guò)程可能需要修改功能定義的情形與本文所稱的開銷邏輯(overhead logic )相關(guān)聯(lián),即與電路設(shè)計(jì)所實(shí)施 的主邏輯中沒(méi)有直接涉及的補(bǔ)充支持電路相關(guān)聯(lián)。例如,為了對(duì)制成 的器件提供可測(cè)試性,大多數(shù)集成電路設(shè)計(jì)都包括掃描架構(gòu),其中集 成了稱為掃描鏈的一條或多條鎖存器串聯(lián)鏈。串聯(lián)鏈或掃描路徑中的 鎖存器用于,當(dāng)配置為特定模式時(shí),這些鎖存器一起用作移位寄存器, 所以數(shù)據(jù)可以從單個(gè)來(lái)源移進(jìn)鎖存器鏈中以仿真不同的條件,并且器 件內(nèi)產(chǎn)生的數(shù)據(jù)可以通過(guò)單個(gè)輸出移出。因此,利用掃描架構(gòu),在任 何給定時(shí)刻器件中各種節(jié)點(diǎn)的當(dāng)前狀態(tài)可以受到控制和/或記錄,后來(lái) 通過(guò)外部裝備存取以驗(yàn)證制成器件的操作。
掃描鏈中的鎖存器串聯(lián)地連接在一起,典型情況下每個(gè)鎖存器都 具有掃描入端口和掃描出端口 ,每個(gè)鎖存器的掃描入端口連接到其前 面鎖存器的掃描出端口。雖然不太復(fù)雜的電路設(shè)計(jì)在單個(gè)掃描鏈中可 能包括幾十或幾百個(gè)鎖存器,但是更復(fù)雜的設(shè)計(jì),如許多SOC設(shè)計(jì), 可能需要掃描架構(gòu)中的幾千個(gè)鎖存器。不僅如此,為了確保將數(shù)據(jù)加 載進(jìn)和卸栽出掃描架構(gòu)所需的時(shí)間量,典型情況下使用多條掃描鏈, 需要將每個(gè)鎖存器分配到特定掃描鏈,再分配到選定掃描鏈中的特定 位置。
掃描架構(gòu)可能需要將附加時(shí)鐘控制信號(hào)分配到各個(gè)鎖存器,以便 啟動(dòng)和以其他方式配置掃描鏈操作。對(duì)于更復(fù)雜的集成電路設(shè)計(jì),施
加在設(shè)計(jì)上的尺寸和計(jì)時(shí)約束往往需要使用分配樹來(lái)分配時(shí)鐘控制信 號(hào)以及其他開銷的或非開銷的全局信號(hào)。在分配樹中,通過(guò)鎖存器樹 分配信號(hào),以便為信號(hào)補(bǔ)充動(dòng)力,縮短有效線路長(zhǎng)度,并且減少散開 (fanout)問(wèn)題,同時(shí)確保信號(hào)同時(shí)到達(dá)全部終點(diǎn)。結(jié)果,類似于將 鎖存器分配到掃描鏈,往往需要將鎖存器連接到來(lái)自分配樹的適當(dāng)信 號(hào)輸出。
作為一般設(shè)計(jì)規(guī)則,期望采用多條平衡的掃描鏈以縮短每條掃描 鏈的長(zhǎng)度,并因此減少測(cè)試電路所需的時(shí)間量。不僅如此,往往期望 使掃描鏈中將鎖存器連接在一起所用的線路長(zhǎng)度最短,典型情況下通 過(guò)將物理位置彼此鄰近的鎖存器分組在同 一掃描鏈中而實(shí)現(xiàn)。
往往期望在電路設(shè)計(jì)的功能定義中保持鎖存器到掃描鏈和分配 樹的分配。不過(guò),對(duì)于邏輯設(shè)計(jì)之后進(jìn)行的規(guī)劃,只有在設(shè)計(jì)已經(jīng)規(guī) 劃之后,才能確定鎖存器到掃描鏈的最優(yōu)分配以及鎖存器到信號(hào)分配 樹的分配。往往需要邏輯設(shè)計(jì)者最初只不過(guò)根據(jù)有經(jīng)驗(yàn)的猜測(cè)手工地 將鎖存器連接到掃描鏈和分配樹。作為規(guī)劃和測(cè)試的結(jié)果,往往必須 手工地修改鎖存器連接,以便縮短線路長(zhǎng)度并實(shí)現(xiàn)計(jì)時(shí)需求。給定設(shè) 計(jì)過(guò)程的迭代性質(zhì),可能需要重復(fù)的手工修改。這又導(dǎo)致難以固定功 能定義,因?yàn)楣δ芏x取決于規(guī)劃改變,反之亦然。
對(duì)于大器件集成,保持恰當(dāng)分配變得有嚴(yán)重問(wèn)題。例如,集成期 間當(dāng)寄存器(即鎖存器組)物理地移動(dòng)任何顯著距離時(shí),它往往必須 連接到分配樹的不同節(jié)點(diǎn),并必須置于(可能不同的)掃描環(huán)的新位 置。典型的IP塊可能具有幾十個(gè)寄存器(結(jié)果是幾百個(gè)鎖存器),每 個(gè)都需要進(jìn)行單獨(dú)的分配樹和掃描鏈分配。取決于寄存器的物理位置
某些設(shè)計(jì)尺寸可能產(chǎn)生大約150個(gè)不同的分配樹信號(hào)以供選擇,并且 可能加入25個(gè)或更多分開的掃描環(huán)。結(jié)果,分配的管理可能相當(dāng)費(fèi)力。 典型情況下,提高器件頻率在設(shè)計(jì)中增加了更多的布局不穩(wěn)定 性,迫使集成者對(duì)器件的平面布置圖進(jìn)行頻繁改變。由于對(duì)掃描架構(gòu) 的連接實(shí)際上不是功能邏輯的一部分,所以進(jìn)行這些改變時(shí)通常不考 慮對(duì)掃描架構(gòu)的后果。因此,在電路設(shè)計(jì)中管理掃描架構(gòu)連接以及對(duì) 其他開銷電路的連接,這方面的困難持續(xù)增加。

發(fā)明內(nèi)容
本發(fā)明針對(duì)與現(xiàn)有技術(shù)相關(guān)聯(lián)的這些和其他問(wèn)題,在一方面提供 了采用試探群集法的裝置、程序產(chǎn)品和方法,以產(chǎn)生電路元件到若干 群集或組的分配,以便優(yōu)化所期望的空間位置度量。例如,根據(jù)本發(fā) 明的若干實(shí)施例可以用于將電路元件比如掃描啟用的鎖存器分配到各 條掃描鏈,以便為電路設(shè)計(jì)優(yōu)化掃描架構(gòu)中掃描鏈的規(guī)劃。
例如,按照本發(fā)明,在電路設(shè)計(jì)中群集電路元件時(shí),可以通過(guò)將 電路設(shè)計(jì)中的多個(gè)電路元件分組到多個(gè)尺寸平衡的群集中,并且為所
述多個(gè)電路元件試探地優(yōu)化空間位置度量。所述試探優(yōu)化可以通過(guò)下
列步驟執(zhí)行在所述多個(gè)群集之間迭代地進(jìn)行群集之間電路元件的交 換,在進(jìn)行所述交換后重新計(jì)算所述空間位置度量,以及根據(jù)所述重 新計(jì)算的空間位置度量選擇地放棄所述交換。
在本文附帶并形成本文另外部分的權(quán)利要求書中,闡述了表現(xiàn)本 發(fā)明特征的這些和其他優(yōu)點(diǎn)和特性。不過(guò),為了更好地理解本發(fā)明以 及通過(guò)其使用所達(dá)到的優(yōu)點(diǎn)和目的,應(yīng)當(dāng)參考附圖和伴隨的描迷材料, 其中介紹了本發(fā)明的若干示范實(shí)施例。


現(xiàn)在將參考附圖介紹本發(fā)明一僅僅舉例說(shuō)明而已,其中
圖1是根據(jù)本發(fā)明加入了試探群集法的集成電路設(shè)計(jì)過(guò)程的框
圖2是適于實(shí)施圖1中過(guò)程的計(jì)算機(jī)系統(tǒng)中主要硬件部件的框
圖3是流程圖,展示了圖2中引用的開銷邏輯工具能夠執(zhí)行的試
探群集例程的程序流程;
圖4是流程圖,展示了圖2中引用的開銷邏輯工具能夠執(zhí)行的采 用試探群集算法的掃描鏈分配例程的程序流程;
圖5是流程圖,展示了圖4中引用的初始分配鎖存器到掃描鏈例 程的一種實(shí)施方案的程序流程;
圖6是流程圖,展示了圖4中引用的初始分配鎖存器到掃描鏈例 程的另一種實(shí)施方案的程序流程;
圖7是流程圖,展示了圖2中引用的開銷邏輯工具能夠執(zhí)行的另 一個(gè)試探群集例程的程序流程,它支持一次交換三個(gè)群集之間的鎖存 器;以及
圖8-圖12是示范電路設(shè)計(jì)的框圖,展示了圖4中引用的掃描鏈 分配例程操作。
具體實(shí)施例方式
后文討論的若干實(shí)施例采用試探群集算法產(chǎn)生電路元件到若干 群集或組的分配,為電路設(shè)計(jì)優(yōu)化所期望的空間位置度量。例如,本 文介紹的若干實(shí)施例采用試探群集法將掃描啟用的鎖存器分配到電路 設(shè)計(jì)的掃描架構(gòu)中的各條掃描鏈,以優(yōu)化掃描鏈中的線路長(zhǎng)度,因此 使規(guī)劃和計(jì)時(shí)問(wèn)題最小化。
不僅如此,試探群集法可以用于本文介紹的若干實(shí)施例中,允許 在電路設(shè)計(jì)的功能定義已經(jīng)創(chuàng)建并且設(shè)計(jì)中的電路元件已經(jīng)規(guī)劃到平 面布置圖以創(chuàng)建物理定義之后,使電路設(shè)計(jì)的功能定義中定義的電路 元件能夠自動(dòng)地連接到或分配到開銷電路,比如掃描架構(gòu)電路,因此 允許邏輯設(shè)計(jì)者在功能定義的開發(fā)期間致力于電路設(shè)計(jì)中的功能問(wèn) 題,而不必太在意由開銷電路引起的問(wèn)題。
此外,正如名稱為"AUTOMATIC BACK ANNOTATION OF A FUNCTIONAL DEFINITION OF AN INTEGRATED CIRCUIT DESIGN BASED UPON PHYSICAL LAYOUT,,的前述交叉引用申請(qǐng) 中更詳細(xì)的介紹,在向回注釋過(guò)程中,可以釆用電路元件到群集的分 配,如鎖存器到掃描鏈的分配,以利用通過(guò)試探群集法產(chǎn)生的電路元 件分配自動(dòng)地向回注釋電路設(shè)計(jì)的功能定義。
例如使用任何數(shù)目的硬件定義語(yǔ)言(HDL)格式,如VHDL、 Verilog等,都可以實(shí)施本發(fā)明上下文內(nèi)的功能定義,并表示其間的全 部或部分部件和連接,以便在集成電路器件中實(shí)施所期望的邏輯,該 期望的邏輯可以與物理規(guī)劃無(wú)關(guān)。物理定義可以實(shí)施為例如一個(gè)或多 個(gè)連線表(netlist)文件,并表示全部或部分電路設(shè)計(jì)的物理規(guī)劃。
電路元件在本文中可以替代地稱為單元或部件,應(yīng)當(dāng)認(rèn)識(shí)到,電 路元件能夠以變化級(jí)別的復(fù)雜度和抽象度加入電路,如小至單個(gè)邏輯 門,或大至包含幾百個(gè)或幾千個(gè)邏輯門的復(fù)雜IP塊。根據(jù)本發(fā)明的實(shí) 施例在電路設(shè)計(jì)中有效地將某些和全部電路元件分組在群集或組中, 應(yīng)當(dāng)認(rèn)識(shí)到,本發(fā)明的原理可以應(yīng)用到大多數(shù)(如果不是全部的話) 電路元件,對(duì)于這些電路元件可能因?yàn)榛诘乩淼脑蚱谕杭?br> 為了實(shí)施根據(jù)本發(fā)明的試探群集法,電路元件起初分組到尺寸平 衡的群集中,即成員數(shù)目嚴(yán)格或近似相同的群集。對(duì)每個(gè)群集定義了 所期望的質(zhì)心,表示電路設(shè)計(jì)的規(guī)劃中每個(gè)群集的所期望地理位置。 在以下討論的所展示實(shí)施例中,沿著單個(gè)維度,即沿著電路設(shè)計(jì)的垂 直軸,定義每個(gè)群集的所期望質(zhì)心。不過(guò)在其他實(shí)施例中,可以在兩 個(gè)或更多維度中建立所期望質(zhì)心。所期望質(zhì)心可以手工定義,也可以 自動(dòng)定義,在某些實(shí)施方案中,可能期望調(diào)整或修改所期望質(zhì)心以改 進(jìn)群集。
一旦對(duì)每個(gè)群集定義了所期望質(zhì)心,便可以進(jìn)行試探群集,選擇 地在群集之間單個(gè)地或成組地交換電路元件,以改進(jìn)這些群集的空間 分布,如使每個(gè)群集盡可能空間上緊湊。
在所展示的實(shí)施例中測(cè)量每個(gè)群集的空間分布的方式是通過(guò)測(cè) 量空間位置度量。在后文介紹的實(shí)施例中,對(duì)于每個(gè)所期望質(zhì)心都在 單個(gè)維度中定義的情況,每個(gè)群集的空間位置度量可以計(jì)算為所期望 質(zhì)心與分配到該群集的每個(gè)電路元件(如每個(gè)電路元件的中心或邊) 之間的垂直距離之和。不過(guò)在其他實(shí)施例中,也可以使用其他空間位 置度量。例如,對(duì)于在兩個(gè)維度中定義所期望質(zhì)心的情況,所期望質(zhì) 心可以采用從每個(gè)電路元件到群集質(zhì)心點(diǎn)的二維距離,如基于曼哈頓 距離(垂直和水平距離之和),或基于兩點(diǎn)之間的最短距離(即"直線 距離")??臻g位置度量也可以僅僅基于群集中電路元件的子集,或者 也可以考慮"質(zhì)量",如在計(jì)算中以每個(gè)電路元件的相對(duì)尺寸為因子。, 空間位置度量也可以基于表示全部群集的空間分布的整體計(jì)算。實(shí)際 上,任何能夠用于定義若干群集的空間分布的度量,比如群集的地理 最優(yōu)化級(jí)別就是如此,都可以用作根據(jù)本發(fā)明的空間位置度量。
根據(jù)本發(fā)明的試探群集法通過(guò)下列步驟對(duì)一個(gè)或多個(gè)群集優(yōu)化
空間位置度量迭代、重復(fù)地進(jìn)行兩個(gè)或更多群集之間一個(gè)或多個(gè)電 路元件的交換,重新計(jì)算空間位置度量,并且放棄,如拒絕或取消, 未改進(jìn)空間位置度量的任何交換。典型情況下, 一直進(jìn)行這樣的迭代、 重復(fù)的隨機(jī)交換,直至到達(dá)所期望的終點(diǎn),如在預(yù)置的迭代次數(shù)后,
在預(yù)置的未成功交換的迭代次數(shù)后,等等。
應(yīng)當(dāng)認(rèn)識(shí)到,在不同的實(shí)施例中,交換是否改進(jìn)空間位置度量可 以有不同地解釋。例如,如果空間位置度量不變,如果該度量不改變 到超過(guò)某閾值,或者如果該度量事實(shí)上變差,便可以認(rèn)為該度量沒(méi)有 改進(jìn)。
也應(yīng)當(dāng)認(rèn)識(shí)到,進(jìn)行交換并在重新計(jì)算空間位置度量后拒絕交換 不一定需要若干電路元件重新分配到不同的群集,即,先分配到另一 個(gè)群集,再重新計(jì)算空間位置度量,如果該度量未改進(jìn)則重新分配回 原始群集。在某些實(shí)施例中,進(jìn)行交換時(shí)可以僅僅加入為了重新計(jì)算 空間位置度量的目的而交換的選擇的電路元件,假設(shè)這樣的電路元件 好像已經(jīng)分配到新群集,由此在確定已經(jīng)實(shí)現(xiàn)改進(jìn)后才需要分配到新 群集,并且放棄僅僅需要在確定沒(méi)有實(shí)現(xiàn)改進(jìn)后略去這樣的分配。不 過(guò)在其他實(shí)施例中,進(jìn)行交換和放棄交換也可以加入分配和重新分配 電路元件到不同的群集。
后文的討論介紹將掃描啟用的鎖存器分配到掃描鏈;不過(guò),應(yīng)當(dāng) 認(rèn)識(shí)到,本文討論的試探群集算法可以用于將掃描啟用的鎖存器以及 其他類型的電路元件分配到不同類型的群集,以便例如,便于將全局 信號(hào)比如功能信號(hào)或時(shí)鐘控制信號(hào)分配到多個(gè)電路元件。在這點(diǎn)上, 可以將全局信號(hào)看成包括使用分配樹在電路設(shè)計(jì)的多個(gè)單元或分區(qū)之 間共享的一切信號(hào)。全局信號(hào)分配典型情況下將鎖存器或其他電路元
件分配到分配具體全局信號(hào)的分配樹上的具體終點(diǎn)。
現(xiàn)在看附圖,其中相同的附圖標(biāo)記在幾幅圖從始至終表示相同的 部件。圖i展示了適于實(shí)施根據(jù)本發(fā)明的試探群集法的示范集成電路
設(shè)計(jì)過(guò)程10。典型情況下,該設(shè)計(jì)過(guò)程開始于如方框12所示的邏輯
設(shè)計(jì),典型情況下由一個(gè)或多個(gè)邏輯設(shè)計(jì)者使用邏輯設(shè)計(jì)工具進(jìn)行,
并產(chǎn)生功能定義,例如,具有一個(gè)或多個(gè)VHDL文件形式。這些VHDL 文件典型情況下,但是不一定,提供給源代碼釋放過(guò)程14,它維持這 些VHDL文件的版本控制。
根據(jù)這些VHDL文件, 一個(gè)或多個(gè)合成工具,如多種基于布局
的或基于計(jì)時(shí)的合成工具,可以用于從某些或全部這些VHDL文件產(chǎn) 生隨機(jī)邏輯宏(RLM)的若干連線表文件。這些文件又由一個(gè)或多個(gè) 集成者在物理設(shè)計(jì)或規(guī)劃過(guò)程18中使用,以產(chǎn)生電路設(shè)計(jì)的平面布置 圖。例如,使用一個(gè)或多個(gè)連線表文件,或者使用表示電路設(shè)計(jì)物理 定義的其他方式,都可以表示平面布置圖。為了補(bǔ)充或替代自動(dòng)合成, 使用定制的或半定制的設(shè)計(jì)風(fēng)格,可以實(shí)施某些或全部功能定義,它 們使用由源代碼釋放過(guò)程14可以維持的OTS塊,而且在為電路設(shè)計(jì) 產(chǎn)生平面布置圖時(shí),集成者可以在物理設(shè)計(jì)18期間使用這些OTS塊。
根據(jù)以連線表格式表示的物理定義,可以使用開銷邏輯設(shè)計(jì)過(guò)程 20產(chǎn)生分配文件,該分配文件包括與電路設(shè)計(jì)中開銷邏輯相關(guān)聯(lián)的 (如與掃描架構(gòu)有關(guān)的)電路元件與多種信號(hào)之間的分配。分配文件 可以存儲(chǔ)在數(shù)據(jù)庫(kù)22中,并且連同在過(guò)程20中產(chǎn)生所述分配,分配 文件的先前版本可以從數(shù)據(jù)庫(kù)22檢索。過(guò)程20也可以用于為其他全 局信號(hào)產(chǎn)生分配,如通過(guò)分配樹分配的功能信號(hào)。在過(guò)程10中,正是 在開銷邏輯設(shè)計(jì)過(guò)程20中實(shí)施試探群集法,以便在電路設(shè)計(jì)中將掃描 啟用的鎖存器分配到掃描鏈。
由過(guò)程20產(chǎn)生的分配文件然后可以用于向回注釋電路設(shè)計(jì)的功 能定義,如方框24所示。確切地說(shuō),向回注釋過(guò)程24可以用分配文 件中定義的分配來(lái)注釋由邏輯設(shè)計(jì)過(guò)程12產(chǎn)生的VHDL文件。注釋 過(guò)的文件然后提供給源代碼釋放過(guò)程14以便保留。應(yīng)當(dāng)認(rèn)識(shí)到,使用 任何適宜的數(shù)據(jù)結(jié)構(gòu)都可以實(shí)施分配文件。
應(yīng)當(dāng)認(rèn)識(shí)到,使用圖l所示的過(guò)程,作為物理規(guī)劃結(jié)果的分配可 以傳播回邏輯設(shè)計(jì)所產(chǎn)生的源VHDL中。不僅如此,在后來(lái)對(duì)物理規(guī) 劃所做的^f務(wù)改也可以向回注釋到源VHDL中。同樣如圖l所示,對(duì)電 路設(shè)計(jì)的功能定義的修改,如從方框12到方框24的箭頭所示,也可 以用于注釋電路設(shè)計(jì)的功能定義。在前述交叉引用的申請(qǐng)中提供了向 回注釋的更詳細(xì)if論。
應(yīng)當(dāng)認(rèn)識(shí)到,在本發(fā)明的不同實(shí)施例中,可以采用其他設(shè)計(jì)過(guò)程 和方法。另外,應(yīng)當(dāng)認(rèn)識(shí)到,所述過(guò)程內(nèi)的多種操作可以手工地進(jìn)行,
也可以借助于計(jì)算機(jī)實(shí)施的工具以自動(dòng)方式進(jìn)行。也應(yīng)當(dāng)認(rèn)識(shí)到,使
用以不同于本文連同開銷邏輯設(shè)計(jì)過(guò)程20介紹的方式產(chǎn)生的分配文 件,也可以進(jìn)行向回注釋。不僅如此,在某些實(shí)施例中,可以4吏用手 工向回注釋,以補(bǔ)充或替代本文介紹的自動(dòng)過(guò)程。所以,本發(fā)明不限 于本文介紹的特定實(shí)施例。
接下來(lái),圖2展示了在其中可以進(jìn)行過(guò)程10中多個(gè)步驟的裝置 30。所展示實(shí)施例中的裝置30實(shí)施為服務(wù)器或多用戶計(jì)算機(jī),通過(guò)網(wǎng) 絡(luò)32連接到一臺(tái)或多臺(tái)客戶計(jì)算機(jī)34。為了本發(fā)明的目的,每臺(tái)計(jì) 算機(jī)30、 34都可以表示實(shí)際上任何類型的計(jì)算機(jī)、計(jì)算機(jī)系統(tǒng)或其他 可編程的電子設(shè)備。另外,實(shí)施每臺(tái)計(jì)算機(jī)30、 34時(shí),都可以4吏用一 臺(tái)或多臺(tái)聯(lián)網(wǎng)計(jì)算機(jī),如在群集或其他分布式計(jì)算機(jī)系統(tǒng)中。作為替 代,計(jì)算機(jī)30可以實(shí)施在單一的計(jì)算機(jī)或其他可編程電子設(shè)備內(nèi),如 臺(tái)式計(jì)算機(jī)、膝上計(jì)算機(jī)、手持計(jì)算機(jī)、手機(jī)、機(jī)頂盒等。
典型情況下,計(jì)算機(jī)30包括中央處理單元36,其中包括至少一 個(gè)微處理器,連接到存儲(chǔ)器38,它可以表示隨機(jī)存取存儲(chǔ)器(RAM) 設(shè)備,包含計(jì)算機(jī)30的主存以及任何補(bǔ)充級(jí)別的存儲(chǔ)器,如高速緩沖 存儲(chǔ)器、非易失性或后備存儲(chǔ)器(如可編程或閃速存儲(chǔ)器),只讀存 儲(chǔ)器等。此外,存儲(chǔ)器38也可以被視為包括物理上位于計(jì)算機(jī)30中 別處的存儲(chǔ)器,如CPU 36中處理器中的任何高速緩沖存儲(chǔ)器,以及 用作虛存的任何存儲(chǔ)能力,如存儲(chǔ)在海量存儲(chǔ)設(shè)備40上或連接到計(jì)算 機(jī)30的另一臺(tái)計(jì)算機(jī)上。典型情況下,計(jì)算機(jī)30為了與外部交流信 息也接收許多輸入并輸出。作為對(duì)用戶或操作員的接口,典型情況下 計(jì)算機(jī)30包括用戶接口 42,包括一種或多種用戶輸入設(shè)備(如鍵盤、 鼠標(biāo)、軌跡球、游戲桿、觸摸板和/或話筒等)以及顯示器(如CRT 監(jiān)視器、LCD顯示面板和/或揚(yáng)聲器等)。否則,用戶輸入可以通過(guò) 另一臺(tái)計(jì)算機(jī)或終端接收。
對(duì)于附加存儲(chǔ)器,計(jì)算機(jī)30也可以包括一臺(tái)或多臺(tái)海量存儲(chǔ)設(shè) 備40,如軟盤或其他可拆卸磁盤驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器、直接存取存儲(chǔ) 設(shè)備(DASD)、光盤驅(qū)動(dòng)器(如CD驅(qū)動(dòng)器、DVD驅(qū)動(dòng)器等)和/
或磁帶驅(qū)動(dòng)器等等。不僅如此,計(jì)算機(jī)30還可以包括與一個(gè)或多個(gè)網(wǎng) 絡(luò)32(如LAN、 WAN、無(wú)線網(wǎng)絡(luò)和/或因特網(wǎng)等等)的接口 44,以允 許與其他計(jì)算機(jī)和電子設(shè)備交流信息。應(yīng)當(dāng)認(rèn)識(shí)到,典型情況下計(jì)算
機(jī)30包括CPU 36與組件38、 40、 42和44中的每個(gè)之間的模擬和/ 或數(shù)字接口,正如本領(lǐng)域內(nèi)公知。在本發(fā)明的上下文內(nèi),其他硬件環(huán) 境也屬預(yù)期。
計(jì)算機(jī)30在操作系統(tǒng)46的控制下運(yùn)行,并執(zhí)行或以其他方式依
賴于多種計(jì)算機(jī)軟件應(yīng)用程序、組件、程序、對(duì)象、模塊、數(shù)據(jù)結(jié)構(gòu) 等,正如以下更詳細(xì)的介紹。另外,多種應(yīng)用程序、組件、程序、對(duì) 象、模塊等也可以通過(guò)網(wǎng)絡(luò)32在連接到計(jì)算機(jī)30的另 一 臺(tái)計(jì)算機(jī)中 的一個(gè)或多個(gè)處理器上執(zhí)行,如在分布式或客戶機(jī)-服務(wù)器計(jì)算環(huán)境 中,因而實(shí)施計(jì)算機(jī)程序的功能所需的處理可以分配到網(wǎng)絡(luò)上的多臺(tái) 計(jì)算機(jī)。
一般來(lái)說(shuō),實(shí)施本發(fā)明實(shí)施例的若干例程,無(wú)論實(shí)施為操作系統(tǒng) 的一部分,還是實(shí)施為特定的應(yīng)用程序、組件、程序、對(duì)象、模塊或 指令序列,或者甚至其子集,本文都將稱為"計(jì)算機(jī)程序代碼"或簡(jiǎn)稱 為"程序代碼"。典型情況下,程序代碼包含一條或多條指令,它們?cè)?不同時(shí)間駐留在計(jì)算機(jī)中的多種存儲(chǔ)器和存儲(chǔ)設(shè)備中,并且在計(jì)算機(jī) 中的一個(gè)或多個(gè)處理器讀取并執(zhí)行時(shí),使該計(jì)算機(jī)執(zhí)行必要的步驟, 以執(zhí)行實(shí)施本發(fā)明多個(gè)方面的步驟或要素。另外,雖然已經(jīng)并且后文 仍將在全功能計(jì)算機(jī)和計(jì)算機(jī)系統(tǒng)的上下文中介紹本發(fā)明,但是本領(lǐng) 域的技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,本發(fā)明的多種實(shí)施例也能夠發(fā)行為多種形 式的程序產(chǎn)品,并且無(wú)論實(shí)際進(jìn)行發(fā)行所用計(jì)算機(jī)可讀介質(zhì)的具體類 型如何,本發(fā)明都同樣適用。計(jì)算機(jī)可讀介質(zhì)的實(shí)例包括但是不限于 有形的、可記錄型介質(zhì),比如易失性和非易失性存儲(chǔ)器設(shè)備、軟盤和 其他可拆卸磁盤驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器、磁帶、光盤(如CD-ROM、 DVD器等)等等,以及傳輸型媒介,比如數(shù)字和模擬通訊鏈接。
此外,根據(jù)本發(fā)明特定實(shí)施例中的實(shí)施應(yīng)用程序,可以識(shí)別后文 介紹的多種程序代碼。不過(guò)應(yīng)當(dāng)認(rèn)識(shí)到,隨后的任何具體的程序命名
僅僅是為了方便,因此本發(fā)明不應(yīng)當(dāng)限于僅僅在由這樣的命名所識(shí)別 和/或暗示的任何特定應(yīng)用程序中使用。不僅如此,假設(shè)將計(jì)算沖幾程序 可以組織到例程、過(guò)程、方法、模塊、對(duì)象等中的典型情況下無(wú)盡數(shù) 目的方式,以及程序功能可以在駐留在典型計(jì)算機(jī)內(nèi)的多個(gè)軟件層(如
操作系統(tǒng)、庫(kù)、API、應(yīng)用程序、小程序等)之間分配的多種方式, 應(yīng)當(dāng)認(rèn)識(shí)到,本發(fā)明不限于本文所介紹的程序功能的特定組織和分配。
為了實(shí)施圖1的過(guò)程IO中的多種操作,計(jì)算機(jī)30包括許多軟件 工具,包括例如適于進(jìn)行根據(jù)本發(fā)明的試探群集法的邏輯設(shè)計(jì)工具 48、物理設(shè)計(jì)工具50和合成工具52,以及開銷邏輯工具54,還有進(jìn) 行自動(dòng)向回注釋的向回注釋工具56。關(guān)于集成電路設(shè)計(jì)、驗(yàn)證和/或測(cè) 試所采用的其他工具也可以在計(jì)算機(jī)30中采用。另外,雖然工具48-56 顯示在單臺(tái)計(jì)算機(jī)30中,但是受益于當(dāng)前公開材料的本領(lǐng)域普通技術(shù) 人員應(yīng)當(dāng)認(rèn)識(shí)到,典型情況下這些工具將布置在分開的計(jì)算;f幾中,尤 其是在多個(gè)人員參與集成電路設(shè)計(jì)的邏輯設(shè)計(jì)、集成和驗(yàn)證的情況下。 所以,本發(fā)明不限于圖2所展示的單臺(tái)計(jì)算機(jī)實(shí)施。
本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,圖l和圖2所展示的示范環(huán)境并 非試圖限制本發(fā)明。本領(lǐng)域的技術(shù)人員確實(shí)應(yīng)當(dāng)認(rèn)識(shí)到,也可以使用 其他替代硬件和/或軟件環(huán)境而不脫離本發(fā)明的范圍。
現(xiàn)在轉(zhuǎn)向圖3,其中展示了示范試探群集例程60,適于將電路元 件分組到若干群集中,以優(yōu)化空間位置度量。例程60開始在方框62 中,將若干電路元件初始分配到若干組。如以上所指出,期望分配電 路元件以形成尺寸平衡的組。不僅如此,還能夠以許多不同的方式進(jìn) 行分配,如隨機(jī)分配或試圖電路元件順序地分配到尚未充滿的最接近 組,正如以下參考圖5和圖6的更詳細(xì)介紹。
下一步,在方框64中,計(jì)算所期望的空間位置度量,在方框66 中,隨機(jī)選擇兩個(gè)或更多組參與交換。下一步,在方框68中,對(duì)每個(gè) 選定的組,隨機(jī)選擇一個(gè)或多個(gè)電路元件參與交換,典型情況下選擇 電路元件數(shù)目的方式為在交換后的組之間保持平衡的尺寸。
下一步,在方框70中,進(jìn)行交換,從而每個(gè)選定組中選定的電路元件被分配到另一個(gè)選定的組中。然后,方框72重新計(jì)算空間位置 度量,方框74判斷該度量是否改進(jìn)。如果沒(méi)有,控制便行進(jìn)到方框 76,放棄或取消該交換,使該交換期間分配到不同組的電路元件重新 分配到其原始組。然后控制行進(jìn)到方框78,判斷所期望的終點(diǎn)是否已 經(jīng)到達(dá)(如N次迭代之后,或者沒(méi)有成功交換的N次迭代之后)。返 回方框74,如果該度量確實(shí)改進(jìn)了,控制便行進(jìn)到方框78,由此繞過(guò) 方框76并保留成功的交換。
如果方框78判定終點(diǎn)尚未到達(dá),控制便行進(jìn)到方框64,重新計(jì) 算空間位置度量并進(jìn)行另一次交換。不過(guò),如果終點(diǎn)已經(jīng)到達(dá),例程 60完成。
如以上所指出,本文介紹的試探群集算法可以用于為了不同目的 而群集不同類型的電路元件。例如,圖4展示了掃描鏈分配例程80, 它可以用于將掃描啟用的鎖存器分配到設(shè)計(jì)中的不同掃描鏈。
例程80在方框81開始,準(zhǔn)備連線表和若干分配文件。典型情況 下,根據(jù)電路設(shè)計(jì)的最新規(guī)劃數(shù)據(jù),首先將連線表文件加載到存儲(chǔ)器 中。根據(jù)這種連線表數(shù)據(jù),每個(gè)電路元件的位置、尺寸和形狀都可以 加載到芯片圖中。 一旦全部形狀都已經(jīng)加載到存儲(chǔ)器中,需要連接到 掃描鏈的元件便可以標(biāo)注上旗標(biāo),所以設(shè)計(jì)中不需要這樣的連接的電 路元件便可以不再考慮。電路元件的包括還是排除可以基于規(guī)則,并 可以同樣加載在方框81中的分配文件中定義。該分配文件可以包括電 路設(shè)計(jì)中全部電路元件和每個(gè)元件的分級(jí)名稱的列表。該分配文件也 包含要用于每個(gè)電路元件的掃描鏈和時(shí)鐘控制樹的有關(guān)信息(如功能 設(shè)計(jì)的開發(fā)期間由邏輯設(shè)計(jì)者輸入的信息)。該分配文件也可以包含 每個(gè)掃描鏈根據(jù)所期望質(zhì)心的位置。
一旦連線表和分配文件已經(jīng)準(zhǔn)備好,控制便行進(jìn)到方框82,執(zhí)行 類似于以上參考圖3介紹的試探群集算法。確切地說(shuō),方框82將若干 鎖存器初始分配到若千掃描鏈。以下參考圖5和圖6更詳細(xì)地介紹方 框82的兩個(gè)實(shí)施方案。應(yīng)當(dāng)認(rèn)識(shí)到,術(shù)語(yǔ)"鎖存器"也可以指類似的信 息存儲(chǔ)電路,比如寄存器等。不僅如此,某些寄存器或其他電路也可以包括多個(gè)鎖存器,因而鎖存器的分配也可以包括對(duì)包括一個(gè)或多個(gè) 鎖存器的電路元件的分配。
下一步,在方框84中,計(jì)算所期望的空間位置度量,它在這個(gè) 實(shí)施方案中加入了對(duì)每個(gè)鎖存器計(jì)算該鎖存器與其分配的掃描鏈的所 期望質(zhì)心(在這個(gè)實(shí)施方案中定義為沿著一維軸的單點(diǎn))之間的總垂 直距離。下一步,在方框86中,隨機(jī)選擇第一和第二掃描鏈,然后在 方框88中,從每個(gè)掃描鏈隨機(jī)選擇N個(gè)鎖存器,創(chuàng)建第一和第二交 換組。鎖存器的選擇保持在預(yù)置的鎖存器數(shù)目限度內(nèi),計(jì)算每個(gè)交換 組中鎖存器的總數(shù)。假設(shè)某些元件可以具有多個(gè)鎖存器,在某些實(shí)施 例中兩個(gè)交換組中鎖存器的數(shù)目可能不一致,只要總數(shù)近似相等,以 便維持平衡的群集。例如, 一個(gè)交換組可能包括具有14個(gè)鎖存器的寄 存器,而另一個(gè)可能包括三個(gè)寄存器,每個(gè)具有5個(gè)鎖存器。
下一步,在方框90中進(jìn)行交換,因而每個(gè)選定的掃描鏈中選定 的鎖存器被分配到另一個(gè)掃描鏈。方框92然后重新計(jì)算空間位置度 量,這里是從每個(gè)鎖存器到所分配的掃描鏈的所期望質(zhì)心的總垂直距 離,即與該交換中所涉及的每條掃描鏈中每個(gè)鎖存器的距離之和相關(guān) 聯(lián)的數(shù)值。方框94根據(jù)總距離是否已經(jīng)縮短而判斷該度量是否改進(jìn)。 如果沒(méi)有,控制便行進(jìn)到方框96,放棄或取消該交換,使該交換期間 分配到不同掃描鏈的鎖存器重新分配到其原始掃描鏈。然后控制行進(jìn) 到方框98,判斷所期望的終點(diǎn)是否已經(jīng)到達(dá)(如,N次迭代之后,或 者沒(méi)有成功交換的N次迭代之后)。返回方框94,如果總距離確實(shí)縮 短了,控制便行進(jìn)到方框98,由此繞過(guò)方框96并保留成功的交換。
如果方框98判定終點(diǎn)尚未到達(dá),控制便行進(jìn)到方框84,重新計(jì) 算總距離并進(jìn)行另一次交換。不過(guò),如果終點(diǎn)已經(jīng)到達(dá),控制便從方 框98行進(jìn)到方框99,更新分配文件并存儲(chǔ)更新后的文件。例程80完 成。
圖5展示了圖4的方框82中將鎖存器初始分配到掃描鏈的一個(gè) 實(shí)施方案,它加入了步驟100,其中將鎖存器隨機(jī)地初始分配到掃描 鏈,使得掃描鏈尺寸保持尺寸平衡(即具有近似相同數(shù)目的成員)。
圖6展示了圖4的方框82 (指示為例程82,)中將鎖存器初始分配到 掃描鏈的另一個(gè)實(shí)施方案,它在方框102中開始,由試探群集算法從 等待分配到掃描鏈的鎖存器中獲得下一個(gè)未分配的鎖存器。
方框104然后將該鎖存器增加到當(dāng)前未充滿的最接近掃描鏈。確 定最接近掃描鏈時(shí)可以通過(guò)計(jì)算從該鎖存器到每條掃描鏈的垂直距 離。另外,由于期望掃描鏈尺寸平衡,所以先對(duì)該掃描鏈?zhǔn)欠褚呀?jīng)充 滿進(jìn)行檢查,再將鎖存器分配到其最接近的掃描鏈,并且選擇另一個(gè) 遠(yuǎn)一些的掃描鏈作為替代。確定掃描鏈的容量時(shí)可以例如通過(guò)將鎖存 器的數(shù)目除以掃描鏈的數(shù)目。
下一步,控制行進(jìn)到方框106,判斷是否有另外的鎖存器等待分 配,假若如此,控制返回方框102,分配另一個(gè)鎖存器。 一旦全部鎖 存器都分配了,例程82,完成。
接下來(lái),圖7展示了另一個(gè)試探群集例程110,它可以替代例程 80的方框82-92執(zhí)行,在電路設(shè)計(jì)中將掃描啟用的鎖存器分配到掃描 鏈。在這個(gè)實(shí)施方案中,不是從兩條掃描鏈中鎖存器創(chuàng)建兩個(gè)交換組, 而是進(jìn)行流水線交換,因而從三條掃描鏈創(chuàng)建四個(gè)交換組,所以三條 掃描鏈參與具體交換。
例程110在方框112中開始,它通過(guò)隨機(jī)分配將若干鎖存器初始 分配到若干掃描鏈。作為替代,也可以使用以上關(guān)于例程82,介紹的 初始分配。下一步,在方框114中,計(jì)算所期望的空間位置度量,它 在這個(gè)實(shí)施方案中加入了對(duì)每個(gè)鎖存器計(jì)算該鎖存器與其分配的掃描 鏈的所期望質(zhì)心(在這個(gè)實(shí)施方案中定義為沿著一維軸的單點(diǎn))之間 的總垂直距離。下一步,在方框116中,隨機(jī)選擇第一掃描鏈,然后 在方框118中,從所述第一掃描鏈隨機(jī)選擇N個(gè)鎖存器,創(chuàng)建第一交 換組,稱為交換組l。鎖存器的選擇保持在預(yù)置的鎖存器數(shù)目限度內(nèi), 在方框118中也計(jì)算該交換組中鎖存器的總數(shù)。
下一步,在方框120中,隨機(jī)選擇第二掃描鏈,然后在方框122 和124中,從所述第二掃描鏈隨機(jī)選擇N個(gè)鎖存器的兩個(gè)組,創(chuàng)建一 對(duì)第二交換組,稱為交換組2和交換組2A。下一步,在方框126中,
隨機(jī)選擇第三掃描鏈,在方框128中,從所述第三掃描鏈隨機(jī)選擇N 個(gè)鎖存器,創(chuàng)建第三交換組,稱為交換組3。在方框122、 124和128 的每一個(gè)中,鎖存器的選擇保持在預(yù)置的鎖存器數(shù)目限度內(nèi),也計(jì)算 該交換組中鎖存器的總數(shù)。應(yīng)當(dāng)認(rèn)識(shí)到,若干交換組包括具有多個(gè)鎖 存器的電路元件,分配到每個(gè)交換組的鎖存器總數(shù)可能彼此略有變化。
下一步,在方框130-136中進(jìn)行交換,因而交換組l中選定的鎖 存器被分配到第二掃描鏈(方框130),交換組2中選定的鎖存器被 分配到第一掃描鏈(方框132 ),交換組2A中選定的鎖存器被分配到 第三掃描鏈(方框134),交換組3中選定的鎖存器被分配到第二掃 描鏈(方框136 )。
然后,方框138重新計(jì)算空間位置度量,這里是從每個(gè)鎖存器到 所分配的掃描鏈的所期望質(zhì)心的總垂直距離,即與該交換中所涉及的 每條掃描鏈中每個(gè)鎖存器的距離之和相關(guān)聯(lián)的數(shù)值。方框140根據(jù)總 距離是否已經(jīng)縮短而判斷該度量是否改進(jìn)。如果沒(méi)有,控制便行進(jìn)到 方框142,放棄或取消該交換,使該交換期間分配到不同掃描鏈的鎖 存器重新分配到其原始掃描鏈。然后控制行進(jìn)到方框144,判斷所期 望的終點(diǎn)是否已經(jīng)到達(dá)(如N次迭代之后,或者沒(méi)有成功交換的N次 迭代之后)。返回方框140,如果總距離確實(shí)縮短了,控制便行進(jìn)到 方框144,由此繞過(guò)方框142并保留成功的交換。
如果方框144判定終點(diǎn)尚未到達(dá),控制便行進(jìn)到方框114,重新 計(jì)算總距離并進(jìn)行另一次交換。不過(guò),如果終點(diǎn)已經(jīng)到達(dá),例程110 完成。
應(yīng)當(dāng)認(rèn)識(shí)到,根據(jù)本發(fā)明,也可以使用將鎖存器分配到不同掃描 鏈的其他方式,而不是以上參考圖4和圖7介紹的從兩條或三條掃描 鏈之間分配。
現(xiàn)在轉(zhuǎn)向圖8-圖12,為了進(jìn)一步介紹本文所介紹的尤其是以上 參考圖4的例程80所介紹的試探群集算法的操作的目的,展示了示范 電路設(shè)計(jì)150,其中加入了多個(gè)電路元件,它們包括單一掃描啟用的 若千鎖存器。確切地說(shuō),圖8展示了分布在電路設(shè)計(jì)150各處的電路
元件152、 154、 156和158。
接下來(lái),圖9展示了將若干電路元件示范初始隨機(jī)分配到四條不 同的掃描鏈,這些掃描鏈分別具有為其定義的所期望質(zhì)心160、 162、 164和166。正如匹配的陰影所示,電路元件152初始分配到具有所期 望質(zhì)心160的掃描鏈,電路元件154初始分配到具有所期望質(zhì)心162 的掃描鏈,電路元件156初始分配到具有所期望質(zhì)心164的掃描鏈, 電路元件158初始分配到具有所期望質(zhì)心166的掃描鏈。
接下來(lái),圖IO展示了對(duì)于分配到具有所期望質(zhì)心160的掃描鏈 的鎖存器,圖4的方框84中總距離空間位置度量的計(jì)算??偩嚯x為分 配到該(圖10中無(wú)陰影的)掃描鏈的每個(gè)鎖存器到以水平箭頭表示的 所期望質(zhì)心160之間垂直3巨離之和。
接下來(lái),圖11展示了初始隨機(jī)分配之后,典型情況下是圖4的 方框86-98的許多次迭代之后的試探群集的結(jié)果。正如圖中可見(jiàn),鄰 近具體掃描鏈質(zhì)心的鎖存器典型情況下群集到同一條掃描鏈組中。在 這種情況下,鎖存器152、 154、 156和158中的每一個(gè),在最接近具 有所期望質(zhì)心160的掃描鏈時(shí),都被分配到該掃描鏈。如圖12所示, 與圖10中展示的隨機(jī)分配后相比,分配到該掃描鏈的(圖12中無(wú)陰 影的)全部鎖存器的總距離大幅縮短。
對(duì)所展示的實(shí)施例可以進(jìn)行多種修改而不脫離本發(fā)明的實(shí)質(zhì)和 范圍。例如,不是計(jì)算群集中全部元件的總距離,而可以僅僅對(duì)特定 交換中涉及的鎖存器的距離進(jìn)行計(jì)算。受益于當(dāng)前公開材料的本領(lǐng)域 普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到其他的空間位置度量。
對(duì)本文介紹的實(shí)施例的多種其他修改對(duì)受益于當(dāng)前公開材料的 本領(lǐng)域普通技術(shù)人員將是顯而易見(jiàn)的。所以,本發(fā)明在于后文附帶的 權(quán)利要求書中。
權(quán)利要求
1.一種在電路設(shè)計(jì)中群集電路元件的方法,所述方法包括將電路設(shè)計(jì)中的多個(gè)電路元件分組到多個(gè)尺寸平衡的群集中;以及迭代地為所述多個(gè)電路元件試探地優(yōu)化空間位置度量在所述多個(gè)群集之間進(jìn)行群集之間電路元件的交換;在進(jìn)行所述交換后重新計(jì)算所述空間位置度量;以及根據(jù)所述重新計(jì)算的空間位置度量選擇地放棄所述交換。
2. 根據(jù)權(quán)利要求1的方法,其中,所述多個(gè)電路元件的每一個(gè) 包括鎖存器。
3. 根據(jù)權(quán)利要求2的方法,其中,每個(gè)群集與掃描鏈相關(guān)聯(lián)。
4. 根據(jù)權(quán)利要求2的方法,其中,每個(gè)群集與時(shí)鐘控制樹相關(guān)聯(lián)。
5. 根據(jù)權(quán)利要求1的方法,其中,進(jìn)行所述交換包括隨機(jī)地選 擇所述交換中涉及的電路元件,同時(shí)保持所述交換中涉及的每個(gè)群集 的尺寸平衡。
6. 根據(jù)權(quán)利要求1的方法,其中,將所述多個(gè)電路元件分組包 括將所述多個(gè)電路元件隨機(jī)地分組到所述多個(gè)尺寸平衡的群集中。
7. 根據(jù)權(quán)利要求1的方法,其中,將所述多個(gè)電路元件分組包 括根據(jù)所迷電路設(shè)計(jì)的規(guī)劃中每個(gè)電路元件的位置,將所述多個(gè)電路 元件分組到所述多個(gè)尺寸平衡的群集中。
8. 根據(jù)權(quán)利要求1的方法,其中,每個(gè)群集與所期望質(zhì)心相關(guān) 聯(lián),并且所述空間位置度量至少部分地基于從電路元件到群集的所期 望質(zhì)心的距離。
9. 根據(jù)權(quán)利要求8的方法,其中,每個(gè)群集的所期望質(zhì)心定義 沿著所述電路設(shè)計(jì)的規(guī)劃中所定義軸的位置,并且所述空間位置度量 至少部分地基于沿著所述軸從電路元件到群集的所期望質(zhì)心的距離。
10. 根據(jù)權(quán)利要求8的方法,其中,所述空間位置度量基于群集 中每個(gè)電路元件到這樣的群集的所期望質(zhì)心的距離之和。
11. 根據(jù)權(quán)利要求l的方法,其中,在所述多個(gè)群集之間進(jìn)行群 集之間電路元件的交換包括選擇第一和第二群集,從所述第一和第二 群集的每一個(gè)選擇電路元件組,將來(lái)自所述第一群集的所述電路元件 組分配到所述第二群集,以及將來(lái)自所述第二群集的所述電路元件組 分配到所述第一群集。
12. 根據(jù)權(quán)利要求l的方法,其中,在所述多個(gè)群集之間進(jìn)行群 集之間電路元件的交換包括選擇第一、第二和第三群集,從所述第一 和第三群集的每一個(gè)選擇電路元件組,從所述第二群集選擇一對(duì)組, 將來(lái)自所述第 一群集的所述電路元件組分配到所述第二群集,將來(lái)自 所述第三群集的所述電路元件組分配到所述第二群集,將來(lái)自所述第 二群集的一對(duì)所述電路元件組中的一個(gè)分配到所述第一群集,將來(lái)自 所述第二群集的一對(duì)所述電路元件組中的另一個(gè)分配到所述第三群集。
13. 根據(jù)權(quán)利要求l的方法,進(jìn)一步包括在預(yù)定的迭代次數(shù)后終 止所述試探優(yōu)化的迭代。
14. 根據(jù)權(quán)利要求1的方法,進(jìn)一步包括在沒(méi)有成功交換的預(yù)定 的迭代次數(shù)后終止所述試探優(yōu)化的迭代。
15. —種裝置,包括 處理器;以及程序代碼,被配置為在所述處理器上執(zhí)行以通過(guò)下列操作在電路 設(shè)計(jì)中群集電路元件將電路設(shè)計(jì)中的多個(gè)電路元件分組到多個(gè)尺寸 平衡的群集中,并且為所述多個(gè)電路元件試探地優(yōu)化空間位置度量, 其中,所述程序代碼被配置為通過(guò)下列操作試探地優(yōu)化所述空間位置 度量在所述多個(gè)群集之間迭代地進(jìn)行群集之間電路元件的交換,在 進(jìn)行所述交換后重新計(jì)算所述空間位置度量,以及根據(jù)所述重新計(jì)算 的空間位置度量選擇地放棄所述交換。
16. 根據(jù)權(quán)利要求15的裝置,其中,所述多個(gè)電路元件的每一 個(gè)包括鎖存器,并且每個(gè)群集與掃描鏈或時(shí)鐘控制樹相關(guān)聯(lián)。
17. 根據(jù)權(quán)利要求15的裝置,其中,所述程序代碼被配置為通 過(guò)隨機(jī)地選擇所述交換中涉及的電路元件,同時(shí)保持所述交換中涉及 的每個(gè)群集的尺寸平衡來(lái)進(jìn)行所述交換。
18. 根據(jù)權(quán)利要求15的裝置,其中,所述程序代碼被配置通過(guò) 將所述多個(gè)電路元件隨機(jī)地分組到所述多個(gè)尺寸平衡的群集中來(lái)將所 述多個(gè)電路元件分組。
19. 根據(jù)權(quán)利要求15的裝置,其中,所述程序代碼被配置為通 過(guò)根據(jù)所述電路設(shè)計(jì)的規(guī)劃中每個(gè)電路元件的位置,將所述多個(gè)電路 元件分組到所述多個(gè)尺寸平衡的群集中來(lái)將所述多個(gè)電路元件分組。
20. 根據(jù)權(quán)利要求15的裝置,其中,每個(gè)群集與所期望質(zhì)心相 關(guān)聯(lián),并且所迷空間位置度量至少部分地基于從電路元件到群集的所 期望質(zhì)心的距離。
21. 根據(jù)權(quán)利要求20的裝置,其中,每個(gè)群集的所期望質(zhì)心定 義了沿著所述電路設(shè)計(jì)的規(guī)劃中所定義軸的位置,并且所述空間位置 度量至少部分地基于沿著所述軸從電路元件到群集的所期望質(zhì)心的距 離。
22. 根據(jù)權(quán)利要求15的裝置,其中,所述程序代碼被配置為通 過(guò)下列操作在所述多個(gè)群集之間進(jìn)行群集之間電路元件的交換選擇 第一和第二群集,從所述第一和第二群集的每一個(gè)選擇電路元件組,將來(lái)自所述笫一群集的所述電路元件組分配到所述第二群集,將來(lái)自 所述第二群集的所述電路元件組分配到所述第一群集。
23. 根據(jù)權(quán)利要求15的裝置,其中,所述程序代碼被配置為通 過(guò)下列操作在所述多個(gè)群集之間進(jìn)行群集之間電路元件的交換選擇 第一、第二和第三群集,從所述第一和第三群集的每一個(gè)選擇電路元 件組,從所述第二群集選擇一對(duì)組,將來(lái)自所述第一群集的所述電路 元件組分配到所述第二群集,將來(lái)自所述第三群集的所述電路元件組 分配到所述第二群集,將來(lái)自所述第二群集的一對(duì)所述電路元件組中 的一個(gè)分配到所述第 一群集,將來(lái)自所述第二群集的一對(duì)所述電路元 件組中的另 一個(gè)分配到所述第三群集。
24. 根據(jù)權(quán)利要求15的裝置,進(jìn)一步包括在沒(méi)有成功交換的預(yù) 定的迭代次數(shù)后終止所述試探優(yōu)化的迭代。
25. —種程序產(chǎn)品,包括程序代碼,被配置為通過(guò)下列操作在電路設(shè)計(jì)中群集電路元件 將電路設(shè)計(jì)中的多個(gè)電路元件分組到多個(gè)尺寸平衡的群集中,并且為 所述多個(gè)電路元件試探地優(yōu)化空間位置度量,其中,所述程序代碼被 配置為通過(guò)下列操作試探地優(yōu)化所述空間位置度量在所述多個(gè)群集 之間迭代地進(jìn)行群集之間電路元件的交換,在進(jìn)行所述交換后重新計(jì) 算所述空間位置度量,以及根據(jù)所述重新計(jì)算的空間位置度量選擇地 放棄所述交換;以及計(jì)算機(jī)可讀介質(zhì),承載著所述程序代碼。
全文摘要
一種裝置、程序產(chǎn)品和方法,以產(chǎn)生電路元件到若干群集或組的分配,以便優(yōu)化所期望的空間位置度量。例如,使用試探群集法可以將電路元件比如掃描啟用的鎖存器分配到各條掃描鏈,為電路設(shè)計(jì)優(yōu)化掃描架構(gòu)中掃描鏈的規(guī)劃。
文檔編號(hào)G06F17/50GK101361072SQ200780001745
公開日2009年2月4日 申請(qǐng)日期2007年1月16日 優(yōu)先權(quán)日2006年2月7日
發(fā)明者C·麥克布里德, G·H·翰德洛格坦, M·弗雷德里克森 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1