TW201816641A - 用於對匯流排進行佈線的計算系統及方法以及佈線系統 - Google Patents
用於對匯流排進行佈線的計算系統及方法以及佈線系統 Download PDFInfo
- Publication number
- TW201816641A TW201816641A TW106129230A TW106129230A TW201816641A TW 201816641 A TW201816641 A TW 201816641A TW 106129230 A TW106129230 A TW 106129230A TW 106129230 A TW106129230 A TW 106129230A TW 201816641 A TW201816641 A TW 201816641A
- Authority
- TW
- Taiwan
- Prior art keywords
- bus
- buffer
- buffer array
- information
- array
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40078—Bus configuration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40071—Packet processing; Packet format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40143—Bus networks involving priority mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0064—Latency reduction in handling transfers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/16—Memory access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Architecture (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multimedia (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
- Small-Scale Networks (AREA)
Abstract
包括在積體電路中的匯流排結構有利於提升功能塊的性能。本發明提供用於在積體電路的佈局中對包括緩衝器的匯流排進行佈線的計算系統、在積體電路的佈局中對包括緩衝器的匯流排進行佈線的方法及積體電路中的佈線系統。通過處理單元所執行的用於對匯流排進行佈線的程式流程包括:匯流排資訊提取器,從輸入資料中提取匯流排資訊,匯流排資訊包括對於匯流排的物理要求;緩衝器陣列產生器,基於匯流排資訊來產生緩衝器陣列,在緩衝器陣列中,匯流排中所包括的各緩衝器規則地排列;緩衝器陣列放置器,基於匯流排資訊來將至少一個緩衝器陣列放置於積體電路的佈局中;以及配線流程,基於匯流排資訊來產生連接至至少一個緩衝器陣列中所包括的緩衝器的互連線。
Description
本發明是有關於一種積體電路及/或一種用於在積體電路中對匯流排進行佈線的系統及方法。
例如系統晶片(system-on-chip,SoC)等數位積體電路可包括各種功能塊。隨著半導體工藝技術的進步,在功能塊中所包括的裝置的數目已增加,且功能塊的運行速度也已得到提高。積體電路可包括便於各功能塊之間進行通信的匯流排。
包括在積體電路中的匯流排結構有利於提升功能塊的性能。本發明概念提供一種在積體電路中對匯流排進行佈線的方法及/或在積體電路中對包括緩衝器的匯流排進行佈線的系統及方法。
根據示例性實施例,一種用於在積體電路的佈局中對包括緩衝器的匯流排進行佈線的計算系統,所述計算系統包括:記憶體,被配置成儲存資訊,所述資訊包括程式流程;以及處理單元,被配置成存取所述記憶體並執行所述程式流程,其中所述程式流程包括:匯流排資訊提取器,被配置成從輸入資料中提取匯流排資訊(bus information),所述匯流排資訊包括對於所述匯流排的物理要求(也稱為物理特性);緩衝器陣列產生器,被配置成基於所述匯流排資訊來產生緩衝器陣列,在所述緩衝器陣列中,所述匯流排中所包括的各緩衝器規則地排列;緩衝器陣列放置器,被配置成基於所述匯流排資訊來將至少一個緩衝器陣列放置於所述積體電路的所述佈局中;以及配線流程,被配置成基於所述匯流排資訊來產生連接至所述至少一個緩衝器陣列中所包括的緩衝器的互連線。
根據示例性實施例,提供一種在積體電路的佈局中對包括緩衝器的匯流排進行佈線的方法,所述方法是在計算系統上執行且包括:從輸入資料中提取匯流排資訊,所述匯流排資訊包括對於所述匯流排的物理要求;基於所述匯流排資訊來產生緩衝器陣列,在所述緩衝器陣列中,所述匯流排中所包括的各緩衝器規則地排列;基於所述匯流排資訊來將至少一個緩衝器陣列放置於所述積體電路的所述佈局中;以及基於所述匯流排資訊來產生與所述至少一個緩衝器陣列中所包括的緩衝器連接的互連線。
示例性實施例涉及一種用於在積體電路中對匯流排進行佈線的系統,所述系統包括:至少一條匯流排,具有物理要求且包括多個緩衝器陣列;以及多個功能塊,通過所述至少一條匯流排而相互連接,所述多個功能塊中的每一個被配置成通過所述至少一條匯流排接收待處理資料或傳送已處理資料;所述至少一條匯流排中所包括的所述多個緩衝器基於所述物理要求而規則地間隔開;且所述多個緩衝器基於所述物理要求而在緩衝器陣列中進行互連。
這些及其他特徵及優點將在以下各種示例性實施例的詳細說明中予以闡述或通過以下各種示例性實施例的詳細說明顯而易見。
應理解,當稱一元件位於另一元件“上”、“連接至”或“耦合至”另一元件時,所述元件可直接位於所述另一元件上、直接連接至或直接耦合至所述另一元件,抑或可存在中間元件。相反,當稱一元件“直接”位於另一元件“上”、“直接連接至”或“直接耦合至”另一元件時,則不存在中間元件。本文中所用的術語“及/或”包括相關列出項中的一個或多個項的任意及所有組合。進一步,應理解,當稱一層位於另一層“之下”時,所述層可直接位於所述另一層之下或也可存在一個或多個中間層。另外,也應理解,當稱一層位於兩個層“之間”時,所述層可為所述兩個層之間的唯一層,或者也可存在一個或多個中間層。
圖1是根據示例性實施例的包括儲存有程式的記憶體的計算系統100的方塊圖。在計算系統100中可執行根據示例性實施例的在積體電路的佈局中對匯流排進行佈線的操作。
計算系統100可為例如臺式電腦、工作站、伺服器等固定型計算系統或例如膝上型電腦等可擕式計算系統。如圖1所說明,計算系統100可包括中央處理器(central processing unit,CPU)、輸入/輸出裝置120、網路介面130、隨機存取記憶體(random access memory,RAM)140、唯讀記憶體(read only memory,ROM)150、儲存裝置160。中央處理器110、輸入/輸出裝置120、網路介面130、隨機存取記憶體140、唯讀記憶體150及儲存裝置160可與匯流排170連接並通過匯流排170相互通信。
中央處理器110可被稱為處理單元,且可為例如包括內核的微處理器、應用進程(application process,AP)、數位訊號處理器(digital signal processor,DSP),所述內核執行指令集(例如,英特爾架構-32(Intel Architecture-32,IA-32)、64位擴展的英特爾架構-32、x86-64、PowerPC、可擴充處理器架構(Scalable Processor ARChitecture,Sparc)、無互鎖管線級的微處理器(Microprocessor without interlocked piped stages,MIPS)、先進精簡指令集電腦(Advanced RISC Machines,ARM)及英特爾架構-64)。舉例來說,中央處理器110可通過匯流排170來存取記憶體(即,隨機存取記憶體140或唯讀記憶體150)並執行在隨機存取記憶體140或唯讀記憶體150中儲存的指令。如圖1所說明,隨機存取記憶體140可儲存根據示例性實施例的程式200的全部或至少一部分。程式200可指示中央處理器110來執行對匯流排進行佈線的操作。亦即,程式200可包括可由中央處理器110執行的多個指令,且程式200中所包括的所述多個指令可用於指示中央處理器110根據示例性實施例執行對匯流排進行佈線的操作。
即使在計算系統100的電源中斷時,儲存裝置160也可不遺失所儲存的資料。舉例來說,儲存裝置160可包括例如以下非揮發性記憶體:電可擦除可程式設計唯讀記憶體(Electrically Erasable Programmable Read-Only Memory,EEPROM)、快閃記憶體、相變隨機存取記憶體(Phase Change Random Access Memory,PRAM)、電阻式隨機存取記憶體(Resistance Random Access Memory,RRAM)、納米浮柵記憶體(Nano Floating Gate Memory,NFGM)、聚合物隨機存取記憶體(Polymer Random Access Memory,PoRAM)、磁性隨機存取記憶體(Magnetic Random Access Memory,MRAM)、鐵電式隨機存取記憶體(Ferroelectric Random Access Memory,FRAM),或者例如磁帶、光碟或磁片等儲存媒體。另外,儲存裝置160可能夠從計算系統100分離。儲存裝置160可儲存根據示例性實施例的程式200,且可在利用中央處理器110執行程式200之前將程式200的全部或至少一部分從儲存裝置160載入至隨機存取記憶體140。作為另外一種選擇,儲存裝置160可儲存以程式設計語言寫入的文件,且可將利用編譯器從所述文件產生的程式200的全部或至少一部分載入至隨機存取記憶體140。
儲存裝置160可儲存將由中央處理器110處理的資料或已由中央處理器110處理的資料。亦即,中央處理器110可根據程式200通過對儲存在儲存裝置160中的資料進行處理來產生資料,並將所產生的資料儲存在儲存裝置160中。舉例來說,儲存裝置160可儲存根據程式200進行處理的圖3所示輸入資料D100,或儲存根據程式200產生的圖3所示輸出資料D900。
輸入/輸出裝置120可包括例如鍵盤或定點裝置(pointing device)等輸入裝置及例如顯示裝置及印表機等輸出裝置。舉例來說,利用輸入/輸出裝置120,使用者可通過中央處理器110觸發程式200的執行、輸入圖3所示輸入資料D100或檢查圖3所示輸出資料D900或錯誤消息。
網路介面130可提供對計算系統100的外部網路進行的存取。舉例來說,網路介面130可包括多個計算系統及通信鏈路,且所述通信鏈路可包括有線鏈路、光學鏈路、無線鏈路或其他形式的鏈路。
圖2是根據示例性實施例的積體電路3的示意性平面圖。為便於說明,圖2所示積體電路3中的元件的大小可不按比例,而是可被放大或縮小。
如圖2所說明,積體電路3可包括第一功能塊B01至第八功能塊B08。功能塊可指代處理數位信號的電路單元且可為例如處理器(例如,微處理器、圖形處理器或數位訊號處理器)、記憶體(例如,動態隨機存取記憶體(dynamic RAM,DRAM)或靜態隨機存取記憶體(static RAM,SRAM))或控制器(例如,直接記憶體存取(Direct Memory Access,DMA)控制器或通用序列匯流排(Universal Serial Bus,USB)控制器)。功能塊B01至功能塊B08中的每一個或至少一個可被設計成在積體電路3中執行所期望的或預定的泛函(functional)並如圖2所說明的一樣進行放置。
功能塊B01至功能塊B08可通過匯流排接收待處理資料或傳送已處理資料。舉例來說,如圖2所說明,第一功能塊B01與第八功能塊B08可通過第一匯流排BUS_1相互通信,且第四功能塊B04與第六功能塊B06可通過第二匯流排BUS_2相互通信。詳細來說,第一匯流排BUS_1可連接至第一功能塊B01中所包括的單元群組的每一引腳及第八功能塊B08中所包括的單元群組的每一引腳或至少一個引腳。相似地,第二匯流排BUS_2可連接至第四功能塊B04中所包括的單元群組的每一引腳或至少一個引腳及第六功能塊B06中所包括的單元群組的每一引腳或至少一個引腳。
隨著積體電路3中所包括的功能塊B01至功能塊B08的性能提升,例如第一匯流排BUS_1及第二匯流排BUS_2等匯流排可被設計成具有大的頻寬。舉例來說,匯流排可具有先進高性能匯流排(Advanced High-performance bus,AHB)結構或片上網路(Network-on-Chip,NoC)結構,而此並無限制。匯流排的頻寬可隨著匯流排寬度(即,匯流排中所包括的連接的數目)增大及/或通過匯流排傳送的信號的頻率增大而增大。連接可指代信號從某一功能塊中所包括的單元群組的引腳(信號從此處出發)到另一功能塊中所包括的單元群組的引腳(信號到達此處)的路徑。匯流排可包括多個連接,所述連接用於並列地傳送與多個位對應的信號並傳送時鐘信號。隨著積體電路3中所包括的功能塊的數目及/或面積增大,在各功能塊之間進行連接的匯流排的長度可更長。另外,隨著經由匯流排傳送的信號的頻率增大,經由匯流排傳送的信號更可能會失真。因此,匯流排可包括多個緩衝器以確保信號完整性,且所述緩衝器可串列連接以實現一個連接。
根據示例性實施例,在對匯流排進行佈線的方法(所述方法可在圖1所示計算系統1中執行)中,可通過放置基於匯流排的量化物理要求而產生的緩衝器陣列來對匯流排進行佈線。亦即,並不是對匯流排中所包括的各連接進行單獨地佈線,而是可基於匯流排的量化物理要求來對匯流排中所包括的連接進行佈線且可使用其中規則地排列有多個緩衝器的緩衝器陣列。舉例來說,如圖2所說明,第一匯流排BUS_1可包括五個緩衝器陣列及與緩衝器陣列連接的互連線,且第二匯流排BUS_2可包括三個緩衝器陣列及與緩衝器陣列連接的互連線。在本說明書中,對匯流排或連接進行的佈線可指代利用佈線資源確定積體電路(例如,圖3所示積體電路3)的佈局中的匯流排的物理結構的操作,且互連線可指代包括在配線層(例如,金屬層)中形成的圖案及/或通路的等電勢結構(equipotential structure)。
為了滿足通過連接(如稍後將參照圖11A闡述的一樣)從起點移動到到達點的信號的時序要求(例如,延遲或抖動),若對匯流排中所包括的連接各別地進行佈線且也各別地放置各連接中所包括的緩衝器,則可增大並列傳送的信號的抖動,且此外,例如緩衝器、配線層及通路等佈線資源可能會被浪費。根據以下將參照圖式闡述的根據示例性實施例的對匯流排進行佈線的方法,可利用緩衝器陣列對匯流排連接進行統一佈線,且可減少匯流排佈線中使用的佈線資源。另外,可減少信號之間的串擾,從而提供更好的信號完整性。
圖3是根據示例性實施例的圖1所示程式200的方塊圖。如以上參照圖1所闡述,程式200可包括多個指令,且程式200中所包括的所述多個指令可使中央處理器110根據示例性實施例執行對匯流排進行佈線的操作。圖3說明程式200以及輸入資料D100及輸出資料D900的示意性方塊圖。
參照圖3,程式200可包括多個流程210、230、250、270及290。程式可指代用於執行所期望的或預定的任務的一系列指令。程式也可被稱為泛函、常式、子常式或副程式。每一流程可處理其他流程的輸入資料(例如,輸入資料D100)或輸出資料。在本說明書中,當闡述圖1所示中央處理器110通過執行流程(例如,流程210、230、250、270及290中的一個流程)來執行操作時,也可理解為執行所述流程(即流程210、230、250、270及290中的一個流程)以執行所述操作。
匯流排資訊提取器210可從輸入資料D100中提取匯流排資訊,所述匯流排資訊包括對於匯流排的物理要求。輸入資料D100可包括關於在積體電路(例如,圖3所示積體電路3)中對匯流排進行佈線的資訊。舉例來說,輸入資料D100可包括表示具有例如幾何資料標準II(Geometry Data Standard II,GDSII)等格式的積體電路的佈局的資料,且可包括至少一個匯流排清單文件,所述匯流排清單文件列出將增添至積體電路的匯流排的規範。另外,輸入資料D100可包括由用戶通過圖1所示輸入/輸出裝置120設定的資訊。匯流排資訊提取器210可通過從輸入資料D100中提取對匯流排進行佈線所需要的匯流排的物理要求來產生包括物理要求的匯流排資訊。舉例來說,匯流排的物理要求可包括關於匯流排的起點及到達點的資訊及關於能夠在其中放置匯流排的通道區域的通道區域資訊。根據示例性實施例,匯流排資訊提取器210可進一步從輸入資料D100提取關於通過匯流排傳送的信號的資訊,例如信號的電壓電平、頻率以及上升時間及下降時間。如稍後將參照圖4所闡述,對於對匯流排進行佈線的要求可基於利用匯流排資訊提取器210提取的匯流排資訊來確定,且匯流排資訊可為後續執行的用於執行匯流排佈線操作的流程提供基礎。
緩衝器陣列產生器230可基於利用匯流排資訊提取器210而提取的匯流排資訊來產生緩衝器陣列。緩衝器陣列可包括規則地排列的多個緩衝器。緩衝器陣列可包括與匯流排中所包括的連接的數目對應的數目的緩衝器,且所述緩衝器陣列中所包括的緩衝器的結構可相同或不同。另外,緩衝器在緩衝器陣列中的排列形式(即,緩衝器陣列的配置)可如圖5A至圖5C所示例子中所說明的一樣為各種各樣的。
緩衝器陣列中所包括的緩衝器的類型及/或緩衝器陣列的配置可基於匯流排資訊預先設定,或可基於匯流排資訊中所包括的物理要求利用緩衝器陣列產生器230來確定。舉例來說,匯流排資訊可包括定義緩衝器陣列中所包括的緩衝器的類型及緩衝器陣列配置的物理要求,且緩衝器陣列產生器230可基於關於兩條或更多條匯流排的匯流排資訊而產生在所述兩條或更多條匯流排中的每一條或至少一條中所包括的緩衝器陣列。另外,緩衝器陣列產生器230可以不同的方式產生匯流排中所包括的兩個或更多個緩衝器陣列。如稍後將闡述,當匯流排包括利用緩衝器陣列產生器230產生的緩衝器陣列時,可對匯流排連接統一進行佈線,且還可減少不同的匯流排之間的串擾。
緩衝器陣列放置器250可將利用緩衝器陣列產生器230產生的至少一個緩衝器陣列放置於積體電路的佈局中。亦即,緩衝器陣列放置器250可將利用緩衝器陣列產生器230產生的緩衝器陣列的實例(instance)放置於積體電路的佈局中。舉例來說,緩衝器陣列放置器250可將緩衝器陣列放置成使得相鄰的各緩衝器陣列之間的距離在匯流排中為均勻的,或者可將緩衝器陣列放置在匯流排的轉捩點處。另外,當緩衝器陣列產生器230針對一條匯流排產生兩個或更多個不同的緩衝器陣列時,緩衝器陣列放置器250可根據放置緩衝器陣列的位置而放置不同的緩衝器陣列。舉例來說,如圖2所說明,在第一匯流排BUS_1中所包括的五個緩衝器陣列中,放置在匯流排的轉捩點處的三個緩衝器陣列可與其他兩個緩衝器陣列不同。亦即,緩衝器陣列放置器250可根據與緩衝器陣列連接的互連線的方向來選擇待放置的緩衝器陣列。
配線流程270可產生與利用緩衝器陣列放置器250放置的至少一個緩衝器陣列中所包括的緩衝器連接的互連線。互連線中所包括的供信號穿過的通路越多(即,信號穿過不同的配線層的次數越多),就可能會出現由互連線中增大的電阻造成的缺點(例如最大渡越時間違例(Maximum Transition Time Violation,MTTV)),且可浪費佈線資源。利用緩衝器陣列放置器250放置的緩衝器陣列可被放置成使得在相鄰的緩衝器陣列之間形成簡單的互連線,且因此,配線流程270可產生具有更簡單的結構的互連線(即,通路數目減少的互連線)。另外,利用匯流排資訊提取器210提取的匯流排資訊可包括限制佈線資源以確保經由匯流排傳送的信號的完整性的物理要求。舉例來說,匯流排資訊中所包括的物理要求可定義其中可形成有匯流排的互連線的配線層及可在匯流排的互連線中包括的通路。配線流程270可形成上述簡單的互連線,且因此,可容易地滿足限制佈線資源的物理要求。
輸出資料產生器290可產生包括關於緩衝器陣列的緩衝器及互連線的物理資訊(physical information)的輸出資料D900。舉例來說,輸出資料D900可包括與在緩衝器陣列中所包括的緩衝器對應的標準單元的名稱及緩衝器的座標資訊。作為另一例子,輸出資料D900也可包括表示在緩衝器陣列中所包括的緩衝器的佈局的資訊及表示互連線的佈局的資訊。輸出資料D900可用於通過半導體工藝來實作匯流排。舉例來說,可基於輸出資料D900來設計半導體工藝中所包括的子工藝,且可製造出將在子工藝中使用的遮罩(mask)。
圖4說明根據示例性實施例利用圖3所示匯流排資訊提取器210提取的匯流排資訊D200。如以上參照圖4所闡述,匯流排資訊D200可包括利用匯流排資訊提取器210從輸入資料D100提取的匯流排的物理要求。圖4所示匯流排資訊D200僅為利用圖1所示匯流排資訊提取器210產生的匯流排資訊的例子,且利用圖1所示匯流排資訊提取器210產生的匯流排資訊可不包括圖4中說明的物理要求中的某些物理要求或可進一步包括未在圖4中說明的物理要求。在圖4中,為便於說明,說明了可在匯流排資訊中包括的物理要求的例子及物理要求的值的形式,且省略了物理要求的實際值。
匯流排資訊D200可包括關於至少一條匯流排的匯流排資訊。舉例來說,如圖4所說明,匯流排資訊D200可包括關於第一匯流排BUS_1及第二匯流排BUS_2的匯流排資訊。關於第一匯流排BUS_1的匯流排資訊及關於第二匯流排BUS_2的匯流排資訊可包括相同的物理要求,且第一匯流排BUS_1及第二匯流排BUS_2的對應的物理要求可具有相同的值或不同的值。
參照圖4,在關於第一匯流排BUS_1的匯流排資訊中所包括的物理要求可包括要求群組G1及可選要求群組G2。要求群組G1中所包括的物理要求對於對匯流排進行佈線來說是必需的,且可包括例如圖4所說明的對於匯流排的起點及到達點的物理要求(例如,圖4所示列11及列12)。對於起點及到達點的物理要求可包括例如起點及到達點的座標資訊及層資訊。參照圖4,對於起點及到達點的物理要求可包括經由匯流排進行連接的單元的引腳資訊。若未在輸入資料D100中定義要求群組G1中所包括的物理要求(即,若不基於輸入資料D100來設定在要求群組G1中所包括的物理要求的值),則匯流排資訊提取器210可能會經由圖1等所示的輸入/輸出裝置120輸出錯誤消息。
在可選要求群組G2中所包括的物理要求可指代對於對匯流排進行佈線而言並非必需的、而是用於定義佈線條件的物理要求。舉例來說,如圖4所說明,可選要求群組G2可包括對於緩衝器類型、緩衝器的驅動強度、緩衝器陣列配置、緩衝器陣列中的時鐘緩衝器的位置、各緩衝器陣列之間的距離及互連線的層的物理要求(即,圖4所示列13至列18)。詳細來說,對於緩衝器類型的物理要求(圖4所示列13)可具有反相值或非反相值,且對於緩衝器的驅動強度的物理要求(圖4所示列14)可具有表示關於由標準單元所提供輸出信號的驅動強度的指標的值。對於緩衝器陣列配置的物理要求(圖4所示的列15)可具有表示緩衝器陣列的列及行的數目的值,且對於時鐘緩衝器的位置的物理要求(圖4所示的列16)可具有表示緩衝器陣列的列號及行號(時鐘緩衝器所處的位置)的值。對於各緩衝器陣列之間的距離的物理要求(圖4所示列17)可具有表示各緩衝器陣列之間的距離的值,且對於互連線的層的物理要求(圖4所示的列18)可具有表示可用於互連線的配線層的指標的值。
根據示例性實施例,圖3所示匯流排資訊提取器210可將可選要求群組G2所包括的物理要求中未在圖3所示的輸入資料D100中設定的物理要求設定為預設值。可選要求群組G2中所包括的物理要求的預設值可被預先設定並包括“忽略(don’t care)”值。舉例來說,若未在輸入資料D100中定義對於緩衝器類型的物理要求(圖4所示的列13),則匯流排資訊提取器210可將對於緩衝器類型的物理要求(圖4所示的列13)的值設定為表示非反相值的值。另外,若未在輸入資料D100中定義對於緩衝器陣列配置的物理要求(圖4所示的列15),則匯流排資訊提取器210可將對於緩衝器類型的物理要求(圖4所示的列15)的值設定為“忽略”。
如圖4所說明,通過利用其中對於匯流排的物理要求已得到確定的匯流排資訊D200,可產生緩衝器陣列,且可放置所產生的緩衝器陣列,並且可執行寫入操作。當積體電路的設計者將在可選要求群組G2中所包括的物理要求中的至少一個物理要求輸入於輸入資料D100中時,設計者可獲得根據圖3所示程式200而自我調整地進行佈線的匯流排結構。
圖5A至圖5C示意性地說明根據示例性實施例利用圖3所示緩衝器陣列產生器230產生的緩衝器陣列的例子。如以上參照圖3所闡述,緩衝器陣列產生器230可基於利用匯流排資訊提取器210產生的匯流排資訊來產生緩衝器陣列。圖5A至圖5C分別說明緩衝器陣列的一部分,且將理解,利用緩衝器陣列產生器230產生的緩衝器陣列可包括與圖5A至圖5C中的緩衝器不同數目的緩衝器或可包括與圖5A至圖5C中的緩衝器不同地放置的緩衝器。
緩衝器陣列產生器230可產生包括規則地放置的緩衝器的緩衝器陣列。舉例來說,如圖5A所說明,緩衝器陣列產生器230可產生其中相鄰的緩衝器在X軸方向上及在Y軸方向上對齊的緩衝器陣列10a。另外,如圖5B及圖5C所說明,緩衝器陣列產生器230可產生其中相鄰的緩衝器在Y軸方向上對齊的緩衝器陣列10b或緩衝器陣列10c。
利用緩衝器陣列產生器230產生的緩衝器陣列的緩衝器可具有不同的密度。舉例來說,在圖5A至圖5C中的虛線內的相等的內側區域的情形中,圖5A所示緩衝器陣列10a及圖5B所示緩衝器陣列10b可包括十六個緩衝器,且圖5C所示緩衝器陣列10c可包括二十個緩衝器。緩衝器陣列中所包括的緩衝器的密度越低,則與緩衝器連接的各互聯線之間的距離越大,且因此,可減小各互聯線之間的串擾。因此,基於稍後將參照圖9闡述的這些特性,緩衝器陣列產生器230可基於經由匯流排傳送的信號的信號特性來確定緩衝器陣列的配置。
圖6是根據示例性實施例的積體電路5的示意性平面圖。詳細來說,除了不包括匯流排外,圖6所示積體電路5對應於圖2所示積體電路。
如圖6所說明,包括功能塊B01至功能塊B08的積體電路5可包括可供用於匯流排的子區(或通道子區)R01至子區R07。舉例來說,子區R01至子區R07可對應於通過沿功能塊B01至功能塊B08的邊緣對其中未放置功能塊B01至功能塊B08的區進行劃分而獲得的區。與兩個或更多個功能塊連接的匯流排可放置在包括子區R01至子區R07中的至少一個子區的區中。舉例來說,當同時參照圖2及圖6時,圖2所示第一匯流排BUS_1可放置在圖6所示子區R02、R03、R04、R06及R07中,且圖2所示第二匯流排BUS_2可放置在圖6所示子區R03、R04、R05及R01中。另外,像其中放置有第一匯流排BUS_1及第二匯流排BUS_2二者的子區R03及R04一樣,在一個子區中可放置有兩條或更多條匯流排。
圖3所示匯流排資訊提取器210可從輸入資料D100提取關於其中可放置匯流排的子區(例如,圖6所示子區R01至R07)的通道區資訊,並產生包括所述通道區資訊的匯流排資訊。在下文中,如將參照圖7至圖9闡述,利用匯流排資訊提取器210提取的通道區資訊可由緩衝器陣列產生器230用於產生緩衝器陣列或由緩衝器陣列放置器250用於放置緩衝器陣列、抑或由寫入流程270用於執行寫入操作。
圖7是根據示例性實施例排列的緩衝器陣列的示意圖。如上所述,在一個子區中可放置兩個或更多個緩衝器,且因此,在一個子區中可放置對應於不同的緩衝器的兩個或更多個緩衝器陣列。在圖7中,為便於說明,未說明與緩衝器陣列11至緩衝器陣列13連接的互連線,且所述互連線可分別與緩衝器陣列11至緩衝器陣列13連接並平行於X軸方向延伸。
參照圖7,功能塊B11及功能塊B12可包括在功能塊B11及功能塊B12的邊緣處放置的端蓋單元。因此,子區可為兩個功能塊B11與功能塊B12的端蓋單元之間的區。因此,如圖7所說明,功能塊B11與功能塊B12之間的距離可為端蓋單元之間的距離D10,且距離D10可實質上等於子區的寬度。因此,在圖7所示示例性實施例中,平行於X軸方向延伸的三條匯流排可處於距離D10內。
根據示例性實施例,圖3所示緩衝器陣列放置器250可將緩衝器陣列11至緩衝器陣列13放置成使得與緩衝器陣列11至緩衝器陣列13連接的互連線之間的重疊區域減小。舉例來說,如圖7所說明,緩衝器陣列11至緩衝器陣列13可在與互連線的延伸方向(X軸方向)垂直的方向上(即,在Y軸方向上)盡可能遠地相互間隔開。因此,兩個緩衝器陣列11及緩衝器陣列13可分別靠近通道區與功能塊B11及功能塊B12之間的邊界放置,且緩衝器陣列12可放置在通道區在Y軸方向上的中間部分周圍。
圖8A至圖8B示意性地說明根據示例性實施例排列的所產生緩衝器陣列的例子。根據示例性實施例,緩衝器陣列產生器230可將緩衝器陣列21至緩衝器陣列23產生成使得與緩衝器陣列21至緩衝器陣列23連接的互連線之間的重疊區域減小。為此,緩衝器陣列產生器230可基於關於子區的資訊及子區中的匯流排的匯流排資訊二者來產生匯流排中所包括的緩衝器陣列。
參照圖8A,緩衝器陣列21至緩衝器陣列23可具有在Y軸方向上減小的長度,以使得平行於X軸方向延伸的互連線之間的重疊區域減小。亦即,與圖7所說明的緩衝器陣列11至緩衝器陣列13相比,緩衝器陣列21至緩衝器陣列23可在X軸方向上具有更大的長度而在Y軸方向上具有更小的長度。舉例來說,緩衝器陣列產生器230可基於以下資訊來產生緩衝器陣列21至緩衝器陣列23:關於D20的資訊,D20是功能塊B21的端蓋單元與功能塊B22的端蓋單元之間的距離及子區的寬度二者;以及關於三條匯流排的資訊,例如,關於在每一匯流排中所包括的連接的數目的資訊。
相似地,當參照圖8B時,緩衝器陣列31至緩衝器陣列33可具有在X軸方向上減小的長度,以使得平行於Y軸方向延伸的互連線之間的重疊區域減小。亦即,與圖7所示緩衝器陣列11至緩衝器陣列13相比,圖8B所示緩衝器陣列31至緩衝器陣列33可在Y軸方向上具有更大的長度而在X軸方向上具有更小的長度。舉例來說,緩衝器陣列產生器230可基於以下資訊來產生緩衝器陣列31至緩衝器陣列33:關於D30的資訊,D30是功能塊B31的端蓋單元與功能塊B32的端蓋單元之間的距離及子區的寬度二者;以及關於三條匯流排的資訊,例如,關於在每一匯流排中所包括的連接的數目的資訊。
圖9是根據示例性實施例放置的緩衝器陣列的示意圖。
根據示例性實施例,每一匯流排可具有優先權,且利用圖3所示匯流排資訊提取器210產生的匯流排資訊可包括匯流排的優先權資訊。舉例來說,在由匯流排資訊提取器210從輸入資料D100提取的圖3所示輸入資料D100中可定義匯流排的優先權,或者匯流排資訊提取器210可基於輸入資料D100來確定匯流排的優先權。如以上參照圖3所闡述,輸入資料D100可包括關於通過匯流排傳送的信號的資訊,且匯流排資訊提取器210可基於關於信號的資訊來確定匯流排的優先權。舉例來說,匯流排資訊提取器210可為用於傳送相對高頻率的信號的匯流排設定比用於傳送相對低頻率的信號的匯流排高的優先權。圖3所示緩衝器陣列產生器230及緩衝器陣列放置器250可基於匯流排資訊中所包括的匯流排的優先權來產生或放置緩衝器陣列。
參照圖9,在具有寬度D40的子區中可存在平行於X軸延伸且包括相同數目的連接的兩條匯流排。在圖9所示示例性實施例中,這兩條匯流排可具有不同的優先權,且包括緩衝器陣列41的匯流排可具有比包括緩衝器陣列42的匯流排高的優先權。具有相對高的優先權的匯流排可用於例如傳送具有相對高的頻率及/或相對低的電壓電平的信號(所述信號更有可能因互連線之間的串擾而失真)。為了避免信號失真,可增大分別與用於傳送具有相對高的頻率或相對低的電壓電平的信號的匯流排的連接對應的互連線之間的距離。因此,具有相對高的優先權的匯流排可具有相對大的寬度。
根據示例性實施例,圖3所示緩衝器陣列產生器230可將緩衝器陣列產生成使得具有相對高的優先權的匯流排具有相對大的寬度。亦即,緩衝器陣列產生器230可將緩衝器陣列產生成使得在具有相對高的優先權的匯流排中所包括的互連線之間的距離相對大。舉例來說,如圖9所說明,緩衝器陣列41被包括於具有比其中包括緩衝器陣列42的匯流排高的優先權的匯流排中,且緩衝器陣列41在Y軸方向上的長度可大於緩衝器陣列42在Y軸方向上的長度。因此,與緩衝器陣列41連接的各互連線可比與緩衝器陣列42連接的互連線相互間隔開更大的距離。
圖10A及圖10B示意性地說明所佈線匯流排的例子。詳細來說,圖10A說明其中對在匯流排中所包括的連接各別地進行佈線的匯流排,且圖10B說明根據示例性實施例的通過基於匯流排的量化物理要求放置緩衝器陣列來進行佈線的匯流排。
參照圖10A,為了對在圖10A的左側平面圖中說明的左下端處的引腳與右上端處的引腳進行連接,可如圖10A的右側平面圖所說明對匯流排中所包括的多個連接各別地進行佈線。因此,如在圖10A的右側平面圖中所說明,可能無法統一對一條匯流排中所包括的各連接進行佈線,因而會增大經由所述匯流排傳送的信號的抖動。另外,隨著分別與各連接對應的互連線相互重疊(或相互交叉)的點的數目增大,可能會造成信號失真,且此外,可能會浪費佈線資源。
參照圖10B,如圖10B的左側平面圖所說明,基於利用匯流排資訊提取器210提取的匯流排資訊,可利用緩衝器陣列放置器250放置利用緩衝器陣列產生器230產生的多個緩衝器陣列51至緩衝器陣列55。在圖10B所說明的示例性實施例中,緩衝器陣列51至緩衝器陣列53可彼此相同。
根據示例性實施例,緩衝器陣列放置器250可以均勻的距離放置緩衝器陣列。舉例來說,如圖10B的左側平面圖所說明,相鄰的緩衝器陣列51與緩衝器陣列52之間在X軸方向上的距離D51可等於相鄰的緩衝器陣列52與緩衝器陣列53之間在X軸方向上的距離D52。相似地,相鄰的緩衝器陣列51與緩衝器陣列54之間在Y軸方向上的距離D53可等於相鄰的緩衝器陣列54與緩衝器陣列55之間在Y軸方向上的距離D54。圖3所示配線流程270可通過產生與在緩衝器陣列51至緩衝器陣列55中所包括的緩衝器連接的互連線而形成匯流排。
如圖10B的右側平面圖所說明,與在匯流排中所包括的所述多個連接分別對應的互連線可分別在Y軸方向及X軸方向上均勻地延伸。因此,可減少經由匯流排傳送的信號的抖動,且隨著互連線相互交叉的點的數目減少,可高效地利用佈線資源。
圖11是根據示例性實施例的程式200'的方塊圖。圖12是積體電路5'的示意性平面圖,其中說明了根據示例性實施例的圖11所示程式200'中所包括的虛擬佈線器220'的運行。像圖1及圖3所示程式200一樣,圖11所示程式200'可儲存在記憶體(例如,圖1所示隨機存取記憶體140)中且通過中央處理器110來執行。與圖3所示程式200相比,圖11所示程式200'可進一步包括虛擬佈線器220'。圖11所示程式200'中所包括的流程可執行與圖3所示程式200中所包括的對應流程相同或相似的操作。
參照圖11,根據示例性實施例,虛擬佈線器220'可產生虛擬匯流排線路。舉例來說,匯流排資訊提取器210'可基於由匯流排資訊提取器210'從輸入資料D100'提取的匯流排資訊來產生對匯流排的起點與到達點進行連接的虛擬匯流排線路。虛擬匯流排線路可用於指明緩衝器陣列及互連線的放置位置。舉例來說,如圖12所說明,虛擬佈線器220'可產生對功能塊B01中所包括的單元群組與功能塊B08的單元群組進行連接的第一虛擬匯流排線路VL_1。另外,虛擬佈線器220'可產生對功能塊B04中所包括的單元群組與功能塊B06中所包括的單元群組進行連接的虛擬匯流排線路VL_2。
根據示例性實施例,虛擬佈線器220'可將虛擬匯流排線路產生成使得各匯流排之間的重疊區域最小化。舉例來說,虛擬佈線器220'可基於每一匯流排中所包括的連接的數目來計算每一匯流排的寬度,並基於所計算寬度來產生虛擬匯流排線路。虛擬匯流排線路可具有匯流排的所計算寬度,或者可產生與匯流排的中心線對應的虛擬匯流排線路。
基於利用虛擬佈線器220'產生的虛擬匯流排線路,緩衝器陣列產生器230'可產生緩衝器陣列,且緩衝器陣列放置器250'可放置緩衝器陣列。舉例來說,緩衝器陣列產生器230'可基於包括緩衝器陣列的匯流排的虛擬匯流排線路及放置在子區中的另一虛擬匯流排線路來產生緩衝器陣列。亦即,緩衝器陣列產生器230'可基於與兩條或更多條匯流排對應的虛擬匯流排線路來識別放置在子區中的匯流排,並如以上例如參照圖7至圖9所闡述在放置有多條匯流排的子區中產生分別在所述多條匯流排中所包括的緩衝器陣列。另外,緩衝器陣列放置器250'可將緩衝器陣列放置在虛擬匯流排線路上。舉例來說,如以上參照圖10B所闡述,緩衝器陣列放置器250'可將緩衝器陣列放置在虛擬匯流排線路的轉捩點處,或將一系列緩衝器陣列以相等的距離放置在X軸方向上或Y軸方向上。
圖13A及圖13B是示出在根據示例性實施例對匯流排進行佈線時所使用的佈線資源的曲線圖。詳細來說,圖13A說明分別在用於形成匯流排的配線層L11至配線層L18中形成的圖案的平均長度,且圖13B說明在不同的水準高度處形成的用於形成匯流排的通路V11至通路V17的平均數目的比率。
參照圖13A,圖13A所示曲線圖表明,根據示例性實施例的通過產生緩衝器陣列進行佈線的匯流排具有比其中對匯流排中所包括的各連接各別地進行佈線的匯流排短的圖案長度。亦即,根據示例性實施例進行佈線的匯流排可具有減小的長度,且因此,不僅對匯流排中所包括的連接進行了統一佈線,而且也可減小經由匯流排傳送的信號的延遲。另外,隨著圖案的長度縮短,也可減少信號通過圖案而受到串擾影響的區段。
參照圖13B,通過產生根據示例性實施例的緩衝器陣列來進行佈線的匯流排所包括的通路數目減小。然而,在多個不同的水準高度處的通路中,可在某些水準高度處使用相對較多數目的通路。亦即,圖13B所示曲線圖表明:儘管在其中對連接各別地進行佈線的匯流排中均勻地使用不同水準高度處的多個通路,然而在根據示例性實施例進行佈線的匯流排中,會相對更頻繁地使用不同的水準高度中的某些水準高度處的通路(例如,圖13B所示通路V11至通路V14)。參照圖13B所示曲線圖,顯然,當多條互連線相互重疊時,使用多個不同的水準高度處的通路,且因此在根據示例性實施例進行佈線的匯流排中,在與所述匯流排中所包括的連接對應的各互連線之間或在不同匯流排的各互連線之間的重疊區域會減小。亦即,經由根據示例性實施例進行佈線的匯流排傳送的各信號之間的串擾及通路電阻可減小。
圖14是說明根據示例性實施例對匯流排進行佈線的方法的流程圖。如圖14所說明,匯流排佈線方法可包括多個操作S10、S30、S50、S70、S90、S91及S93。舉例來說,當圖1所示計算系統100的中央處理器110執行圖3所示程式200時,可執行圖14所示的操作S10、S30、S50、S70及S90,且以下也將參照圖3加以闡述匯流排佈線方法。
參照圖14,在操作S10中,可執行從輸入資料D10c提取匯流排資訊的操作。舉例來說,如上所述,輸入資料D10c可包括關於在積體電路中對匯流排進行佈線的資訊,且匯流排資訊提取器210可從輸入資料D10c中提取包括對於匯流排的物理要求的匯流排資訊。物理要求可包括例如關於匯流排的起點及到達點的資訊,關於通道區(即,關於可放置匯流排的區域)的通道區資訊,或關於經由所述匯流排傳送的信號的資訊。可基於利用匯流排資訊提取器210提取的匯流排資訊來確定對匯流排進行佈線的優選項(preference),且匯流排資訊可為方法的後續操作提供基礎。
在操作S30中,可執行產生其中在匯流排中所包括的緩衝器規則地排列的緩衝器陣列的操作。舉例來說,緩衝器陣列產生器230可基於利用匯流排資訊提取器210提取的匯流排資訊來產生其中緩衝器規則地間隔開的緩衝器陣列。緩衝器陣列可包括與在匯流排中所包括的連接的數目相同數目的緩衝器,且在緩衝器陣列中所包括的緩衝器的類型及/或緩衝器陣列的配置可基於匯流排資訊來預先設定,或可利用緩衝器陣列產生器230基於在匯流排資訊中所包括的物理要求來確定。另外,在匯流排中所包括的各緩衝器陣列可為不同的或相同的。
在操作S50中,可執行放置至少一個緩衝器陣列的操作。舉例來說,緩衝器陣列放置器250可將利用緩衝器陣列產生器230產生的至少一個緩衝器陣列放置在積體電路的佈局中。緩衝器陣列可放置在匯流排的轉捩點處並被放置成使得相鄰的緩衝器陣列以均勻地距離排列。另外,緩衝器陣列可通過考慮其他匯流排的緩衝器陣列來放置並被放置成使得與其他匯流排的重疊區域最小化。
在操作S70中,可執行產生連接至緩衝器陣列的緩衝器的互連線的操作。舉例來說,配線流程270可產生連接至在利用緩衝器陣列放置器250放置的至少一個緩衝器陣列中所包括的緩衝器的互連線。如以上參照圖13A及圖13B所闡述,根據示例性實施例產生的互連線可包括長度縮短且通路數目減小的圖案。
在操作S90中,可執行產生包括關於緩衝器及互連線的物理資訊的輸出資料D90的操作。舉例來說,輸出資料D90可包括與緩衝器對應的標準單元的名稱及緩衝器的座標資訊以及表示緩衝器佈局及互連線佈局的資訊。輸出資料D90可用於在半導體工藝中實作匯流排。
在操作S91中,可執行產生遮罩的操作。舉例來說,可依據輸出資料D90製造至少一遮罩以在積體電路中建造緩衝器及互連線。所述至少一遮罩可基於包括在輸出資料D90中關於緩衝器及互連線的物理資訊來製造。
在操作S93中,可執行產生積體電路的操作。舉例來說,可使用在操作S91中製造的所述至少一遮罩在半導體製程中製造積體電路。因此,積體電路可包括對應於在輸出資料D90中所定義的緩衝器及互連線的結構。
圖15及圖16是根據示例性實施例的圖14所示操作S10的示例性操作S10a及示例性操作S10b的流程圖。如以上參照圖14所闡述,在操作S10中,可執行從輸入資料D10c提取匯流排資訊的操作。根據示例性實施例,可利用圖3所示匯流排資訊提取器210執行圖15及圖16中說明的操作。
參照圖15,在操作S11a中,可執行接收輸入資料D10a的操作。舉例來說,圖1所示儲存裝置160可儲存輸入資料D10a,且匯流排資訊提取器210可將儲存裝置160中所儲存的輸入資料D10a載入至隨機存取記憶體140。也可通過圖1所示輸入/輸出裝置120或網路介面130接收輸入資料10a,且匯流排資訊提取器210可將所接收的輸入資料D10a載入至隨機存取記憶體140。
在操作S12a中,可執行從輸入資料D10a提取匯流排的物理要求的操作。如以上參照圖4所闡述,物理要求可包括要求群組G1及可選要求群組G2。可對要求群組G1及可選要求群組G2中所包括的物理要求的清單進行預定義,且匯流排資訊提取器210可基於預定義的物理要求的清單來從輸入資料D10a提取物理要求,並設定物理要求的值。
在操作S13a中,可執行判斷是否存在未設定物理要求的操作。亦即,可判斷是否存在未基於輸入資料D10a進行設定的物理要求。若不存在未設定的物理要求,則可在操作S17a中執行產生包括物理要求的匯流排資訊的操作。另一方面,若存在未設定的物理要求,則在操作S14a中,可執行判斷在可選要求群組(例如,圖4所示可選要求群組G2)中是否包括未設定的物理要求的操作。
在操作S14a中,當確定在可選要求群組中不包括未設定的物理要求時,在操作S15a中可執行輸出包括未設定的物理要求的錯誤資訊(error message)的操作。亦即,如果未從輸入資料10a設定要求群組中所包括的物理要求,則可不執行後續操作(例如,圖14所示操作S30、S50、S70及S90),且因此,匯流排資訊提取器210可例如通過圖1所示輸入/輸出裝置120輸出錯誤資訊。
當在操作S14a中確定在可選要求群組中包括未設定的物理要求時,則在操作S16a中,可執行基於預設資料D11將未設定的物理要求設定成預設值的操作。如以上參照圖4所闡述,可預先準備用於定義物理要求的預設值的預設資料D11,且基於預設資料D11,匯流排資訊提取器210可將在可選要求群組中包括的且未設定的物理要求設定成預設值。接下來,在操作S17a中,可執行產生包括物理要求的匯流排資訊的操作,且匯流排資訊可包括被設定成預設值的物理要求。
參照圖16,在操作S11b中,可執行接收輸入資料D10b的操作。接下來,在操作S12b中,可執行提取關於經由匯流排傳送的信號的資訊的操作。舉例來說,輸入資料D10b可包括關於經由匯流排傳送的信號的資訊,例如信號的電壓電平、頻率及上升時間及下降時間。匯流排資訊提取器210可從輸入資料D10b提取關於信號的資訊。
在操作S13b中,可基於關於信號的資訊來執行確定匯流排的優先權的操作。匯流排的優先權可指代匯流排針對其他匯流排的重要性。亦即,基於關於信號的資訊,匯流排資訊提取器210可確定匯流排的優先權。因此,可將在傳送信號時更有可能使信號失真的匯流排確定成具有更高的優先權。另外,可將用於傳送具有相對高的頻率或相對低的電壓電平的信號的匯流排確定成具有相對高的優先權。
在操作S14b中,可執行產生包括優先權資訊的匯流排資訊的操作。如以上參照圖9所闡述,在匯流排資訊中所包括的優先權資訊可例如由圖3所示緩衝器陣列產生器230用於產生緩衝器陣列。可將在具有相對高的優先權的緩衝器中所包括的緩衝器陣列產生成使得與連接對應的互連線以相對大的距離排列。
圖17是根據示例性實施例對匯流排進行佈線的方法的流程圖。如圖17所說明,匯流排佈線方法可包括多個操作S10'、S30'、S50'、S70'、S90'、S91'及S93'。舉例來說,當圖1所示計算系統100的中央處理器110執行圖11所示程式200'時,可執行圖17所示的操作S10'、S20'、S30'、S50'、S70'及S90',且以下也將參照圖11加以闡述匯流排佈線方法。
與圖14所示匯流排佈線方法相比,圖17所示匯流排佈線方法可進一步包括操作S20'。亦即,在其中從輸入資料D10'提取匯流排資訊的操作S10'之後,在操作S20'中,可執行對匯流排的起點與到達點進行連接的虛擬匯流排線路的操作。如以上參照圖11及圖12所闡述,虛擬匯流排線路可指明緩衝器陣列及互連線的放置位置。舉例來說,圖11所示虛擬佈線器220'可基於關於多條匯流排的匯流排資訊來產生對匯流排的起點與到達點進行連接的虛擬匯流排線路。虛擬佈線器220'可基於匯流排資訊來產生虛擬匯流排線路以使得各匯流排之間的重疊區域最小化。舉例來說,虛擬匯流排線路可具有基於在匯流排中所包括的連接的數目而利用虛擬佈線器220'計算的匯流排的寬度,且虛擬佈線器220'可基於虛擬匯流排線路的寬度來放置虛擬匯流排線路。
在操作S30'中,可基於匯流排資訊及虛擬匯流排線路來執行產生其中在匯流排中所包括的緩衝器規則地排列的緩衝器陣列的操作,且在操作S50'中,可基於匯流排資訊及虛擬匯流排線路來執行放置至少一個緩衝器陣列的操作。接下來,在操作S70'中,可基於匯流排資訊及虛擬匯流排線路來執行產生連接至緩衝器陣列的緩衝器的互連線的操作,且在操作S90'中,可執行產生包括關於緩衝器及互連線的物理資訊的輸出資料D90'的操作。在操作S91'中,可基於輸出資料D90'執行產生至少一遮罩的操作,且在操作S93'中,可依據所述至少一遮罩執行產生積體電路的操作。
儘管已參照本發明概念的示例性實施例並使用具體術語特別示出並闡述了本發明概念,然而提供這些示例性實施例是為了使本公開內容將充分傳達本發明概念,而並非出於限制目的。因此,對所屬領域的通常知識者將顯而易見,可在本文中作出各種變化及其他等效形式。因此,本發明概念的範圍並非由本詳細說明界定,而是由隨附的申請專利範圍界定。
3、5、5'‧‧‧積體電路
10a、10b、10c、11、12、13、21、22、23、31、32、33、41、42、51、52、53、54、55‧‧‧緩衝器陣列
100‧‧‧計算系統
110‧‧‧中央處理器
120‧‧‧輸入/輸出裝置
130‧‧‧網路介面
140‧‧‧隨機存取記憶體
150‧‧‧唯讀記憶體
160‧‧‧儲存裝置
170‧‧‧匯流排
200、200'‧‧‧程式
210‧‧‧流程、匯流排資訊提取器
210'‧‧‧匯流排資訊提取器
220'‧‧‧虛擬佈線器
230‧‧‧緩衝器陣列產生器/流程
230'‧‧‧緩衝器陣列產生器
250‧‧‧緩衝器陣列放置器/流程
250'‧‧‧緩衝器陣列放置器
270‧‧‧配線流程/流程
270'‧‧‧配線流程
290‧‧‧輸出資料產生器/流程
290'‧‧‧輸出資料產生器
B01‧‧‧第一功能塊/功能塊
B02‧‧‧第二功能塊/功能塊
B03‧‧‧第三功能塊/功能塊
B04‧‧‧第四功能塊/功能塊
B05‧‧‧第五功能塊/功能塊
B06‧‧‧第六功能塊/功能塊
B07‧‧‧第七功能塊/功能塊
B08‧‧‧第八功能塊/功能塊
B11、B12、B21、B22、B31、B32、B41、B42‧‧‧功能塊
BUS_1‧‧‧第一匯流排
BUS_2‧‧‧第二匯流排
D10‧‧‧距離
D20、D30、D40、D51、D52、D53、D54‧‧‧距離
D10'、D10a、D10b、D10c、D11、D100、D100'‧‧‧輸入資料
D90、D90'、D900、D900'‧‧‧輸出資料
D200‧‧‧匯流排資訊
G1‧‧‧要求群組
G2‧‧‧可選要求群組
R01、R02、R03、R04、R05、R06、R07‧‧‧子區/通道子區
S10、S10'、S10a、S10b、S11a、S11b、S12a、S12b、S13a、S13b、S14a、S14b、S15a、S16a、S17a、S20'、S30'、S50'、S70'、S90'、S91'、S93'、S30、S50、S70、S90、S91、S93‧‧‧操作
X、Y‧‧‧軸
VL_1‧‧‧第一虛擬匯流排線路
VL_2‧‧‧虛擬匯流排線路
圖1是根據示例性實施例的包括儲存有程式的記憶體的計算系統的方塊圖。 圖2是根據示例性實施例的積體電路的示意性平面圖。 圖3是根據示例性實施例的圖1所示程式的方塊圖。 圖4說明根據示例性實施例利用圖3所示匯流排資訊提取器提取的匯流排資訊。 圖5A至圖5C示意性地說明根據示例性實施例利用圖3所示緩衝器陣列產生器產生的緩衝器陣列的例子。 圖6是根據示例性實施例的積體電路的示意性平面圖。 圖7是根據示例性實施例放置的緩衝器陣列的示意圖。 圖8A及圖8B是根據示例性實施例放置的緩衝器陣列的示意圖。 圖9是根據示例性實施例放置的緩衝器陣列的示意圖。 圖10A及圖10B示意性地說明根據示例性實施例的所佈線匯流排的例子。 圖11是根據示例性實施例的程式的方塊圖。 圖12是積體電路的示意性平面圖,其中說明了根據示例性實施例的圖11所示程式中所包括的虛擬佈線器的運行。 圖13A及圖13B是示出在根據示例性實施例對匯流排進行佈線時所使用的佈線資源的曲線圖。 圖14是根據示例性實施例對匯流排進行佈線的方法的流程圖。 圖15及圖16是根據示例性實施例的圖14所示操作S10的例子的流程圖。 圖17是根據示例性實施例對匯流排進行佈線的方法的流程圖。
Claims (25)
- 一種用於在積體電路的佈局中對包括緩衝器的匯流排進行佈線的計算系統,所述計算系統包括: 記憶體,被配置成儲存資訊,所述資訊包括程式流程;以及 處理單元,被配置成存取所述記憶體並執行所述程式流程, 所述程式流程包括: 匯流排資訊提取器,被配置成從輸入資料中提取匯流排資訊,所述匯流排資訊包括對於所述匯流排的物理要求; 緩衝器陣列產生器,被配置成基於所述匯流排資訊來產生緩衝器陣列,在所述緩衝器陣列中,所述匯流排中所包括的各緩衝器規則地間隔開; 緩衝器陣列放置器,被配置成基於所述匯流排資訊來將至少一個緩衝器陣列放置於所述積體電路的所述佈局中;以及 配線流程,被配置成基於所述匯流排資訊來產生與所述至少一個緩衝器陣列中所包括的緩衝器的互連線。
- 如申請專利範圍第1項所述的計算系統,其中 所述物理要求包括要求群組及可選要求群組,且 所述匯流排資訊提取器被配置成通過將所述可選要求群組中所包括的物理要求中未在所述輸入資料中設定的物理要求設定成預設值來提取所述匯流排資訊。
- 如申請專利範圍第2項所述的計算系統,其中 所述要求群組包括對於所述匯流排的起點及到達點的物理要求,且 所述可選要求群組包括所述緩衝器的類型、所述緩衝器陣列的配置、所述緩衝器陣列中的時鐘緩衝器的位置及各緩衝器陣列之間的距離中的至少一個。
- 如申請專利範圍第3項所述的計算系統,其中 所述程式流程進一步包括虛擬佈線器,所述虛擬佈線器被配置成基於對於所述匯流排的所述起點及所述到達點的所述物理要求來產生對所述起點與所述到達點進行連接的虛擬匯流排線路,且 所述緩衝器陣列產生器被配置成基於所述虛擬匯流排線路來放置所述至少一個緩衝器陣列。
- 如申請專利範圍第1項所述的計算系統,其中 所述匯流排資訊包括: 關於可供用於所述匯流排的子區的通道區資訊;以及 分別關於所述第一匯流排及所述第二匯流排的第一匯流排資訊及第二匯流排資訊,所述第一匯流排及所述第二匯流排處於所述子區中的至少一個子區中,且 所述緩衝器陣列產生器被配置成基於所述通道區資訊以及所述第一匯流排資訊及所述第二匯流排資訊來產生第一緩衝器陣列及第二緩衝器陣列,所述第一匯流排中所包括的緩衝器位於所述第一緩衝器陣列中,且所述第二匯流排中所包括的緩衝器位於所述第二緩衝器陣列中。
- 如申請專利範圍第5項所述的計算系統,其中所述緩衝器陣列產生器被配置成將所述第一緩衝器陣列的配置及所述第二緩衝器陣列的配置確定成使得與所述第一緩衝器陣列中所包括的緩衝器連接的第一互連線和與所述第二緩衝器陣列中所包括的緩衝器連接的第二互連線之間在所述至少一個子區中的重疊區域最小化。
- 如申請專利範圍第5項所述的計算系統,其中所述緩衝器陣列放置器被配置成將所述第一緩衝器陣列及所述第二緩衝器陣列放置成使得與所述第一緩衝器陣列中所包括的緩衝器連接的第一互連線和與所述第二緩衝器陣列中所包括的緩衝器連接的第二互連線之間在所述至少一個子區中的重疊區域最小化。
- 如申請專利範圍第5項所述的計算系統,其中 所述第一匯流排資訊及所述第二匯流排資訊分別包括所述第一匯流排的優先權資訊及所述第二匯流排的優先權資訊,且 所述緩衝器陣列產生器被配置成基於所述第一匯流排資訊及所述第二匯流排資訊來將所述第一緩衝器陣列的配置及所述第二緩衝器陣列的配置確定成使得在優先權高於所述第二匯流排的第一匯流排中所包括的互連線之間的距離大於在所述第二匯流排中所包括的互連線之間的距離。
- 如申請專利範圍第8項所述的計算系統,其中 所述輸入資料包括關於經由所述第一匯流排及所述第二匯流排傳送的信號的資訊,且 所述匯流排資訊提取器被配置成基於關於信號的所述資訊來產生所述第一匯流排及所述第二匯流排的優先權資訊。
- 如申請專利範圍第1項所述的計算系統,其中所述緩衝器陣列放置器被配置成將兩個或更多個緩衝器陣列放置成使得相鄰的緩衝器陣列相互間隔開所期望的距離。
- 如申請專利範圍第1項所述的計算系統,其中所述緩衝器陣列放置器被配置成將緩衝器陣列放置在所述匯流排的轉捩點處。
- 如申請專利範圍第1項所述的計算系統,其中 所述匯流排資訊提取器被配置成從所述輸入資料提取對於佈線資源的物理要求,且 所述配線流程被配置成從受到對於所述佈線資源的所述物理要求限制的層來產生所述互連線。
- 如申請專利範圍第1項所述的計算系統,其中每一所述緩衝器陣列中所包括的緩衝器的數目等於所述匯流排的連接的數目。
- 如申請專利範圍第1項所述的計算系統,其中所述程式流程進一步包括: 輸出資料產生器,被配置成產生輸出資料,所述輸出資料包括關於所述緩衝器陣列的所述緩衝器及所述互連線的物理資訊。
- 一種在積體電路的佈局中對包括緩衝器的匯流排進行佈線的方法,其中所述方法是在計算系統上執行且包括: 從輸入資料中提取匯流排資訊,所述匯流排資訊包括對於所述匯流排的物理要求; 基於所述匯流排資訊來產生緩衝器陣列,在所述緩衝器陣列中,所述匯流排中所包括的各緩衝器規則地排列; 基於所述匯流排資訊來將至少一個緩衝器陣列放置於所述積體電路的所述佈局中;以及 基於所述匯流排資訊來產生與所述至少一個緩衝器陣列中所包括的緩衝器連接的互連線。
- 如申請專利範圍第15項所述的方法,其中 所述物理要求包括要求群組及可選要求群組,且 所述提取匯流排資訊包括: 從所述輸入資料提取所述匯流排的物理要求; 判斷所述匯流排的所述物理要求中是否有未設定的物理要求包括在所述可選要求群組中; 將所述未設定的物理要求設定成預設值;以及 產生包括被設定成所述預設值的所述物理要求的匯流排資訊。
- 如申請專利範圍第15項所述的方法,其中 所述匯流排資訊包括分別關於所述第一匯流排的第一匯流排資訊及關於所述第二匯流排的第二匯流排資訊,且 所述提取所述匯流排資訊包括: 提取關於經由所述第一匯流排及所述第二匯流排傳送的信號的資訊; 基於關於信號的所述資訊來確定所述第一匯流排的優先權及所述第二匯流排的優先權;以及 產生分別包括所述第一匯流排的所述優先權及所述第二匯流排的所述優先權的所述第一匯流排資訊及所述第二匯流排資訊。
- 如申請專利範圍第15項所述的方法,其中進一步包括: 基於對於所述匯流排的起點及到達點的物理要求來產生對所述匯流排的所述起點與所述到達點進行連接的虛擬匯流排線路, 其中所述產生所述緩衝器陣列包括基於所述虛擬匯流排線路來產生所述至少一個緩衝器陣列。
- 如申請專利範圍第15項所述的方法,其中 所述匯流排資訊包括分別關於第一匯流排及第二匯流排的第一匯流排資訊及第二匯流排資訊,且 所述產生所述緩衝器陣列包括將所述第一緩衝器陣列的配置及所述第二緩衝器陣列的配置確定成使得與所述第一匯流排的所述第一緩衝器陣列中所包括的緩衝器連接的第一互連線和與所述第二匯流排的所述第二緩衝器陣列中所包括的緩衝器連接的第二互連線之間的重疊區域最小化。
- 如申請專利範圍第15項所述的方法,其中 所述匯流排資訊包括分別關於第一匯流排及第二匯流排的第一匯流排資訊及第二匯流排資訊,且 所述放置所述緩衝器陣列包括將所述第一緩衝器陣列及所述第二緩衝器陣列放置成使得與所述第一匯流排的所述第一緩衝器陣列中所包括的緩衝器連接的第一互連線和與所述第二匯流排的所述第二緩衝器陣列中所包括的緩衝器連接的第二互連線之間的重疊區域最小化。
- 一種積體電路中的佈線系統,所述佈線系統包括: 至少一條匯流排,具有物理要求且包括多個緩衝器陣列,所述多個緩衝器陣列中的每一個包括多個緩衝器;以及 多個功能塊,通過所述至少一條匯流排而相互連接,所述多個功能塊中的每一個被配置成通過所述至少一條匯流排接收待處理資料或傳送已處理資料; 所述多個緩衝器陣列中的每一個緩衝器陣列中所包括的所述多個緩衝器基於所述物理要求而規則地間隔開;且 在所述多個緩衝器陣列中的每一緩衝器陣列中,所述多個緩衝器基於所述物理要求進行互連。
- 如申請專利範圍第21項所述的佈線系統,其中所述物理要求包括以下中的至少一個: 關於所述至少一條匯流排的起點及到達點的資訊; 關於能夠在其中放置所述至少一條匯流排的通道區域的通道區域資訊; 所述緩衝器陣列中所包括的緩衝器的類型; 所述緩衝器陣列的配置; 包括所述至少一條匯流排的互連線的配線層; 所述互連線中所包括的通路; 所述緩衝器陣列中的時鐘緩衝器的位置;以及 各緩衝器陣列之間的距離。
- 如申請專利範圍第21項所述的佈線系統,其中所述多個功能塊中的至少一個功能塊包括: 記憶體,被配置成儲存資訊,所述資訊包括程式流程;以及 處理單元,被配置成存取所述記憶體並執行所述程式流程。
- 如申請專利範圍第21項所述的佈線系統,其中所述多個緩衝器陣列中的至少一個放置在所述至少一條匯流排的轉捩點處。
- 如申請專利範圍第21項所述的佈線系統,其中與第一緩衝器陣列中所包括的緩衝器連接的第一互連線和與第二緩衝器陣列中所包括的緩衝器連接的第二互連線之間的重疊區域被最小化。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ??10-2016-0136576 | 2016-10-20 | ||
| KR1020160136576A KR102864136B1 (ko) | 2016-10-20 | 2016-10-20 | 버퍼를 포함하는 버스를 라우팅하기 위한 시스템 및 방법 |
| KR10-2016-0136576 | 2016-10-20 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201816641A true TW201816641A (zh) | 2018-05-01 |
| TWI751189B TWI751189B (zh) | 2022-01-01 |
Family
ID=61971498
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW106129230A TWI751189B (zh) | 2016-10-20 | 2017-08-29 | 用於對匯流排進行佈線的計算系統及方法以及佈線系統 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US10579554B2 (zh) |
| KR (1) | KR102864136B1 (zh) |
| CN (1) | CN107967228B (zh) |
| TW (1) | TWI751189B (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102864136B1 (ko) * | 2016-10-20 | 2025-09-23 | 삼성전자주식회사 | 버퍼를 포함하는 버스를 라우팅하기 위한 시스템 및 방법 |
| US11151298B1 (en) * | 2019-11-21 | 2021-10-19 | Xilinx, Inc. | Metal track routing with buffer bank insertion |
| US11424250B2 (en) * | 2020-08-27 | 2022-08-23 | Qualcomm Incorporated | Memory |
| CN112181878B (zh) * | 2020-08-28 | 2022-04-08 | 珠海欧比特宇航科技股份有限公司 | RapidIO接口架构和数据处理方法 |
| CN117454832B (zh) * | 2023-10-10 | 2024-06-11 | 北京市合芯数字科技有限公司 | 电路芯片中数据通道的布线方法、装置、设备及介质 |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2882359B2 (ja) | 1996-04-27 | 1999-04-12 | 日本電気株式会社 | レイアウト設計装置 |
| US6069490A (en) | 1997-12-02 | 2000-05-30 | Xilinx, Inc. | Routing architecture using a direct connect routing mesh |
| US6678645B1 (en) | 1999-10-28 | 2004-01-13 | Advantest Corp. | Method and apparatus for SoC design validation |
| US7356639B2 (en) * | 2000-01-05 | 2008-04-08 | Rambus Inc. | Configurable width buffered module having a bypass circuit |
| US9141390B2 (en) * | 2001-03-05 | 2015-09-22 | Pact Xpp Technologies Ag | Method of processing data with an array of data processors according to application ID |
| US7523111B2 (en) * | 2002-12-02 | 2009-04-21 | Silverbrook Research Pty Ltd | Labelling of secret information |
| JP2004228164A (ja) * | 2003-01-20 | 2004-08-12 | Toshiba Corp | 半導体集積回路及びその製造方法 |
| WO2005017909A1 (ja) * | 2003-08-18 | 2005-02-24 | Fujitsu Limited | 不揮発性半導体メモリ |
| JP2006146601A (ja) | 2004-11-19 | 2006-06-08 | Oki Electric Ind Co Ltd | 半導体集積回路のレイアウト設計方法 |
| US9213680B2 (en) * | 2005-01-14 | 2015-12-15 | International Business Machines Corporation | Method and structure for fast in-place transformation of standard full and packed matrix data formats |
| WO2008091575A2 (en) | 2007-01-22 | 2008-07-31 | Vast Systems Technology Corporation | Method and system for modeling a bus for a system design incorporating one or more programmable processors |
| US7844630B2 (en) * | 2007-09-01 | 2010-11-30 | International Business Machines Corporation | Method and structure for fast in-place transformation of standard full and packed matrix data formats |
| US8060849B2 (en) | 2008-02-26 | 2011-11-15 | Mentor Graphics Corporation | Automatic bus routing |
| US7796446B2 (en) * | 2008-09-19 | 2010-09-14 | Qimonda Ag | Memory dies for flexible use and method for configuring memory dies |
| JP5347482B2 (ja) | 2008-12-18 | 2013-11-20 | 富士通セミコンダクター株式会社 | 性能評価装置、性能評価方法及びシミュレーションプログラム |
| US8146039B2 (en) * | 2008-12-19 | 2012-03-27 | Freescale Semiconductor, Inc. | Optimal distance based buffer tree for data path and clock |
| US9477636B2 (en) * | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
| TW201310241A (zh) | 2011-08-25 | 2013-03-01 | Nat Univ Tsing Hua | 全匯流排之交易層級模擬方法以快速與精確的爭用分析 |
| KR20130125036A (ko) | 2012-05-08 | 2013-11-18 | 삼성전자주식회사 | 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템 |
| JP5814867B2 (ja) * | 2012-06-27 | 2015-11-17 | 株式会社東芝 | 半導体記憶装置 |
| US9449137B2 (en) | 2012-09-17 | 2016-09-20 | Texas Instruments Incorporated | Buffered conduits for high throughput channel implementation, crosstalk de-sensitization and late timing fixes on skew sensitive buses |
| TW201603027A (zh) * | 2013-09-09 | 2016-01-16 | Toshiba Kk | 半導體記憶裝置、記憶體系統、及資料寫入方法 |
| CN105960669A (zh) * | 2014-02-05 | 2016-09-21 | 寇平公司 | 用于微型显示设备的列总线驱动方法 |
| US9312837B2 (en) | 2014-08-05 | 2016-04-12 | Apple Inc. | Dynamic margin tuning for controlling custom circuits and memories |
| KR102187640B1 (ko) | 2014-10-22 | 2020-12-08 | 삼성전자주식회사 | 타이밍 분석기의 타이밍 정합 방법 및 그것을 이용한 집적회로 설계 방법 |
| KR102864136B1 (ko) * | 2016-10-20 | 2025-09-23 | 삼성전자주식회사 | 버퍼를 포함하는 버스를 라우팅하기 위한 시스템 및 방법 |
-
2016
- 2016-10-20 KR KR1020160136576A patent/KR102864136B1/ko active Active
-
2017
- 2017-06-08 US US15/617,117 patent/US10579554B2/en active Active
- 2017-08-07 CN CN201710666896.0A patent/CN107967228B/zh active Active
- 2017-08-29 TW TW106129230A patent/TWI751189B/zh active
-
2020
- 2020-01-30 US US16/776,755 patent/US11138136B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| KR20180043626A (ko) | 2018-04-30 |
| US11138136B2 (en) | 2021-10-05 |
| CN107967228A (zh) | 2018-04-27 |
| US20180113820A1 (en) | 2018-04-26 |
| US20200167296A1 (en) | 2020-05-28 |
| KR102864136B1 (ko) | 2025-09-23 |
| CN107967228B (zh) | 2023-06-13 |
| US10579554B2 (en) | 2020-03-03 |
| TWI751189B (zh) | 2022-01-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI751189B (zh) | 用於對匯流排進行佈線的計算系統及方法以及佈線系統 | |
| US7945764B2 (en) | Processing unit incorporating multirate execution unit | |
| US9444702B1 (en) | System and method for visualization of NoC performance based on simulation output | |
| JP5363064B2 (ja) | ネットワーク・オン・チップ(noc)上のソフトウェア・パイプライン化の方法、プログラムおよび装置 | |
| CN111630505B (zh) | 深度学习加速器系统及其方法 | |
| EP3729261B1 (en) | A centralized-distributed mixed organization of shared memory for neural network processing | |
| TW201428464A (zh) | 分散式晶片層次的電力系統 | |
| Qiao et al. | FANS: FPGA-accelerated near-storage sorting | |
| Alimi et al. | Network-on-chip topologies: Potentials, technical challenges, recent advances and research direction | |
| CN110187969A (zh) | 一种基于gpu的分布式大数据并行计算方法 | |
| Schaffner et al. | On the feasibility of FPGA acceleration of molecular dynamics simulations | |
| Leyva et al. | OpenPiton optimizations towards high performance manycores | |
| WO2016100007A1 (en) | Refactoring data flow applications without source code changes or recompilation | |
| Chen et al. | Efficient Heterogeneous Large Language Model Decoding with Model-Attention Disaggregation | |
| Xu et al. | Optimal memory controller placement for chip multiprocessor | |
| US11176296B1 (en) | Unified data model for heterogeneous integrated circuit | |
| CN106709116A (zh) | 一种生成rtl级ip核方法及装置 | |
| Yamakura et al. | The evaluation of partial reconfiguration for a multi-board fpga system ficsw | |
| CN104679529B (zh) | Fpga芯片时钟线网的布局方法 | |
| CN101539849B (zh) | 一种处理器以及一种寄存器选通方法 | |
| Hartono et al. | A multicore system using NoC communication for parallel coarse-grain data processing | |
| JP6777016B2 (ja) | 情報処理装置及び情報処理システム | |
| CN112100793B (zh) | 用于重定时流水线的基于条带的自选通 | |
| CN109542623A (zh) | 虚拟系统在服务器中的优化部署方法 | |
| Fu et al. | Optimizing Heterogeneous Compute-in-Memory with Hybrid Dataflow and In-Network Reduction for Vision Transformer |