TW201314483A - 實施積體電路之電路設計之方法及電腦可讀取媒體 - Google Patents
實施積體電路之電路設計之方法及電腦可讀取媒體 Download PDFInfo
- Publication number
- TW201314483A TW201314483A TW101124989A TW101124989A TW201314483A TW 201314483 A TW201314483 A TW 201314483A TW 101124989 A TW101124989 A TW 101124989A TW 101124989 A TW101124989 A TW 101124989A TW 201314483 A TW201314483 A TW 201314483A
- Authority
- TW
- Taiwan
- Prior art keywords
- wiring
- length
- group
- wires
- wire
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本發明提供一種用於一實施積體電路之一電路設計之方法,在一實施例中,該方法包含:(a)獲得一第一佈線以滿足一給定操作頻率;(b)基於該給定操作頻率及該第一佈線之一臨界路徑計算一最大旁通佈線長度;(c)藉由使用除一第一佈線群組中之該第一佈線之導線外之導線旁通該第一佈線而獲得一第二佈線,其中將該積體電路之佈線分類為複數個佈線群組,且該等所分類佈線群組之該第一佈線群組中包含該第一佈線;及(d)若該第二佈線與該第一佈線之間之一差值不大於該最大旁通佈線長度,則用該第二佈線取代該第一佈線,且若該差值大於該最大旁通佈線長度,則不取代該第一佈線。
Description
本文描述之實施例係關於一種用於實施一積體電路之一電路設計之方法及電腦可讀取媒體。
本申請案主張2011年8月24日申請之日本專利申請案第2011-182833號之優先權,該案之全部內容係以引用方式併入本文。
一可程式化閘陣列(FPGA)係其中一使用者可寫入使用者自身之一邏輯電路以達成該使用者所要的操作之一種積體電路。該FPGA中之一內部電路即使在其被裝運成一產品後亦可重寫。為實施用於連結放置在一相關技術FPGA佈局中之邏輯塊之佈線,對該佈線使用預先選擇之複數個導線以使該佈線長度在該等邏輯塊中係最短的,即,使操作頻率最高。當滿足使用者要求之性能(操作頻率)時,因此使用所配置之佈線。否則,再次自選擇導線之步驟嘗試佈線。
因此在所配置且佈線之FPGA中,可能存在並未用作一電路之極多個導線或邏輯塊,其等不同於一特定應用積體電路(ASIC)。一電流流進此一導線或一邏輯塊,但是該導線或該邏輯塊並未被使用。因此,存在FPGA之總功耗(尤其係靜態功耗)增加之一問題。
[非專利文獻1] 2005年4月2日由KARA K.W. POON、STEVEN J.E及Andy YAN發表的《ACM Trans. On Design
Automation of Electronic Systems》第10卷之「A Detailed Power Model for Field-Programmable Gate Arrays」。
[專利文獻1]美國專利第7281233號
根據一實施例,提供一種用於實施一積體電路之一電路設計之方法。該方法包含:(a)獲得一第一佈線以滿足一給定操作頻率;(b)基於該給定操作頻率及該第一佈線之一臨界路徑計算一最大旁通佈線長度;(c)藉由使用除包含該第一佈線之一第一佈線群組中之該第一佈線之導線外之導線旁通該第一佈線而獲得一第二佈線,其中將該積體電路之佈線分類為複數個佈線群組,且該等所分類佈線群組之該第一佈線群組中包含該第一佈線;及(d)若該第二佈線與該第一佈線之間之一差值不大於該最大旁通佈線長度,則用該第二佈線取代該第一佈線,且若該差值大於該最大旁通佈線長度,則不用該第二佈線取代該第一佈線。
現在將參考圖式描述實施本發明之各種特徵之一般架構。提供該等圖式及相關聯之描述以圖解說明本發明之實施例且並不限於本發明之範疇。
下文將參考該等圖式描述本發明之一實施例。圖1係展示根據該實施例之一FPGA之概念之一圖。在根據該實施例之FPGA中,將屬於該FPGA之導線分為一些群組(下文稱為佈線群組)。藉由自一記憶體輸出之一信號控制屬於一佈線群組之複數個(視為n)導線之通電/斷電。在圖1中,
圖解說明屬於每一佈線群組之導線數目相同。然而,實際上,不同佈線群組之導線數目各異。圖1展示其中該FPGA之佈線群組經連接以控制連接記憶體D1至D18之導線之一狀態。諸如靜態隨機存取記憶體(SRAM)之揮發性記憶體或諸如動態隨機存取記憶體(DRAM)之非揮發性記憶體可被用作該等記憶體D1至D18。當使用非揮發性記憶體時,即使作為一整體之FPGA斷電,亦可保持資訊。因此,無須再次寫入該資訊使得可將功耗抑制至低於揮發性記憶體之功耗。
運用此組態,若屬於一佈線群組之複數個導線並未用於FPGA之操作,則該佈線群組可斷電。在FPGA中,一佈線部分之功耗如此高使得在未使用之佈線群組斷電之情況下可節省靜態功耗。此外,藉由根據該實施例之FPGA中之一記憶體管理複數個導線之電源供應。因此,與其中對每一導線提供一記憶體之情況相比,記憶體數目有所減小使得可抑制其中放置該等記憶體之區域之增加。
圖2係展示用於控制導線之電源供應之一電路之一實例(連接至該記憶體D1之一電路之一實例)之一圖。例如,在FPGA上之一切換部分中使用如圖2中所示之一雙輸入多工器。例如歸因於該多工器,可將受控於該記憶體D10之一導線連接至受控於該記憶體D1之一導線。因此,可改變至另一導線之一路徑。該雙輸入多工器自輸入至根據來自用於控制FPGA之一記憶體23之一輸出選擇之一N型MOSFET 21或P型MOSFET 22之一導線輸出一信號。在圖2之實例
中,假設來自受控於該記憶體D10之導線之信號輸入至該N型MOSFET 21,同時來自受控於該記憶體D1之導線之信號輸入至該P型MOSFET 22。此外,該雙輸入多工器具備反相器24至26以供信號放大。分別對該等反相器24至26提供各自藉由來自該記憶體D1或該記憶體D10之一輸出信號而接通/斷開之電晶體27至29。雖然圖2將一電路描繪為提供給屬於一導線群組之一導線之一多工器,但是亦給提供給連接至一記憶體D1及相同記憶體D1之全部導線之反相器提供類似電晶體電路。
圖3係詳細展示圖2中之反相器24與電晶體27之間之一連接部分(藉由圖2中之一虛線包圍)之一圖。該反相器24與該電晶體27之間之連接部分係形成(例如)如圖3A至圖3C之任一者中所示。圖3A及圖3B展示其中一電晶體27連接至構成該反相器24之一N型MOSFET或一P型MOSFET之一端之電路。圖3C展示其中一電晶體27連接至構成該反相器24之一N型MOSFET之一端同時另一電晶體27連接至構成該反相器24之一P型MOSFET之一端之一電路。
當根據來自該記憶體D1之一輸出信號將連接至該反相器24之電晶體27設定為OFF時,可阻擋電流在該反相器中流動。尤其係在圖3C中所示之電路中,所需電晶體27之數目確實比圖3A或圖3B中所需電晶體27之數目大1,但是可更穩定地設定連接該反相器24之導線之電源供應之ON/OFF。亦可藉由參考圖3A至圖3C描述之電路形成圖2中該反相器25與該電晶體28之間之一連接部分或該反相器
26與該電晶體29之間之一連接部分。
接著,將描述參考圖1、圖2及圖3A至圖3C描述之FPGA之配置及佈線。例如,藉由一個人電腦(PC)執行根據該實施例之FPGA之配置及佈線。圖4係用於對FPGA執行配置及佈線之一PC 1之一方塊圖。在PC 1中,透過一內部介面連接一處理器10、一主記憶體20、一硬碟30及一輸入/輸出(I/O)裝置40。此外,一非揮發性記憶體50連接至該主記憶體20。該處理器10具有用於執行算法處理之一處理器元件11及一快取區12。該處理器10作為一整體控制該PC 1。該I/O裝置40連接至各種外部裝置,且例如用於輸出關於配置及佈線之資訊以將關於該配置及佈線之資訊寫入FPGA中。用於FPGA上之配置及佈線之一程式係(例如)儲存於該硬碟30中且如下執行。即,該主記憶體20讀取該程式,且該處理器元件11根據該主記憶體20中讀取之程式執行操作。可透過該I/O裝置40自儲存程式之一儲存媒體(諸如一可記錄CD/DVD或一USB記憶體)或透過一未展示之天線自儲存程式之一伺服器獲取用於FPGA上之配置及佈線之待儲存於該硬碟30中之程式。
藉由該處理器元件11執行圖5至圖7中之程序而達成根據該實施例之FPGA上之配置及佈線。該處理器元件11實行圖5中所示之程序以執行配置及暫時佈線以滿足一使用者要求之性能。該處理器元件11實行圖6及圖7中所示之程序以改變暫時佈線同時滿足使用者要求之性能。因此,該處理器元件11達成佈線,藉由該佈線可使更多導線斷電。
將描述圖5中所示之程序。因為已在非專利文獻1中描述用於圖5中所示之暫時佈線之一處理流程之每一步驟中之處理,所以將省略其詳細描述。該處理器元件11配置邏輯塊以達成一使用者所要之一電路(S10)。接著,該處理器元件11選擇複數個導線(S11),且執行佈線以使用該等所選擇之導線連接步驟S10中配置之邏輯塊(S12)。
在使用該等所選擇導線完成該佈線後(S13中為是),該處理器11計算所產生之配置及佈線之一臨界路徑(S14)。基於所計算之臨界路徑,該處理器元件11獲得所產生之配置及佈線之一最大操作頻率,且判定所產生之配置及佈線是否滿足使用者要求之一給定操作頻率(下文稱為一要求頻率)(S15)。當在步驟S15中推斷所產生之配置及佈線並不滿足該要求頻率時(S15中為否),該處理器元件11返回至步驟S11且重新佈線。相反地,當可產生滿足該要求頻率之配置及佈線時(S15中為是),該處理器元件11結束圖5中所示之暫時佈線程序。下文中,所產生之配置及佈線中使用之導線將被稱為用於佈局之導線。
接著,將描述圖6及圖7中所示之程序。雖然可在暫時佈線程序中獲得滿足該要求頻率之配置及佈線,但是並未考慮減小導線之功耗。因此,在圖5中所示之暫時佈線程序結束後,該處理器元件11開始圖6及圖7中所示之一再佈線程序。
該處理器元件11首先計算可最大可能程度地旁通當前佈線之臨界路徑之一佈線長度,前提係滿足該要求頻率
(S20)。例如,藉由表達式(1)計算旁通佈線長度BNUM。
BNUM=(1/fR-DPATH)/DCLB………(1)此處,DPATH係指歸因於臨界路徑CPATH而產生之一延遲時間,且DCLB係指歸因於對應於一邏輯塊之一側之長度之佈線而產生之一延遲時間。即,旁通佈線路徑BNUM展示可自當前佈線之臨界路徑CPATH旁通佈線來旁通多少佈線之邏輯塊側,前提係滿足使用者要求之性能。
旁通佈線長度BNUM計算方法並不限於表達式(1),但是可存在使用使用者要求之性能及臨界路徑之另一計算方法。例如,可考慮如表達式(2)中所示之計算方法。
BNUM=(LMAX-LC)/LCLB………(2)其中LMAX係指滿足要求頻率fR之一最大佈線長度,LC係指該臨界路徑CPATH之長度,且LCLB係指一邏輯塊之一側之長度。
該處理器元件11判定因此所計算之旁通佈線長度BNUM是否至少為2(S21)。為旁通對應於一邏輯塊之一側並如圖8A中所示般安置在該邏輯塊垂直方向上之一導線T1,必須製備對應於該邏輯塊之兩側之至少水平導線T2及T3以及對應於該邏輯塊之一側之一垂直導線T4。類似地,為旁通對應於一邏輯塊之一側並如圖8B中所示般安置在該邏輯塊水平方向上之一導線T5,必須製備對應於該邏輯塊之兩側之至少垂直導線T6及T7以及對應於該邏輯塊之一側之一水平導線T8。即,意謂著為旁通該臨界路徑CPATH中之一導線,至少一邏輯塊兩側之佈線長度增加。
當該旁通佈線長度BNUM與2相比時,因此可判定是否可旁通一導線同時是否滿足使用者要求之性能。當該旁通佈線長度BNUM小於2時(S21中為否),結束該佈線程序。若因此可預先判定是否可旁通一導線同時是否滿足使用者要求之性能,則可避免浪費嘗試旁通一導線之程序,但是不能滿足使用者要求之性能。
當在步驟S21中推斷該旁通佈線長度BNUM不小於2時,該處理器元件11藉由用於該佈線群組中之佈局之導線數目分類每一佈線群組(S22)。即,將每一佈線群組分類為一佈線群組,其中k個導線屬於該佈線群組,i個導線(0in)用於佈局(下文中稱為工作導線)。接著該處理器元件11重設一旗標以判定是否已執行再佈線(如隨後將在S28中描述)(S23)。
該處理器元件11選擇其中工作導線之數目為1之一種類G1(S24)。當該種類G1中存在任何佈線群組時(S25中為是),該處理器元件11移動至圖7中所示之流程圖。當不存在佈線群組時(S25中為否),該處理器元件11選擇其中工作導線數目比當前選擇種類數目大1之一數目之一種類,且重複步驟S25之處理直到變數I達到n。
當在步驟S25中推斷一種類GI中存在任何佈線群組時,該處理器元件11自該種類GI選擇一任意佈線群組WTARGET(S40)。接著,該處理器元件11計算使用工作導線數目在1至n之範圍內之佈線群組之導線之一旁通,以旁通屬於該佈線群組WTARGET且用於佈局之I個導線之各者
(S41)。當在步驟S41中計算複數個旁通時,選擇最短旁通。
當可藉由除該佈線群組WTARGET外之其他佈線群組旁通屬於該佈線群組WTARGET之全部工作導線時(步驟S42中為是),該處理器元件11計算相對於初始佈線之旁通後之一增加之佈線長度BADD(S43)。將指示該增加之佈線長度之BADD計算為指示對應於邏輯塊數目之一長度之一值,使得該增加之佈線長度BADD可與該旁通佈線長度BNUM相比。本發明並不限於此,但是本發明將進展順利,前提係佈線長度BADD與BNUM之單位彼此協調使得BADD與BNUM可彼此比較。
當該增加之佈線長度BADD比最大旁通佈線長度BNUM短時(S44中為是),確保旁通後之佈線滿足要求頻率。因此,該處理器元件11接受旁通後之佈線(S45)。當接受旁通後之佈線時,將佈線群組之種類WTARGET改變為工作導線數目為0之種類,且如表達式(3)中所示般更新最大旁通佈線長度BNUM之值。進一步言之,根據其中已接受旁通佈線之工作導線數目改變包含用於旁通佈線群組WTARGET之導線之導線之佈線群組之種類。
G0=G0U{WTARGET}
GI=GI-{WTARGET}
BNUM=BNUM-BADD………(3)當在步驟S45中完成用於接受旁通之處理時,該處理器元件11設定指示已完成再佈線之旗標(S46)。當該最大旁通佈
線長度BNUM小於2時(S47中為否),不可能旁通任何導線。因此,該處理器元件11在圖6之步驟S29中之再佈線後計算一臨界路徑,且重複對步驟S20之處理及步驟S20後之處理。相反地,當該最大旁通佈線長度BNUM至少為2時(步驟S47中為是),該處理器元件11返回至步驟S25且對屬於該種類GI之佈線群組執行再佈線處理。
在步驟S44中當增加佈線長度BADD比該最大旁通佈線長度BNUM長時(步驟S44中為否)或當不能旁通佈線群組WTARGET之工作導線之至少一工作導線時(S42中為否),拒絕旁通後之佈線(S48)。當拒絕旁通後之佈線時,提供用於判定已處理佈線群組WTARGET之資訊。例如,提供指示經處理之佈線群組之一種類GFINISH,且將佈線群組WTARGET移動至如判定為表達式(4)中表達般處理之種類GFINISH。
GFINISH=GFINISHU{WTARGET}
GI=GI-{WTARGET}………(4)當完成步驟S48之處理時,該處理器元件11返回至步驟S25並對屬於該種類GI之佈線群組執行再佈線處理。當在其中該最大旁通佈線長度BNUM至少為2之狀態中完成遍及屬於全部該等種類G1至Gn-1之佈線群組之再佈線處理時(S27中為是),在步驟S28中判定是否接受旁通佈線。當拒絕旁通佈線時(S28中為否),結束佈線程序。可基於指示已完成再佈線之旗標判定是否接受旁通佈線。
根據前述提及之程序,可基於佈線滿足一要求頻率而獲
得其中不具有用於佈局之導線之佈線群組數目增加且其中滿足該要求頻率之佈線。
在該實施例中,基於屬於佈線群組之工作導線數目按種類升序循序對佈線群組執行該再佈線程序。然而,應執行該再佈線程序之順序並不限於此。例如,假設將該等佈線群組分為三個種類,即無工作導線之一種類、n個工作導線之一種類及1至(n-1)個工作導線之一種類。可按任何順序自屬於1至(n-1)個工作導線之種類之佈線群組之任何一者執行該再佈線程序。
在已參考圖6及圖7描述之再佈線程序中,結束該程序存在兩個條件。即,此等兩個條件係:其中該最大旁通佈線長度BNUM小於2之情況;及其中在計算該最大旁通佈線長度BNUM後任何佈線群組拒絕旁通佈線之情況。然而,即使該最大旁通佈線長度BNUM不小於2,亦不一定能進一步再配置已接受之一些配置佈線。因此,可對該等前述提及之結束條件增加如下列修改1至修改3中所示之結束條件。在下列修改之流程圖中,與參考圖6及圖7描述之處理相同之處理對應地被給定相同的數字,且將省略其詳細描述。
例如,假設當該最大旁通佈線長度BNUM為2時,在未執行再配置計算之任何佈線群組中工作導線數目至少為2。在此情況中,即使可旁通一工作導線,亦不能旁通其他工作導線。即,當基於屬於佈線群組之工作導線數目按種類升序循序對佈線群組執行再配置計算時,若該最大旁通佈
線長度BNUM小於2×I(I係指工作導線數目),則全部該等工作導線皆不能旁通。
因此,由圖9之程序取代圖6中所示之程序,其中該最大旁通佈線長度BNUM與2×I比較(S101)。當該最大旁通佈線長度BNUM至少為2×I時(S101中為是),該處理流程行進至步驟S40,其中對再佈線該種類GI中之佈線群組執行處理。當該最大旁通佈線長度BNUM小於2×I時(S101中為否),該處理流程行進至步驟S28。因此,當不能達成再配置時可防止執行對嘗試再配置之處理。
當連續多次拒絕旁通佈線時,此時可結束該佈線程序。圖10及圖11係展示其中該處理器元件11結束該佈線程序(前提係旁通拒絕次數超過一預定數字(NF次))之一程序之流程圖。
在圖10及圖11中所示之程序中,使用用於計數旁通拒絕次數之一變數Ncount。在執行旁通搜尋之前將該變數Ncount重設為零(例如,圖10中之步驟S111)。當在圖11中之步驟S48中拒絕一旁通時,該變數Ncount遞增1(S112)。當該變數Ncount超過一臨限值NF時(S113中為是),結束該佈線程序。另一方面,當在圖11之步驟S45中接受旁通時,將該變數Ncount重設為零(S114)。
可預先定義作為再配置計算之一目標之一種類。當完成屬於作為該再配置計算之一目標之種類之佈線群組之再配
置計算時,結束該程序。為此,由基於圖12之一程序取代圖6中所示之程序。在圖12中所示之程序中,在該再配置計算之前設定作為再配置計算之一目標之一種類(例如,圖12中S121)。此處,藉由表達式(5)及表達式(6)計算擁有可經再佈線之佈線群組之種類中工作導線之最大數目。
其中Ri係指各自由水平導線組成之佈線群組數目,且其中工作導線數目係i,且Ci係指各自由垂直導線組成之佈線群組數目,且其中工作導線數目係i。該處理器元件11獲得作為再佈線之一目標之種類中之工作導線之一最大數目J,以滿足表達式(5)及表達式(6)。
當用於一佈線群組中之佈局之導線係i個垂直導線時,旁通佈線需要2×i個水平導線及i個垂直導線。另一方面,當用於該佈局之導線係i個水平導線時,旁通佈線需要i個水平導線及2×i個垂直導線。
表達式(5)左半部分係指旁通屬於分類為其中1至J個導線係用於每一佈線群組中之佈局之種類之佈線群組之全部導線所需之水平導線數目。表達式(5)右半部分係指未用於該佈局但屬於分類為其中(J+1)至n個導線係用於每一佈線群組中之佈局之一種類之佈線群組之水平導線之總數目。即,在表達式(5)中,驗證可用作旁通之水平導線是否足以旁通屬於分類為其中1至J個導線係用於每一佈線群組中之
佈局之種類之佈線群組之全部導線。
以相同方式,在表達式(6)中,驗證可用作旁通之垂直導線是否足以旁通屬於分類為其中1至J個導線係用於每一佈線群組中之佈局之種類之佈線群組之全部導線。接著,搜尋滿足表達式(5)及表達式(6)之J,且各自具有用於佈局之1至J個導線之佈線群組被視為旁通導線之候選者。
當使用此一修改時,可縮短再佈線之程序所需之時間,且在一較短時間獲得一佈線旁通。可組合並使用修改1至3之一些。
如上所述,根據本發明之實施例之組態或本發明之修改,可執行佈線以使導線皆不用於佈局之佈線群組數目儘可能大,同時滿足一要求頻率。可使未使用之佈線群組斷電使得可減小功耗。
本發明並不限於前述提及之實施例,在不脫離本發明之範疇之情況下可適當地改變本發明。
雖然已描述特定實施例,但是此等實施例僅以實例方式呈現,且不旨在限制本發明之範疇。更確切地,本發明描述之新穎方法及系統可以多種其他形式具體實施。而且,在不脫離本發明之精神之情況下可以本發明描述之方法及系統之形式作出各種省略、替代及改變。該等隨附圖式及其等等效物旨在涵蓋屬於本發明之範疇及精神內之此等形式或修改。
1‧‧‧個人電腦
10‧‧‧處理器
11‧‧‧處理器元件
12‧‧‧快取區
20‧‧‧主記憶體
21N‧‧‧型金氧半場效應電晶體
22P‧‧‧型金氧半場效應電晶體
23‧‧‧記憶體
24‧‧‧反相器
25‧‧‧反相器
26‧‧‧反相器
27‧‧‧電晶體
28‧‧‧電晶體
29‧‧‧電晶體
30‧‧‧硬碟
40‧‧‧輸入/輸出裝置
50‧‧‧非揮發性記憶體
D1‧‧‧記憶體
D2‧‧‧記憶體
D3‧‧‧記憶體
D4‧‧‧記憶體
D5‧‧‧記憶體
D6‧‧‧記憶體
D7‧‧‧記憶體
D8‧‧‧記憶體
D9‧‧‧記憶體
D10‧‧‧記憶體
D11‧‧‧記憶體
D12‧‧‧記憶體
D13‧‧‧記憶體
D14‧‧‧記憶體
D15‧‧‧記憶體
D16‧‧‧記憶體
D17‧‧‧記憶體
D18‧‧‧記憶體
T1‧‧‧導線
T2‧‧‧水平導線
T3‧‧‧水平導線
T4‧‧‧垂直導線
T5‧‧‧導線
T6‧‧‧垂直導線
T7‧‧‧垂直導線
T8‧‧‧水平導線
圖1係展示根據一實施例之一FPGA之概念之一圖;
圖2係展示用於控制根據該實施例之佈線之電源供應之一電路之一實例之一圖;圖3A至圖3C係各自詳細展示根據該實施例之一反相器及一電晶體之一連接部分之圖;圖4係用於對根據該實施例之FPGA執行配置及佈線之一PC之一方塊圖;圖5係展示根據該實施例之FPGA上之配置及佈線之一流程圖;圖6係展示根據該實施例之FPGA上之配置及佈線之一流程圖;圖7係展示根據該實施例之FPGA上之配置及佈線之一流程圖;圖8A至圖8B係各自展示旁通一導線所需之導線之視圖;圖9係展示根據該實施例之修改1之FPGA上之配置及佈線之一流程圖;圖10係展示根據該實施例之修改2之FPGA上之配置及佈線之一流程圖;圖11係展示根據該實施例之修改2之FPGA上之配置及佈線之一流程圖;及圖12係展示根據該實施例之修改3之FPGA上之配置及佈線之一流程圖。
Claims (8)
- 一種用於實施一積體電路之一電路設計之方法,該方法包括:(a)獲得一第一佈線以滿足一給定操作頻率;(b)基於該給定操作頻率及該第一佈線之一臨界路徑計算一最大旁通佈線長度;(c)藉由使用除包含該第一佈線之一第一佈線群組中之該第一佈線之導線外之導線旁通該第一佈線而獲得一第二佈線,其中將該積體電路之佈線分類為複數個佈線群組,且該等所分類佈線群組之該第一佈線群組中包含該第一佈線;及(d)若該第二佈線與該第一佈線之間之一差值不大於該最大旁通佈線長度,則用該第二佈線取代該第一佈線,且若該差值大於該最大旁通佈線長度,則不用該第二佈線取代該第一佈線。
- 如請求項1之方法,其中若該最大旁通佈線長度小於對應於該積體電路之一邏輯塊之兩側之一長度,則不執行步驟(c)且不用該第二佈線取代該第一佈線。
- 如請求項1之方法,其進一步包括:(e)當用該第二佈線取代該第一佈線時,基於該第二佈線與該第一佈線之間之該差值更新該最大旁通佈線長度;及(f)使用除包含一第三佈線之一第二佈線群組中之該第 三佈線之導線外之導線旁通該第三佈線,其中若該所更新最大旁通佈線長度大於對應於該積體電路之一邏輯塊之兩側之一長度,則該所分類佈線群組之該第二佈線群組中包含該第三佈線。
- 如請求項1之方法,其進一步包括:(e)當用該第二佈線取代該第一佈線時,基於該第二佈線與該第一佈線之間之該差值更新該最大旁通佈線長度;(f)若該所更新最大旁通佈線長度小於對應於該積體電路之一邏輯塊之兩側之一長度,則計算該第二佈線之一臨界路徑,且基於該給定操作頻率及該第二佈線之該所計算臨界路徑更新該最大旁通佈線長度;及(g)使用除包含一第三佈線之一第二佈線群組中之該第三佈線之導線外之導線旁通該第三佈線,其中若該所更新最大旁通佈線長度大於對應於該積體電路之一邏輯塊之兩側之一長度,則該所分類佈線群組之該第二佈線群組中包含該第三佈線。
- 如請求項1之方法,其中當未用於該第一佈線群組中之該第一佈線之導線數目(I)係1或更大且該第一佈線群組之導線數目小於任何其他佈線群組之導線數目且該最大旁通佈線長度為該積體電路之一邏輯塊之兩側之I倍大時,不執行步驟(c)且不用該第二佈線取代該第一佈線。
- 如請求項1之方法,其進一步包括: (e)歸因於該第二佈線與該第一佈線之間之該差值大於該最大旁通佈線長度之事實,計數有多少次不用該第二佈線取代該第一佈線,其中當計數數目超過一給定值時,不執行步驟(c)且不用該第二佈線取代該第一佈線。
- 如請求項1之方法,其中預判定經歷步驟(c)之佈線群組,且該等佈線群組之一者係該第一佈線群組。
- 一種儲存導致一電腦執行操作之一程式之電腦可讀取媒體,該等操作包括:(a)獲得一第一佈線以滿足一給定操作頻率;(b)基於該給定操作頻率及該第一佈線之一臨界路徑計算一最大旁通佈線長度;(c)藉由使用除包含該第一佈線之一第一佈線群組中之該第一佈線之導線外之導線旁通該第一佈線而獲得一第二佈線,其中將該積體電路之佈線分類為複數個佈線群組,且該等所分類佈線群組之該第一佈線群組中包含該第一佈線;及(d)若該第二佈線與該第一佈線之間之一差值不大於該最大旁通佈線長度,則用該第二佈線取代該第一佈線,且若該差值大於該最大旁通佈線長度,則不用該第二佈線取代該第一佈線。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011182833A JP5743808B2 (ja) | 2011-08-24 | 2011-08-24 | 集積回路の配線方法、集積回路の配線プログラム及びそれを記憶した記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201314483A true TW201314483A (zh) | 2013-04-01 |
TWI446201B TWI446201B (zh) | 2014-07-21 |
Family
ID=47745555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101124989A TWI446201B (zh) | 2011-08-24 | 2012-07-11 | 實施積體電路之電路設計之方法及電腦可讀取媒體 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8578318B2 (zh) |
JP (1) | JP5743808B2 (zh) |
KR (1) | KR101382984B1 (zh) |
TW (1) | TWI446201B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9865355B2 (en) * | 2015-02-02 | 2018-01-09 | Micron Technology, Inc. | Apparatuses and methods for transistor protection by charge sharing |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2930770B2 (ja) * | 1991-06-07 | 1999-08-03 | 株式会社東芝 | 半導体集積回路の設計方法 |
JP3737104B2 (ja) * | 1992-06-04 | 2006-01-18 | ジリンクス,インコーポレーテッド | プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法 |
US5553000A (en) * | 1992-11-05 | 1996-09-03 | Nec Usa, Inc. | Eliminating retiming bottlenecks to improve performance of synchronous sequential VLSI circuits |
JP2601168B2 (ja) * | 1993-03-30 | 1997-04-16 | 日本電気株式会社 | 順次回路をリタイミングする方法および再設計する方法 |
US5666290A (en) * | 1995-12-27 | 1997-09-09 | Vlsi Technology, Inc. | Interactive time-driven method of component placement that more directly constrains critical paths using net-based constraints |
JP2918101B2 (ja) * | 1996-07-25 | 1999-07-12 | 日本電気株式会社 | 半導体集積回路のレイアウト方法 |
JP3496661B2 (ja) * | 2000-06-15 | 2004-02-16 | 日本電気株式会社 | データパスに適したプログラマブル相互接続網を有する再構成可能デバイス |
US6637014B2 (en) * | 2001-03-06 | 2003-10-21 | Nec Corporation | Crosstalk mitigation method and system |
US6766499B1 (en) * | 2001-04-05 | 2004-07-20 | Lsi Logic Corporation | Buffer cell insertion and electronic design automation |
US7107477B1 (en) * | 2003-01-31 | 2006-09-12 | Altera Corporation | Programmable logic devices with skewed clocking signals |
US6930510B2 (en) | 2003-03-03 | 2005-08-16 | Xilinx, Inc. | FPGA architecture with mixed interconnect resources optimized for fast and low-power routing and methods of utilizing the same |
US7039891B2 (en) * | 2003-08-27 | 2006-05-02 | Lsi Logic Corporation | Method of clock driven cell placement and clock tree synthesis for integrated circuit design |
EP1630707B8 (en) * | 2004-02-20 | 2009-01-14 | Panasonic Corporation | Element arrangement check device and printed circuit board design device |
US7062737B2 (en) * | 2004-07-28 | 2006-06-13 | Lsi Logic Corporation | Method of automated repair of crosstalk violations and timing violations in an integrated circuit design |
US20060162960A1 (en) * | 2004-12-16 | 2006-07-27 | Litton Systems, Inc. | System for determining printed circuit board passive channel losses |
US7493578B1 (en) * | 2005-03-18 | 2009-02-17 | Xilinx, Inc. | Correlation of data from design analysis tools with design blocks in a high-level modeling system |
US7281233B1 (en) | 2005-05-27 | 2007-10-09 | Xilinx, Inc. | Method and apparatus for implementing a circuit design for integrated circuitry on a circuit board |
US7363599B1 (en) * | 2005-10-04 | 2008-04-22 | Xilinx, Inc. | Method and system for matching a hierarchical identifier |
US7689962B2 (en) * | 2006-02-08 | 2010-03-30 | Roberto Suaya | Extracting high frequency impedance in a circuit design using an electronic design automation tool |
US7509609B2 (en) * | 2006-03-15 | 2009-03-24 | Agere Systems Inc. | Methods and apparatus for reducing timing skew |
JP4555891B2 (ja) * | 2007-05-28 | 2010-10-06 | 富士通株式会社 | 自動配線装置,自動配線プログラム,及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
JP4530049B2 (ja) * | 2008-01-10 | 2010-08-25 | ソニー株式会社 | 半導体装置の設計プログラムおよび半導体装置の設計システム |
JP2010226524A (ja) | 2009-03-24 | 2010-10-07 | Fuji Xerox Co Ltd | プログラマブル論理回路、半導体集積回路装置、情報処理システムおよび制御プログラム |
US8878566B2 (en) * | 2010-09-08 | 2014-11-04 | Nec Corporation | Reconfigurable circuit |
-
2011
- 2011-08-24 JP JP2011182833A patent/JP5743808B2/ja not_active Expired - Fee Related
-
2012
- 2012-07-11 TW TW101124989A patent/TWI446201B/zh not_active IP Right Cessation
- 2012-07-27 KR KR1020120082378A patent/KR101382984B1/ko not_active IP Right Cessation
- 2012-07-30 US US13/561,483 patent/US8578318B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP5743808B2 (ja) | 2015-07-01 |
JP2013045294A (ja) | 2013-03-04 |
KR101382984B1 (ko) | 2014-04-08 |
KR20130023070A (ko) | 2013-03-07 |
US8578318B2 (en) | 2013-11-05 |
US20130055189A1 (en) | 2013-02-28 |
TWI446201B (zh) | 2014-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
George et al. | Low-Energy FPGAs—Architecture and Design | |
US20110154279A1 (en) | Decision modules | |
WO2000038228A1 (fr) | Appareil et procede de cablage brute et support d'enregistrement conservant un programme de cablage brute | |
US9430608B2 (en) | Fixing of semiconductor hold time | |
TWI446201B (zh) | 實施積體電路之電路設計之方法及電腦可讀取媒體 | |
Xue et al. | Routing path reuse maximization for efficient NV-FPGA reconfiguration | |
JP2011243794A (ja) | 半導体装置、電源スイッチの制御方法及びその設計方法 | |
US20160203254A1 (en) | Methods for reducing congestion region in layout area of ic | |
JP2016178183A (ja) | 半導体集積回路 | |
US20210320661A1 (en) | Soft network-on-chip overlay through a partial reconfiguration region | |
JP5922802B2 (ja) | 設計方法、プログラム、メモリ媒体および設計装置 | |
JP2005135229A (ja) | 半導体集積回路の自動設計方法 | |
US10372864B2 (en) | Global routing in circuit design | |
US20190163862A1 (en) | Placement and timing aware wire tagging | |
JP6326756B2 (ja) | スキャンパスを構成するための情報処理装置、スキャンパス接続方法及びプログラム | |
Al Farisi et al. | Staticroute: A novel router for the dynamic partial reconfiguration of FPGAs | |
JP2013143008A (ja) | 設計装置 | |
JP2013003945A (ja) | レイアウト装置及びレイアウト方法 | |
WO2018139408A1 (ja) | 設計支援システムおよび設計支援方法 | |
WO2019107234A1 (ja) | 設計支援システム、設計支援方法およびプログラム記録媒体 | |
US20150199464A1 (en) | Floorplan anneal using perturbation of selected automated macro placement results | |
Siddiqi et al. | On improving the critical path delay of PathFinder at smaller channel widths | |
JP2007082017A (ja) | 高速化低消費電力論理装置 | |
JP2006303301A (ja) | 半導体集積回路のレイアウト設計方法 | |
Uttraphan et al. | Hybrid routing tree with buffer insertion under obstacle constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |