TWI447578B - 用於以封包切換為基礎的邏輯複製之方法和系統 - Google Patents
用於以封包切換為基礎的邏輯複製之方法和系統 Download PDFInfo
- Publication number
- TWI447578B TWI447578B TW100102408A TW100102408A TWI447578B TW I447578 B TWI447578 B TW I447578B TW 100102408 A TW100102408 A TW 100102408A TW 100102408 A TW100102408 A TW 100102408A TW I447578 B TWI447578 B TW I447578B
- Authority
- TW
- Taiwan
- Prior art keywords
- logic
- destination
- source
- packet
- packets
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31701—Arrangements for setting the Unit Under Test [UUT] in a test mode
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31723—Hardware for routing the test signal within the device under test to the circuits to be tested, e.g. multiplexer for multiple core testing, accessing internal nodes
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31725—Timing aspects, e.g. clock distribution, skew, propagation delay
- G01R31/31726—Synchronization, e.g. of test, clock or strobe signals; Signals in different clock domains; Generation of Vernier signals; Comparison and adjustment of the signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3632—Software debugging of specific synchronisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- 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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- 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/343—Logical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/35—Delay-insensitive circuit design, e.g. asynchronous or self-timed
-
- 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/396—Clock trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Logic Circuits (AREA)
Description
本發明之實施例係關於對積體電路除錯之領域,且更特定言之係關於使用以封包切換為基礎之虛擬通道來複製邏輯以對積體電路除錯。
設計一積體電路(IC)或一系統通常需要驗證及/或除錯以確保設計正確性。一通常的實踐可能基於藉由複製模組且透過一FIFO(先進先出)延遲緩衝器用線路傳輸輸入至該模組而提供一邏輯模組之可見性的硬體輔助的驗證(HAV)。美國專利第7,213,216號描述此一實踐的實例。可使用該等經緩衝的輸入對該已複製的邏輯模組執行對該邏輯模組之測試案例的模擬。然而,若一模組含有多個時脈(或處於多個時脈域中),則HAV可能需要在一單獨FIFO中緩衝對各時脈域之全部輸入。因此,需要額外的硬體及複雜的軟體以使各時脈域中的模擬操作同步。
此外,在一晶片上RAM(隨機存取記憶體)中實施的一FIFO可能受未用的記憶體空間之可用性限制。為增加一FIFO中之緩衝數量,可採用一晶片外記憶體,諸如DDR2(兩倍資料速率2)或SDRAM(同步動態隨機存取記憶體)。然而,板佔據面積及/或接針限制可能禁止使用各時脈域之一單一實體記憶體實施一FIFO。因此,可能需要自一單一實體記憶體建立不同的時脈域之多個FIFO。
無論如何,一晶片外記憶體可能受固定的資料寬度限制。另外,各FIFO之單獨的位址空間可能具有由(例如)記憶體內容切換中之重要的附加項所導致的嚴重的頻寬限制。
因此,用於硬體輔助設計驗證之傳統的資料緩衝器並不提供一高效且可擴充的解決方案。此外,關於邏輯設計或驗證之背景資訊可在下列美國專利中找到:5,036,473、5,452,231、5,596,742、5,661,662、5,761,484、5,812,414及6,581,191。
本發明之一實施例包含編譯一源電路之一表示的方法及裝置,該源電路包含與複數個時脈域所驅動之源邏輯的若干部分相關之一或多個源子通道。各源子通道可產生攜帶來自該源邏輯之該等部分之一者的信號資料的封包。一目的地電路之一表示可經編譯以包含與複製該源邏輯之目的地邏輯的若干部分相關之一或多個目的地子通道。各目的地子通道可經由該等封包將該信號資料轉遞至該目的地邏輯之該等部分的一者。一切換邏輯可經組態以將該等源子通道映射至該等目的地子通道,以作為虛擬通道自該等源子通道轉遞該等封包至該等目的地子通道。一單一佇列可經組態以與該切換邏輯耦合,以將來自該等源子通道之複數個時脈域的封包記錄至一封包串流中持續一延遲週期,以分配至該等目的地子通道。該目的地邏輯可仿真與被延遲該延遲週期之該複數個時脈域同步的該源邏輯。
在本發明之另一態樣中,封包可經產生以攜帶來自複製該源邏輯之若干部分之一目的地邏輯的該源邏輯之複數個部分的信號資料。該等封包可包含識別將該源邏輯之該複數個部分映射至該目的地邏輯之複數個部分的虛擬通道的識別符。一佇列可將該等封包儲存為該信號資料之一週期的一跡線。可根據該等所識別之虛擬通道將來自該佇列之該等封包分配至該目的地邏輯之該等部分。可自該等封包解封包信號資料以更新該目的地邏輯之該等部分以使該目的地邏輯仿真具有該跡線之該週期的一延遲的該源邏輯。
在本發明之又一態樣中,封包可經產生以表示來自複數個時脈域所驅動之源邏輯之複數個部分的信號資料。各部分可能屬於該等時脈域之一者。可根據包含一標頭欄位及一有效負荷欄位的一封包格式格式化該等封包。該有效負荷欄位可攜帶該信號資料。該標頭欄位可攜帶識別將該源邏輯之該複數個部分映射至複製該源邏輯之目的地邏輯之複數個部分的虛擬通道的識別符。各封包可儲存在對應於該源邏輯之該複數個部分的複數個佇列之一者中。可根據該等虛擬通道自交錯為與該等時脈域之各者同步的一封包串流的該複數個佇列仲裁該等封包,以分配至該目的地(或目標)邏輯。
在本發明之又一態樣中,一積體電路可包括在複數個不同的時脈域下操作之源邏輯之複數個部分,及複製該源邏輯之目的地邏輯的複數個部分。該積體電路中之一儲存器可儲存將該源邏輯之該複數個部分映射至該目的地邏輯之該複數個部分的虛擬通道。該積體電路中之集中器邏輯可使攜帶來自該源邏輯之該複數個部分的信號資料的封包序列化為該儲存器中的一佇列持續一延遲。各封包可識別該等虛擬通道之一者。該積體電路中之分配器邏輯可在該延遲之後根據該等虛擬通道將來自從該佇列擷取之該等封包的該信號資料分配至該目的地邏輯之該等部分。
在本發明之又一態樣中,可自一或多個IC選擇源邏輯之複數個部分用於複製。封包邏輯可插入該源邏輯以產生用於表示該等IC之該等所選部分之信號資料的封包。各封包可包含識別一所選部分之一源識別符。解封包邏輯可插入複製該源邏輯之該等所選部分之目的地邏輯。可自該等已複製部分之該解封包邏輯中之所接收的封包提取信號資料。各個所接收之封包可包含識別該等已複製部分之一者的一目的地識別符。切換邏輯可經組態以將該等目的地識別符映射至該等源識別符,以作為虛擬通道而經由在一延遲週期期間記錄該信號資料之一跡線的延遲邏輯將該信號資料自該等所選部分轉遞至該等已複製的部分。該等IC之一表示可顯示在顯示器件中。一硬體描述語言(HDL)程式碼可經編譯以產生表示該等IC之一技術獨立的RTL(暫存器傳遞級)網表。
在本發明之又一態樣中,一封包切換集線器可利用一記憶體(例如,晶片外記憶體)之幾乎全部可能的頻寬將攜帶來自一源電路之不同時脈域的信號資料之資料封包集中至一單一緩衝器(例如,一FIFO)中的一單一封包串流中。可近似地以該等封包即時發生之順序(在一仲裁器誤差容限內)將其等放入記憶體中以分配至一目的地電路。使用一單一緩衝器之能力可允許該封包切換集線器消除使對應於不同的時脈域之單獨的緩衝器同步的複雜性。在其他實施例中,該封包切換集線器可提供對逐個晶片選路信號之靈活性,從而擷取特徵化資料及/或發源用於系統啟動之測試向量。
本發明包含若干方法及執行此等方法之裝置,該等裝置包含執行此等方法之資料處理系統及當在資料處理系統上執行時導致該等系統執行此等方法之電腦可讀的媒體。
易於自附圖且自隨後的詳細說明得知本發明之其他特徵。
該等附圖之圖形中以實例方式而不以限制方式繪示本發明,其中相似的參考數字指代類似的元件。
本文描述使用虛擬通道來複製邏輯之一系統及方法的實施例。下列說明中闡明許多特定的細節。然而,應瞭解的是,可在無此等特定細節情況下實踐本發明。在其他例項中,尚未詳細展示眾所周知的電路、結構及技術以不使對此說明之理解變得晦澀。
此說明書全文中對「一實施例」之引用意指結合該實施例描述之一特定特徵、結構或特性包含於本發明之至少一實施例中。因此,短語「在一實施例中」在此說明書全文之各種地方的出現未必全部指代相同的實施例。此外,可在一或多個實施例中以任意適當的方式組合該等特定的特徵、結構或特性。
在一實施例中,一封包切換集線器可經程式化以將來自一原始電路(或源邏輯)之信號資料集中為饋送至一外部(例如,晶片外)記憶體中之一FIFO緩衝器中的一單一的封包串流。可自該FIFO擷取該封包串流且可將該封包串流轉遞至(例如)複製該原始電路之一複製電路。在一些實施例中,該複製電路可能無需複製整個原始電路。替代地,該複製電路可複製(例如)在某些時脈域下操作之該原始電路的特定部分。美國專利第7,213,216號中描述使用複製一原始電路之至少一部分的一複製電路之一系統的一實例,該專利以引用的方式併入本文中。
在一實施例中,一封包切換集線器可包含仲裁器邏輯及/或集線器控制邏輯。仲裁器邏輯可集中至大約同時到達切換邏輯(例如,在某些時脈循環內)之一FIFO多個封包中。集線器控制邏輯可以大體上等於該等封包之傳入速率的一速率自該FIFO循序擷取封包用於分配。該單一FIFO(在一單一時脈上操作)可取代使用該源電路或原始電路中之各時脈域之多個小型的FIFO緩衝來自該源電路或原始電路中之多個時脈域的封包。此單一FIFO可提供該等經緩衝之封包至包含對應於該源電路或原始電路中之該多個時脈域(且與之同步)的多個時脈域之一目的地電路或複製電路。在一些實施例中,該FIFO可利用一晶片外記憶體之80%以上的頻寬。
一封包切換集線器可定義在何處經由一虛擬通道自一原始電路或源電路之一部分發送信號資料至一目的地電路之另一部分。通常,一虛擬通道可對應於自待在某一時間之後用於一已複製之目的地電路中之一源電路一起轉遞的信號資料之群組。來自不同時脈域的信號資料可能屬於單獨的虛擬通道。該封包切換集線器維持源側與目的地側兩側上之兩個或兩個以上時脈域之間的資料信號之同步性。以此方式,一目的地器件中之已複製的邏輯可以與該原始邏輯如何接收該等資料信號同步之一方式接收該等資料信號。
信號資料可封包至對應於資料路徑或通道之封包中。例如,具有64位元大小之16個字元的封包可攜帶來自一千個信號的信號資料以作為一資料路徑。一封包可包含一集線器(或封包切換集線器)之一通道識別符以判定將該封包轉遞至何處。在一實施例中,一集線器可將通道描述符或虛擬通道定義儲存在根據通道識別符編索引(或定址)的一ROM中,以指定(例如)一封包之一來源、一封包之一目的地、一封包中之字元(攜帶信號資料)數目、一封包類型及/或其他的描述資訊等等。
通常,一通道描述符可使封包之一來源與一目的地配對。一集線器可依賴通道描述符判定將在一封包串流中接收之各封包轉遞至何處。視情況,一集線器可能基於一封包類型對一封包執行某些操作,諸如記憶體讀/寫。
在一實施例中,一源電路及一目的地電路可能基於與具有切換邏輯之一中間的集線器耦合之兩個單獨的可程式化器件,諸如FPGA(場可程式化邏輯陣列)器件。在一些實施例中,源電路及目的地電路可能係基於外部耦合至一集線器之一單一的FPGA器件,封包經由高速TDM(時域多工器)自該FPGA器件傳出至該集線器且自該集線器傳回至該FPGA器件。
在一實施例中,一源電路中之各晶片(諸如一FPGA晶片)可與源集中器邏輯合成以自該晶片中之不同的資料路徑或通道收集封包且跨越一介面發送該等封包至一封包切換集線器。一目的地電路中之各晶片(諸如一FPGA晶片)可與目的地分配器邏輯合成以經由與該封包切換集線器耦合之一介面接收封包且將該等封包分配至該晶片中之不同的資料路徑。
在一實施例中,一封包切換集線器可展現來自處於不同時脈域中之一電路的某些部分的信號資料之跡線用於設計驗證。例如,一設計者可組態一電路以選擇一千個信號在一百萬個循環期間(例如,經由一晶片外FIFO)取樣為記錄在一集線器中的一封包串流。可對從該集線器讀取之該封包串流重製的信號資料執行一分析以提取(例如)特徵化資料,諸如功率消耗(例如,基於信號切換速率)、記憶體快取效能或一設計之其他態樣等。
在另一實施例中,一封包切換集線器可耦合至一電路。該封包切換集線器可提供攜帶來自一晶片外記憶體(例如,經由一FIFO)之信號資料之一封包串流,以將測試向量饋送至該電路之某些部分以(例如)確保一特定的輸入序列且產生一已知的序列輸出。在其他實施例中,一封包切換集線器可在單獨的電路(例如,無複製關係)之間(諸如在FPGA器件之間)為信號資料選路。該集線器可經組態以在不同的器件之間提供所需的連接,而無需改變實體纜線連接器。
在一實施例中,封包可以其等到達的順序寫入一記憶體(例如,在一單一時脈控制下操作的一晶片外FIFO)中。在足夠數目的封包已被寫入該記憶體時,可以大體上等於該等封包到達之速率的一速率開始讀取該記憶體。隨後可基於通道描述符將該等封包分配至各種目的地。在一些實施例中,可使用一共同的計時器或藉由確認一特定時脈之全部目的地已接收資料而使對到達該等目的地之第一封包的確證同步。在該等目的地處之該等第一封包的同步性之後,仍然可藉由使用該原始電路之時脈的一複本使隨後的封包同步。
圖1繪示本發明之邏輯仿真的一實施例。邏輯100可經組態使一系統對使用者邏輯103除錯。在一實施例中,邏輯100可包含在一或多個晶片(諸如ASIC(特定應用積體電路)晶片、FPGA晶片、PLD(可程式化邏輯器件)晶片或其他器件)中實施之電路。使用者邏輯103可由基於同步及/或非同步時脈的多個時脈域驅動。在一實施例中,輸入向量101可提供輸入序列至使用者邏輯103以執行多個時脈域所驅動之邏輯操作以產生輸出向量105。
使用者邏輯111可為使用者邏輯103之一複製以複製(諸如)用於除錯或驗證目的之邏輯操作。可(例如)藉由在邏輯上將該複製中之時脈域分離而自該原始使用者邏輯103修改作為一複製之使用者邏輯111。在一實施例中,內部向量107可包含來自使用者邏輯103之所選部分的信號資料。使用者邏輯103之各所選部分可包含表示一時脈域內之使用者邏輯103之一或多個狀態的一或多個暫存器。輸入向量101及內部向量107可攜帶多個時脈域所驅動之使用者邏輯103中的信號資料。
在一實施例中,邏輯100之組態可致能使用者邏輯111執行仿真使用者邏輯103被延遲一延遲週期Tdbf
的邏輯操作。輸入向量101及內部向量107可自大體上與被延遲該延遲週期Tdbf
的使用者邏輯103同步(例如,處於一或多個時脈循環內)之深度緩衝器109饋送使用者邏輯111。因此,與來自使用者邏輯103之輸出向量105相比,來自使用者邏輯111之輸出向量113可能被延遲該延遲週期Tdbf
。
在一實施例中,邏輯100可包含深度緩衝器109以將輸入向量101及內部向量107記錄為一延遲週期Tdbf
的一信號跡線。深度緩衝器109可能基於儲存包含來自輸入向量101及內部向量107之信號資料的封包的一固定寬度佇列。深度緩衝器109之容量或深度可視使用者邏輯103之輸入向量101及內部向量107所表示的信號數目而定。另外,對深度緩衝器109之一容量需要可視該指定的延遲週期Tdbf
及與輸入向量101及內部向量107相關之該等時脈域而定。在一實施例中,深度緩衝器109可能基於一晶片外記憶體以提供用於容納設計使用者邏輯103及/或對使用者邏輯103除錯中之各種容量需要的可縮放性。
在一些實施例中,邏輯100可包含觸發邏輯及控制邏輯以基於儲存在深度緩衝器109中之該信號跡線允許逐步通過使用者邏輯111以對使用者邏輯103除錯。通常,該觸發邏輯可對來自使用者邏輯103之所選的信號偵測觸發條件之發生。該控制邏輯可控制(例如)驅動使用者邏輯103與使用者邏輯111兩者之不同的時脈域中的時脈。在一實施例中,在偵測到觸發條件情況下,該控制邏輯可使該等時脈停止以暫時凍結對使用者邏輯103之邏輯操作及/或導致使用者邏輯111之執行暫停。因此,深度緩衝器109可在該先前Tdbf
週期期間提供信號跡線以允許一使用者逐步通過被延遲Tdbf
之使用者邏輯111以檢查使用者邏輯103之一歷史。
圖2係繪示用於切換用於邏輯仿真或邏輯設計測試之封包的一例示性系統的一方塊圖。在一實施例中,圖1之邏輯100可能基於(例如)提供圖1之深度緩衝器109之深度緩衝器記憶體223的系統200之一或多個組件。系統200可包含在源晶片203、207中組態之原始使用者邏輯201及在目的地晶片227、233中組態之使用者邏輯237以複製使用者邏輯201。晶片203、207、227、233可為可程式化的器件,諸如FPGA器件。信號群組205、209、211可選自使用者邏輯201以更新對應的信號群組229、231、235以使使用者邏輯237複製使用者邏輯201。各信號群組可包含表示對應的使用者邏輯之一部分的一或多個信號。在一實施例中,使用者邏輯201可由單獨的時脈域中之複數個時脈(同步及/或非同步)驅動。一信號群組內之信號可能屬於一單一時脈域。
封包切換集線器215可定義虛擬通道以自原始使用者邏輯201中之源信號群組轉遞資料至已複製之使用者邏輯237中之目的地信號群組,同時將該資料記錄為共用共同的記憶體空間之信號跡線。例如,虛擬通道217可允許來自源信號群組205之信號資料在該信號資料作為信號跡線停留在深度緩衝器記憶體223中持續一延遲週期之後更新目的地信號群組229。在一實施例中,處於不同的時脈域中之封包切換集線器215中之單獨的虛擬通道217、219及221之信號跡線可與一共同延遲週期同步以允許已複製的使用者邏輯237仿真被延遲該共同延遲週期之原始使用者邏輯201。
封包切換集線器215可包含儲存經由識別源信號群組及目的地信號群組之識別符定義虛擬通道的通道定義的一儲存器,諸如一ROM(唯讀記憶體)或一RAM。該等識別符可包含識別一源信號群組(諸如信號群組205)之一源識別符及識別一目的地信號群組(諸如信號群組229)之一目的地識別符。封包切換集線器215可藉由將該信號資料遞送至在該虛擬通道中識別之該目的地信號群組的介面位址而跨越一虛擬通道(諸如虛擬通道217)將自一源信號群組(諸如信號群組205)接收的資料轉遞至一目的地信號群組(諸如信號群組229)。
在一實施例中,可在封包中攜帶來自原始使用者邏輯201之資料經由封包切換集線器215跨越虛擬通道(諸如虛擬通道217、219、221)至複製邏輯237。可根據包含識別一虛擬通道之一識別符及攜帶來自一源信號群組之資料的一有效負荷之一已知的(或經預先組態的)格式封包各封包。封包切換集線器215可根據自所接收之封包提取的識別符識別一虛擬通道。
在一實施例中,封包切換集線器215可將自多個虛擬通道215、219、221之使用者邏輯201接收的封包推入深度緩衝器記憶體223中之一單一佇列中以記錄使用者邏輯201之信號跡線。隨著自該佇列取出各封包,該封包切換集線器215可將該封包轉遞至如在一虛擬通道中定義之一目的地信號群組。在一實施例中,該封包切換集線器215可以根據該虛擬通道識別該目的地信號群組之一目的地識別符更新自該佇列擷取之一封包。
集中器邏輯213可將來自原始使用者邏輯201之資料封包為封包,以將具有識別一虛擬通道之一識別符的信號資料攜帶至該已複製的使用者邏輯237。在一實施例中,集中器邏輯213可根據與原始使用者邏輯201同步之一時間順序將多個虛擬通道之封包收集(或序列化)為一封包串流。一時間順序可指示一已排序關係內之一時差。集中器邏輯213可在該佇列內以一線性順序推出與使用者邏輯201之單獨的時脈域相關之封包。在一實施例中,集中器邏輯213可維持在時間上與該等單獨的時脈域同步之該線性順序。
分配器邏輯225可自到達一虛擬通道(諸如虛擬通道217)之已複製的使用者邏輯237之封包解封包信號資料,以更新在該虛擬通道中識別的一信號群組(諸如信號群組229)。在一實施例中,分配器225可自深度緩衝器記憶體223中之一佇列擷取封包,以使已複製的使用者邏輯237與具有用於記錄該佇列中之信號跡線的一延遲的原始使用者邏輯201同步的一速率將來自原始使用者邏輯201之信號資料分配至已複製的使用者邏輯237。可以與自該佇列取出該等封包送至與驅動原始使用者邏輯201與已複製的使用者邏輯237兩者之一或多個時脈域同步的已複製之使用者邏輯237相等的一速率將來自原始使用者邏輯210之封包推入該佇列。一目的地信號群組之一虛擬通道(例如,信號群組229之虛擬通道217)可與一目的地晶片器件(例如,目的地晶片227)相關。分配器225可識別至一目的地晶片器件的一介面位址以基於與一封包相關的一虛擬通道轉遞該封包。
圖3係繪示用於建立源邏輯與目的地邏輯之間的虛擬通道之一例示性架構的一方塊圖。例示性架構300可包含一或多個組件以支援圖2之系統200。在一實施例中,源晶片(例如,FPGA晶片)301、303可包含具有識別為一或多個源子通道(諸如子通道305、307)之信號群組的源邏輯。類似地,目的地晶片377、379可包含具有識別為一或多個目的地子通道(諸如子通道375)之信號群組之目的地(或汲入)邏輯(例如複製該源邏輯)。源子通道的數目可與目的地子通道的數目相同或不同。各子通道可由對應的邏輯(例如,源邏輯或目的地邏輯)之一時脈域(或時脈)驅動。
在一實施例中,源晶片及目的地晶片可能基於各自處在單獨的積體電路中之單獨的可程式化邏輯器件。或者,源晶片及目的地晶片可共用在一積體電路內實施之一單一的邏輯器件。在一實施例中,集線器371可為與源晶片301、303及目的地晶片377、379耦合之一封包切換集線器,以作為虛擬通道(諸如源子通道ssch 405及目的地子通道dsch 375之vch 345)自源子通道轉遞攜帶信號資料之封包至目的地子通道。集線器371可能係基於源晶片301、303及/或目的地晶片377、379之相同或單獨的邏輯器件。
在一實施例中,源晶片301、303可經組態具有源集中器邏輯以建立源子通道305、307之虛擬通道。源集中器邏輯可包含(例如)各子通道之封包邏輯(諸如封包309、311、323、325),以根據一預設定的封包格式將來自一子通道之信號資料封包為一封包序列。該封包邏輯可經組態具有識別一對應的虛擬通道之一識別符。該封包邏輯可形成含有該識別符以及信號資料之一封包。
根據一實施例,各封包邏輯可產生攜帶來自一時脈域中之一對應的源子通道之信號資料的一封包序列。源集中器邏輯可包含各源子通道之一源通道佇列(例如,基於FIFO資料順序),諸如子通道先進先出313、315、327、329,以儲存自該對應的封包邏輯產生之封包。例如,封包邏輯309可產生進入一對應的源通道佇列子通道先進先出313中之封包。源通道佇列可經分派以使來自與驅動此等子通道之單獨的時脈域同步之單獨的子通道的封包序列化。
在一實施例中,各源晶片(例如,源303)可經由一介面(諸如時分多工介面)與一封包切換集線器(例如,集線器371)耦合以轉遞封包。源集中器邏輯可包含各源晶片中之發送邏輯(諸如源同步發送319、333)以經由一介面自一源晶片發送一封包串流至一集線器。一源晶片中之發送邏輯可與用於發送封包之一集線器的一時脈域同步。通常,一集線器(例如,集線器371)之時脈域可具有高於驅動源晶片中之源邏輯之時脈域的一頻率,以允許該集線器自源子通道收集封包且根據驅動該源邏輯之該等時脈域保存該等封包中所攜帶之信號資料的時間順序。
在一實施例中,源集中器邏輯可包含各源晶片中之仲裁器邏輯(例如,仲裁器317),以將封包仲裁為來自發送邏輯(例如,源同步發送319)之源晶片內之複數個源通道佇列(例如,子通道先進先出313、315)的一序列(或使該等封包序列化)以轉遞至一集線器(例如,集線器371)。該仲裁器邏輯可經組態以在封包相互循序交錯時維持封包之間的一順序或允許該等封包與各個各自的源子通道同步。在一實施例中,仲裁器邏輯可以一公平的共用方式(例如,基於公平的共用演算法)替代地自多個源通道佇列選擇封包。可應用其他的選擇方案。
集線器371可為類似於(例如)圖2之封包切換集線器215的一封包切換集線器,該封包切換集線器經組態具有用於將來自各源晶片(例如,源301、303)之封包收集為一單一的封包串流,同時維持與驅動該等源晶片之多個時脈域同步之該封包串流中的該等封包之間的一順序之集中器邏輯367。在一實施例中,集中器邏輯可包含各源晶片之一源通道,諸如源303之sch 343。一源通道可包含自耦合至一源晶片之一介面將封包收集為一接收佇列(例如接收先進先出337、341)的接收邏輯(例如,源同步接收335、339)。一接收佇列可儲存具有自一源晶片中之多個子通道序列化的封包的一封包串流,以允許一集線器將來自多個源晶片之封包串流合併為一單一佇列,同時保存與驅動該多個源晶片之多個時脈域同步之該等封包之間的時間順序。
在一實施例中,集中器邏輯可包含記憶體仲裁器邏輯(例如347仲裁器),以將自多個源晶片301、303接收之封包仲裁為一單一封包串流,同時維持與驅動源晶片301、303之多個時脈域同步之該封包串流內之封包之間的一順序。例如,仲裁器347可採用循環式方案來決定接著自多個接收佇列(例如,接收先進先出337、341)擷取哪個封包,各接收佇列對應於一源晶片。可應用其他的擷取方案。記憶體仲裁器邏輯可驗證封包是否不按順序到達,以確保大約同時自不同的子通道到達之封包大約同時被轉遞至目的地子通道(例如,在一已知的誤差容限內)。
在一實施例中,集線器317可包含由一處理內容(例如,無需內容切換)中之記憶體控制邏輯管理的一集線器佇列(例如,集線器先進先出351)。仲裁器347可將自源通道佇列337、341等到達之封包串流合併為集線器佇列351而作為一封包串流。根據一實施例,一集線器佇列可能基於一晶片外記憶體(諸如圖2之深度緩衝器記憶體223),以按比例調整其用於容納來自不同的源晶片中之多個時脈域所驅動之多個源子通道的大量封包的容量。一集線器佇列可與指示在記憶體中分派之該集線器佇列的一大小或容量之一可組態的深度相關。
可以一大體上相等的速率(例如,在根據驅動該集線器佇列之該時脈域及該佇列的記憶體讀取及寫入突發(burst)大小之一誤差容限內)將封包推入一集線器佇列及自一集線器佇列取出封包。因此,一集線器佇列可作為通過該集線器佇列之一封包串流中之各封包的一延遲。該延遲之長度可視(例如)驅動該集線器佇列之該時脈域及/或對於該集線器佇列組態之深度(或大小)而定。通常,集線器佇列351可由一時脈域以高於驅動該源邏輯中之子通道307、305之該多個時脈域的一頻率驅動,以允許一封包串流通過攜帶來自與該多個時脈域同步之子通道307、305之信號資料的該佇列。
集線器371可包含集線器控制邏輯,例如可識別自集線器佇列351擷取(或取出)之各封包的一虛擬通道以根據一虛擬通道將該封包轉遞至一目的地之集線器控制355。集線器控制355可以大體上與仲裁器347將該等封包寫入集線器佇列351相等的一速率自集線器佇列351讀取封包。在一實施例中,集線器控制邏輯可經組態以在該集線器佇列為充滿或足夠充滿時開始自一集線器佇列讀取或擷取封包。若儲存在該集線器佇列中之一封包串流佔據超過對該集線器佇列分派之總記憶體空間之某一程度(例如,基於一可組態的百分率)的記憶體空間,則一集線器佇列可為足夠充滿。
在一實施例中,集線器控制355可根據自一封包擷取之一通道識別符擷取儲存在儲存器357中之一虛擬通道的定義。集線器控制邏輯可經組態具有指定各封包之一通道識別符的一封包格式。集線器控制邏輯可基於一通道識別符查尋一目的地位址以轉遞一封包。在一實施例中,儲存器357可為儲存由通道識別符編索引之虛擬通道的定義之一ROM。
根據一實施例,一虛擬通道可根據用於識別一目的地晶片(例如,目的地377、379)及該目的地晶片中之一目的地子通道(例如,dsch 375)之一目的地晶片識別符及一目的地子通道識別符而指定一封包之一目的地。集線器控制355可使用目的地晶片識別符經由位址產生器邏輯(例如,位址產生器353)產生一目的地晶片之一位址。在一實施例中,集線器控制355可以在一虛擬通道中定義之目的地子通道識別符更新一封包,以允許一目的地晶片將經更新的封包分配至該目的地子通道。
集線器371可經組態具有用於分配自源晶片(例如,源301、303)收集的一封包串流之分配器邏輯369。分配器邏輯可包含集線器控制邏輯(諸如集線器控制355)以判定將一封包轉遞至何處。在一實施例中,分配器邏輯可包含各目的地晶片之一目的地通道,諸如目的地晶片379之dch 373。一目的地通道可包含一發送佇列(諸如發送先進先出359、361)以儲存自一目的地晶片之集線器控制邏輯分配的封包。各目的地通道可包含發送邏輯(例如,源同步發送363、365)以經由耦合至該目的地晶片之一介面自一發送佇列循序發送封包至一目的地晶片。在一實施例中,位址產生器邏輯353可基於一目的地晶片識別符對集線器控制355提供至一目的地晶片(例如,目的地晶片379)之一發送佇列(例如,發送先進先出361)的一位址。
一目的地晶片(例如,目的地377、379)可包含目的地分配器邏輯以接收攜帶指定到達該目的地晶片中之目的地子通道的信號資料的封包。源分配器邏輯可包含接收邏輯(例如,源同步接收381、393)以接收經由與集線器371之一介面發送的封包。在一實施例中,接收邏輯可與集線器371同步(例如,共用一時脈域)以自集線器371接收封包。接收邏輯可包含解多工器邏輯(例如,解多工器383、395)以將各個所接收的封包分配至一目的地子通道。
解多工器邏輯可自一所接收的封包提取一目的地子通道識別符,以將該封包轉遞至一目的地通道佇列(例如子通道先進先出385、387、397、399)。各目的地子通道可與一單獨的目的地通道佇列(例如,dsch 375之子通道先進先出399)相關。一目的地通道佇列可儲存封包以允許根據該目的地子通道之一時脈域將該等封包中攜帶的信號資料同步分配至一目的地子通道。
目的地分配器邏輯可包含各目的地子通道之解封包邏輯(諸如解封包389、391、401、403),以從自一目的地通道佇列擷取之封包解封包資料以更新該目的地子通道。解封包邏輯可經組態具有用於從自一對應的目的地通道接收之封包中解碼信號資料的一封包格式。在一實施例中,解封包邏輯及一相關的目的地子通道(例如,dsch 375之解封包403)可能屬於相同的時脈域。
在另一實施例中,集線器371可包含匯流排邏輯(例如,匯流排349)以與(例如)一外部資料處理系統(諸如一PC(個人電腦)或一設計者工作站)介接。可在一外部系統與集線器371之間以封包傳達指令或資料用於控制、命令、組態、監控、除錯或其他目的。在一實施例中,儲存器357可儲存指定用於回應於自外部系統接收之封包而執行邏輯操作的封包格式的定義。例如,儲存器357中之定義可根據包含於一封包中之一識別符指定記憶體讀取、記憶體寫入、時脈控制(停止/開始)及/或其他的邏輯操作。
在一些實施例中,集線器371可使對在多個目的地晶片377、379處接收之第一封包的確證同步,以確保源邏輯與目的地邏輯之間的同步(例如具有一延遲)。源邏輯及目的地邏輯(例如,複製該源邏輯)可由共同的時脈域驅動(例如,基於相同的時脈),以確保目的地晶片之間的子序列封包的同步性(若該等第一封包係同步)。
在一實施例中,集線器371及/或各目的地晶片可經組態具有計數器邏輯。在偵測到自集線器佇列351開始發送封包之一條件(例如,集線器佇列351係充滿或足夠充滿)之後,集線器371可(例如)經由側信號同時起始對各目的地晶片中之計數器邏輯的一共同數量計數。集線器371可在發送該第一封包之前同時開始對該相同的共同數量計數。在另一實施例中,集線器371可藉由與各個別目的地晶片交換交接信號而仲裁目的地晶片之間的同步性。
圖4係繪示集線器控制邏輯用於切換封包之一例示性架構的一方塊圖。例如,圖3之集線器控制邏輯355可能基於架構400之一部分。在一實施例中,架構400可經組態具有集線器集中器邏輯(例如,集中器403),以(諸如)自圖3之一集線器佇列351或匯流排349循序接收封包以將輸入路由器邏輯(例如,輸入路由器407)選路至一合適的佇列。輸入路由器邏輯可基於儲存在一ROM中(諸如在圖3之儲存器357中)之通道定義解碼一所接收的封包以做出封包路由決定。通道描述符429可包含輸入路由器407之通道定義的一複本。
在一實施例中,輸入路由器邏輯可識別一所接收的封包之一類型以基於自該所接收的封包解碼之一識別符所識別的一通道定義判定將該所接收的封包轉遞至哪個佇列。例如,一「直接」類型的封包可被選路至與一高優先級相關之直接佇列409,以在將該封包自一集線器轉遞至一目的地時使可能的延時變短。
在一些實施例中,輸入路由器邏輯可基於通道定義根據一模式及/或與一所接收的封包相關的記憶體空間而判定將該所接收的封包轉遞至哪個佇列。例如,可視該模式及/或相關的記憶體空間而將模式為「讀」或「寫」的封包歸類至單獨的記憶體佇列(諸如先進先出寫佇列411、先進先出讀佇列413、RAM寫佇列415、RAM寫佇列417等)中。寫佇列(諸如佇列411、415)可含有位址與資料兩者。讀佇列(諸如佇列413、417)可包含位址而不包含資料。使不同的記憶體空間之佇列分離可允許多個記憶體庫之間的記憶體存取交錯。在一實施例中,先進先出佇列(諸如佇列411、413)可包含保證處於使該等記憶體存取以最大的突發交錯之不同的庫中之記憶體存取位址(例如,讀或寫)。
記憶體控制邏輯(例如,記憶體控制419)可在各種輸入佇列(諸如佇列411、413、415、417等)之間仲裁,以經由記憶體介面421將來自該等輸入佇列之記憶體存取請求循序傳輸至一記憶體(諸如DDR記憶體425)。在一實施例中,記憶體控制邏輯可追蹤記憶體讀取請求且將該等記憶體讀取請求之輸出封包格式化,且將該等輸出封包插入一輸出佇列(諸如輸出佇列423)中。在一實施例中,架構400可包含輸出仲裁器邏輯(例如,輸出仲裁器427)以根據通道描述符429在直接通道之直接佇列409與記憶體通道之輸出佇列423之間選擇封包,以(例如)經由圖3之分配器邏輯369將該等封包轉遞至集線器分配器邏輯(例如,分配器431)用於封包分配。
圖5係繪示攜帶一虛擬通道之信號資料的封包格式之一實例的一示意圖。例如,圖2之虛擬通道217、219、221可能基於根據格式500產生之封包。在一實施例中,一封包可為源邏輯之一部分與目的地邏輯之另一部分之間的一原子(atomic)通信單位。一封包可包含變化的字元數,例如至多16個字元。一封包中之各字元可具有一共同的寬度,例如,32位元、64位元等。通常,一封包切換集線器(諸如圖2中之集線器215)中定義之通道可能基於具有一共同字元寬度的封包。
經緩衝的封包501可表示包含三個64位元字元之以64位元為基礎的封包之一實例。例如,經緩衝的封包501可以包含一標頭(例如,通道ID 505之8位元標頭)之一標頭字元開始,該標頭字元之其餘部分及兩個資料字元503、507、509中攜帶信號資料。在一實施例中,封包邏輯325可基於經緩衝的封包501產生待在圖3之集線器佇列351中緩衝的封包。可基於不同的位元大小以不同的字元數目指定一封包,(例如)端視一通道之大小(或來自邏輯之一部分的信號數目)及/或封包切換邏輯之組態而定。
在一實施例中,通道ID 505可對應於一通道描述符511,諸如儲存在圖3之儲存器357中之一ROM中的一通道定義或規範。一ROM中之通道描述符或通道定義可包含由通道識別符編索引之多個通道描述符。在一些實施例中,通道描述符可儲存在一封包切換集線器中之一小型ROM中,諸如圖3之儲存器357。源晶片及目的地晶片(諸如圖3之源晶片301、303及目的地晶片377、379)之組態可僅視一封包切換集線器(諸如圖3之集線器371)中之通道描述符的一部分而定。
通道描述符511可包含儲存識別符之多個欄位(例如,各欄位具有4位元的寬度)以識別一通道之各種態樣。一通道之一態樣可能關於如在一記憶體空間欄位(諸如記憶體空間515)中識別之(例如)專門用於基於一時脈域之一封包的一記憶體空間。另一態樣可能關於如在一工作計數欄位(諸如字元計數517)中所指示之跟隨一封包中之一標頭的字元數目。另一態樣可能關於如在一目的地子通道欄位(諸如目的地subch 519)中所識別之目的地邏輯中之一目的地子通道。另一態樣可能關於如在一目的地晶片識別符欄位(諸如目的地晶片521)中所識別之一實體目的地晶片。另一態樣可能關於如在一源子通道欄位(諸如源subch 523)中所識別之源邏輯中之一源子通道。另一態樣可能關於如在一源晶片識別符欄位(諸如源晶片525)中所識別之一源晶片。又一態樣可能關於如在一封包類型識別符欄位(諸如封包類型527)中所識別之一封包類型。雖然繪示4位元欄位中之例示性識別符,但是一通道描述符可包含具有其他可應用的位元寬度之欄位,並且可包含額外的資訊欄位。同時,該通道描述符之格式可能視該通道封包類型而異。
在一實施例中,封包類型527可包含待由一封包切換集線器(諸如圖3之集線器371中的集線器控制邏輯355)解譯之一編碼,如在下列表格中:
已分配封包531可表示(例如)在一延遲通過一封包切換集線器中之一佇列(諸如圖3之集線器佇列531)之後自經緩衝封包501重新格式化之以64位元為基礎的封包之一實例。在一實施例中,已分配封包531可攜帶與緩衝封包501中相同的資料503、507、509,該標頭經重新格式化以攜帶一字元計數及識別自一對應的通道描述符中之欄位複製的一目的地子通道之一識別符,諸如字元計數517及目的地subch 519。因此,經緩衝封包及已分配封包可共用相同的封包信號資料,但是攜帶單獨的標頭資訊。
圖6係繪示一封包切換集線器之一例示性組態的一方塊圖。例如,圖3之架構300可能基於組態600中繪示的一或多個組件。在一實施例中,源FPGA晶片FPGA-A 625、FPGA-B 627。FPGA晶片可經組態具有(源)使用者邏輯601、603。目的地FPGA晶片FPGA-C 663、FPGA-D 667可經組態具有複製使用者邏輯601、603之(目的地)使用者邏輯661、667。集線器及緩衝板671可為經組態具有虛擬通道之一電路板,以作為封包自源晶片轉遞信號資料穿過一單一緩衝器至目的地晶片,以使使用者邏輯661、665基於該單一緩衝器以與一延遲同步之一方式複製使用者邏輯601、603。
在一實施例中,板671可經由HSTDM(高速時域多工器)介面621、623、641、643與FPGA晶片耦合。至一源晶片之一介面可對應於一源通道,諸如圖3之源sch 343。在一實施例中,一介面可包含一非同步FIFO,諸如可執行類似於圖3之rcv fifo 337、341之邏輯操作的AFIFO 629、631。各源子通道(諸如源子通道A1 605、A2 607...An 609、Z1 613、Z2 615...Zn 617)可經由一目的地子通道(諸如目的地子通道A1 649、A2 651...An 653、Z1 655、Z2 657...Zn 659)自原始使用者邏輯601、603之一部分(或子通道)轉遞信號資料至複製使用者邏輯661、665中之一對應部分。
源晶片A 625、B 627可包含通道邏輯源晶片A 611、Z 619以(例如)基於與包含圖3之仲裁器317之源通道邏輯類似的邏輯使攜帶來自各晶片中之源子通道之信號資料至達集線器及緩衝板671之一介面的封包序列化。相應地,目的地晶片A 645、Z 647中之目的地晶片A 645、647可(例如)基於與包含圖3之解多工器395之目的地通道邏輯類似的邏輯將來自集線器及緩衝板671之一封包串流分配至該晶片中之各個別目的地子通道。集線器及緩衝板671可包含基於仲裁器邏輯(諸如圖3之仲裁器347)之集中器667,以使來自對應於一源通道之各晶片的封包串流進一步序列化至記憶體639中之一單一延遲緩衝器中。另外,集線器及緩衝板617中之分配器669可(例如)基於與圖3之集線器控制355類似的邏輯將來自該單一延遲緩衝器之封包分配至對應於一目的地通道之各目的地晶片。
在一實施例中,集線器及緩衝板671可包含將各源子通道(諸如A1 605...Zn 617)映射至一目的地子通道(諸如A1 649...Zn 659)之儲存在記憶體639中的虛擬通道定義。MemCtrl 637可為管理攜帶無內容切換之一單一記憶體內容內之多個虛擬通道的不同位址空間中之信號資料的封包的一記憶體控制。匯流排控制(例如UMRCtrl 635)可控制耦合至一資料處理系統(諸如一PC或工作站)之匯流排633。
圖7係繪示根據本發明之一實施例之邏輯仿真的一程序的一流程圖。例示性程序700可由可包括硬體(電路、專用邏輯等等)、軟體(諸如在一專用機器上運行的軟體)或硬體與軟體之一組合的一處理邏輯執行。例如,一軟體工具可經組態以根據程序700自動合成或建立一設計以仿真用於除錯的邏輯。
在一實施例中,在方塊701處,程序700之該處理邏輯可編譯包含用於除錯之源邏輯之一源電路的一表示。一電路之表示可能基於一硬體描述語言,諸如VHDL(超高速積體電路(VHSIC)硬體描述語言)、Verilog或其他的HDL(硬體描述語言)等等。程序700之該處理邏輯可產生一網表(諸如一RTL(暫存器傳遞級)網表)或用於映射至一或多個器件(諸如圖2之源晶片203、207)中之其他的低階邏輯表示碼以實施該源電路。
一源電路可包含一或多個源子通道(例如,圖3之ssch 321)以選擇該源邏輯的部分(諸如圖3之子通道307)用於除錯。該源電路中之源邏輯可由複數個時脈域或時脈驅動。在一實施例中,該源邏輯之各所選部分可僅由該等時脈域之一者驅動。一源子通道可經組態具有一經預先組態之封包格式及與源邏輯之一對應部分相關的一識別符。在一實施例中,一源子通道可(例如)將來自源邏輯之一對應部分之信號資料與用於識別目的地邏輯之一部分的經組態的識別符封包,以轉遞與驅動該源邏輯之該相關部分的一對應時脈域同步之該信號資料。
在一實施例中,在方塊703處,程序700之該處理邏輯可編譯包含複製該源邏輯之目的地邏輯之一目的地電路的一表示。程序700之該處理邏輯可在一或多個器件(諸如圖2之目的地晶片227、233)中合成該目的地電路。在一些實施例中,源電路與目的地電路兩者可共用一或多個晶片。該目的地電路可包含一或多個目的地子通道(例如,圖3之dsch 375)以選擇該目的地邏輯之部分用於仿真源邏輯。目的地邏輯與源邏輯兩者可由用於邏輯仿真之共同或類似的時脈域驅動。一目的地子通道可經組態具有一封包格式以接收攜帶來自源邏輯之信號資料的封包以更新目的地邏輯之一相關部分。
在一實施例中,在方塊705處,程序700之該處理邏輯可使切換邏輯與虛擬通道組態(諸如圖2之虛擬通道217、219、221),從而將源子通道映射至目的地子通道,以自源邏輯之部分轉遞信號資料至目的地邏輯之對應部分。該切換邏輯及該源電路及/或目的地電路可能基於單獨的器件。在一些實施例中,該切換邏輯可能基於實施該源電路及/或目的地電路之相同的器件。程序700之該處理邏輯可將虛擬通道定義或儲存至包含識別源子通道及目的地子通道的識別符之該切換邏輯中,諸如圖3之儲存器357中。
在方塊707處,程序700之該處理邏輯可組態耦合至切換邏輯之一單一佇列(諸如圖2的深度緩衝器記憶體223),以將來自該等源子通道之封包記錄至一封包串流中持續一延遲週期以分配至該等目的地子通道。該單一佇列可使該目的地邏輯仿真與驅動具有封包通過該單一佇列之一延遲的該源邏輯之複數個時脈域同步之該源邏輯。
程序700之該處理邏輯可指定一單一佇列之一深度(或大小),以容納來自單獨時脈域中之源邏輯之不同部分的封包作為一單一封包串流,以分配至用於仿真該源邏輯之目的地邏輯的對應部分。程序700之該處理邏輯可確保該單一佇列具有足夠的容量來記錄適用於對該源邏輯除錯之信號資料的一數量。
在一實施例中,在方塊709處,程序700之該處理邏輯可逐步通過用於對發生在源邏輯中之一錯誤除錯之目的地邏輯之已複製部分中之邏輯操作的一序列。例如,該源邏輯可包含偵測目標條件之發生以用於除錯目的之觸發器邏輯。該觸發器邏輯可(諸如)經由對驅動該源邏輯及目的地邏輯之時脈的一控制導致該源邏輯及目的地邏輯暫停執行。程序700之該處理邏輯可根據來自留在記錄對應於一延遲週期之一封包串流之一單一佇列中的該源邏輯的信號資料之一跡線逐步通過該目的地邏輯中之邏輯操作。
圖8係繪示經由虛擬通道轉遞封包之一程序之一實施例的一流程圖。例示性程序800可由可包括硬體(電路、專用邏輯等等)、軟體(諸如在一專用機器上執行的軟體)或硬體與軟體之一組合的一處理邏輯執行。例如,程序800之該處理邏輯可能基於圖3之架構300。在方塊801處,在一實施例中,程序800之該處理邏輯可根據一封包格式(例如,經預先組態)產生攜帶來自源邏輯之部分之信號資料的封包(諸如在圖3之封包309、311中)。各封包可包含用於更新複製該源邏輯之目的地邏輯的一部分之一虛擬通道(諸如圖2之虛擬通道217)的一識別符。
在方塊803處,在一實施例中,程序800之該處理邏輯可將來自不同的時脈域所驅動之源邏輯的多個部分的封包儲存或收集至一佇列中,諸如圖3之集線器先進先出351,作為對應於來自一週期之該源邏輯之信號資料的一跡線的一封包串流。在方塊805處,程序800之該處理邏輯可根據各封包中所識別的虛擬通道將來自該佇列之該封包串流(諸如在圖3之集線器控制355中)循序分配至該目的地邏輯之部分。根據一實施例,在方塊807處,程序800之該處理邏輯可從自該佇列到達的封包解碼或解封包信號資料以更新該目的地邏輯之部分(諸如在圖3之解封包389、391中),以使該目的地邏輯仿真具有對應於在該佇列中緩衝之該信號資料的一跡線之一延遲週期的該源邏輯。
圖9係繪示集中及分配封包之一程序之一實施例的一流程圖。例示性程序900可由可包括硬體(電路、專用邏輯等等)、軟體(諸如在一專用機器上運行的軟體)或硬體與軟體之一組合的一處理邏輯執行。例如,程序900之該處理邏輯可能基於圖3之集線器371。在一實施例中,在方塊901處,回應於自源邏輯之部分接收封包,程序900之該處理邏輯可將該等封包儲存在複數個接收器佇列中,諸如圖3之接收先進先出337、341。各接收器佇列可對應於在一器件(諸如圖3之源FPGA 303)中實施之該源邏輯的一或多個部分。該等封包可攜帶來自該源邏輯之信號資料以使目的地邏輯複製該源邏輯。各封包可包含將該源邏輯之部分映射至該目的地邏輯之對應部分的虛擬通道(諸如圖3之儲存器357中所定義的vch 345)之一者的一識別符。
在方塊903處,在一實施例中,程序900之該處理邏輯可將儲存在複數個接收器佇列中之封包(諸如在圖3之仲裁器347中)仲裁(或序列化)至一緩衝佇列(諸如圖3之集線器先進先出351)中,以作為源邏輯之一週期(或延遲)之信號資料的一跡線。在一實施例中,在方塊905處,程序900之該處理邏輯可根據在該等封包中識別之虛擬通道,以識別該目的地邏輯(諸如圖3之dsch 375)之部分的目的地識別符更新來自該緩衝佇列的該等封包。隨後在方塊907處,程序900之該處理邏輯可根據虛擬通道將該等封包分配至在該等封包中(諸如在圖3之集線器控制355中)識別之該目的地邏輯的部分。程序900之該處理邏輯可將該等封包中之信號資料轉遞至與複數個時脈域驅動之該源邏輯同步的該目的地邏輯。
圖10展示可與本發明之一實施例一起使用之一資料處理系統的一實例。應注意的是,雖然圖10繪示一電腦系統之各種組件,但是其不欲表示將該等組件互連之任意特定的架構或方式,此係此等細節與本發明無密切關係之故。亦應瞭解的是,具有較少組件或也許較多組件之網路電腦及其他資料處理系統亦可與本發明一起使用。圖10之該電腦系統可為(例如)一Apple Macintosh電腦或一SUN SPARC工作站。
如圖10中所示,電腦系統1001(其為一資料處理系統之一形式)包含耦合至一微處理器1003及一唯讀記憶體1007及揮發性隨機存取記憶體1005及一非揮發性記憶體1006之一匯流排1002。如圖10之該實例中所示,該微處理器1003(其可為來自摩托羅拉公司或IBM之一G3或G4微處理器)係耦合至快取記憶體1004。該匯流排1002將此等各種組件互連在一起,且亦將此等組件1003、1007、1005及1006互連至一顯示控制器及顯示器件1008,且互連至週邊器件,諸如可為滑鼠、鍵盤、數據機、網路介面、印表機、掃描器、攝影機及此項技術中熟知的其他器件之輸入/輸出(I/O)器件。通常,該等輸入/輸出器件1010係透過輸入/輸出控制器1009耦合至該系統。通常將該揮發性隨機存取記憶體1005實施為持續需要電源以刷新或維持該記憶體中之資料的動態隨機存取記憶體(DRAM)。該非揮發性記憶體1006通常為一磁性硬碟或一磁性光驅動器或一光學驅動器或一DVD RAM或即使在自該系統移除電源之後仍維持資料之其他類型的記憶體系統。通常,雖然並不需要,但是該非揮發性記憶體亦為一隨機存取記憶體。雖然圖10展示該非揮發性記憶體係直接耦合至該資料處理系統中之該等組件的其餘組件的一局部器件,但是應瞭解的是,本發明可利用遠離該系統之一非揮發性記憶體,諸如透過一網路介面(諸如一數據機或乙太網路介面)耦合至該資料處理系統之一網路儲存器件。該匯流排1002可包含透過如在此項技術中熟知的各種橋接、控制器及/或適配器連接至彼此的一或多個匯流排。在一實施例中,該I/O控制器1009包含用於控制USB週邊設備之一USB(通用串列匯流排)適配器及/或用於控制IEEE-1394週邊設備之一IEEE-1394匯流排適配器。
自此說明易於得知的是,可至少部分以軟體體現本發明之態樣。亦即,可在一電腦系統或其他資料處理系統中回應於執行含於一記憶體(其為一機器或電腦可讀的儲存媒體,諸如唯讀記憶體1007、揮發性隨機存取記憶體1005、非揮發性記憶體1006或一遠端儲存器件)中之指令序列的其之處理器(諸如一微處理器)執行該等技術。在各種實施例中,硬連線電路可與軟體指令組合使用以實施本發明。因此,該等技術並不限於硬體電路與軟體之任意特定組合,亦不限於該資料處理系統所執行之該等指令的任意特定來源。另外,在此說明全文中,各種功能及操作被描述為由軟體程式碼執行或引起以簡化說明。然而,熟習此項技術者會認知,此等表達的意思為該等功能係由一處理器(諸如該微處理器1003)執行該程式碼所引起。
一機器可讀的儲存媒體可用於儲存在被一資料處理系統執行時引起該系統執行本發明之各種方法的軟體及資料。此可執行的軟體及資料可儲存在各種地方,包含(例如)如圖10中所示之唯讀記憶體1007、揮發性隨機存取記憶體1005或非揮發性記憶體1006。此軟體及/或資料之部分可儲存在此等儲存器件之任一者中。
因此,一機器可讀的儲存媒體包含以一機器可存取之一形式儲存資訊的任意機構(例如,一電腦、網路器件、個人數位助理、製造工具、具有一組一或多個處理器之任意器件等等)。例如,一機器可讀的媒體包含可記錄/不可記錄的媒體(例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光學儲存媒體、快閃記憶體器件等等)。
在以上說明書中,已關於本發明之特定例示性實施例描述本發明。顯然,在不脫離如在下列申請專利範圍中提出之本發明的較廣泛的精神及範疇下,可對本發明進行各種修改。因此,應以一說明性意義而非一限制性意義考慮該說明書及圖式。
100...邏輯
101...輸入向量
103...使用者邏輯
105...輸出向量
107...內部向量
109...深度緩衝器
111...使用者邏輯
113...輸出向量
200...系統
201...原始使用者邏輯
203...源晶片
205...信號群組
207...源晶片
209...信號群組
211...信號群組
213...集中器
215...封包切換集線器
217...虛擬通道
219...虛擬通道
221...虛擬通道
223...深度緩衝器記憶體
225...分配器
227...目的地晶片
229...信號群組
231...信號群組
233...目的地晶片
235...信號群組
237...已複製的使用者邏輯
300...架構
301...源FPGA
303...源FPGA
305...子通道
307...子通道
309...封包
311...封包
313...子通道先進先出
315...子通道先進先出
317...仲裁器
319...源同步發送
321...源子通道
323...封包
325...封包
327...子通道先進先出
329...子通道先進先出
331...仲裁器
333...源同步發送
335...源同步接收
337...接收先進先出
339...源同步接收
341...接收先進先出
343...源通道
345...虛擬通道
347...仲裁器
349...匯流排
351...集線器先進先出
353...位址產生器
355...集線器控制
357...儲存器
359...發送先進先出
361...發送先進先出
363...源同步發送
365...源同步發送
367...集中器
369...分配器
371...集線器
373...目的地通道
375...目的地子通道
377...目的地
379...目的地
381...源同步接收
383...解多工器
385...子通道先進先出
387...子通道先進先出
389...解封包
391...解封包
393...源同步接收
395...解多工器
397...子通道先進先出
399...子通道先進先出
400...架構
401...解封包
401...集線器控制器
403...解封包
403...源子通道
403...集中器
405...先進先出位址產生器
407...輸入路由器
409...直接佇列
411...先進先出寫佇列
413...先進先出讀佇列
415...RAM寫佇列
417...RAM讀佇列
419...記憶體控制
421...記憶體介面
423...輸出佇列
425...記憶體
427...輸出仲裁器
429...通道描述符
431...分配器
500...格式
501...經緩衝之封包
503...資料
505...通道ID
507...資料
509...資料
511...通道描述符
515...記憶體空間
517...字元計數
519...目的地子通道
521...目的地晶片
523...源子通道
525...源晶片
527...封包類型
531...已分配的封包
600...組態
601...使用者邏輯
603...使用者邏輯
605...源子通道A1
607...源子通道A2
609...源子通道An
611...源晶片A
613...源子通道Z1
615...源子通道Z2
617...源子通道Zn
619...源晶片Z
635...匯流排控制
637...記憶體控制
639...DDR2記憶體
645...目的地晶片A
647...目的地晶片Z
649...目的地子通道A1
651...目的地子通道A2
653...目的地子通道An
655...目的地子通道Z1
657...目的地子通道Z2
659...目的地子通道Zn
661...使用者邏輯
665...使用者邏輯
667...集中器
669...分配器
671...集線器及緩衝板
1001...電腦系統
1002...匯流排
1003...微處理器
1005...揮發性隨機存取記憶體
1006...非揮發性記憶體
1007...唯讀記憶體
1008...顯示控制器及顯示器件
1009...輸入/輸出控制器
1010...輸入/輸出器件
圖1繪示本發明之邏輯仿真的一實施例;
圖2係用於切換用於邏輯仿真或邏輯設計測試之封包的一例示性系統的一方塊圖;
圖3係繪示用於建立源邏輯與目的地邏輯之間的虛擬通道之一例示性架構的一方塊圖;
圖4係繪示用於集線器控制邏輯以切換封包之一例示性架構的一方塊圖;
圖5係繪示攜帶一邏輯通道之資料的封包格式的實例的一示意圖;
圖6係繪示一封包切換集線器之一例示性組態的一方塊圖;
圖7係繪示根據本發明之一實施例之邏輯仿真的一程序的一流程圖;
圖8係繪示經由虛擬通道轉遞封包之一程序之一實施例的一流程圖;
圖9係繪示集中且分配封包之一程序之一實施例的一流程圖;及
圖10係繪示其中可實踐本發明之某些態樣之一適當的計算環境的一方塊圖。
(無元件符號說明)
Claims (42)
- 一種含有複數個可執行指令之非揮發性機器可讀的媒體,當在一數位處理系統上執行該複數個可執行指令時其等導致該數位處理系統執行用於除錯之一方法,該方法包括:編譯包含與複數個時脈域所驅動之源邏輯的若干部分相關之一或多個源子通道的一源電路之表示,各源子通道產生攜帶來自該源邏輯之該等部分之一者的信號資料的封包;編譯包含與複製該源邏輯之目的地邏輯之若干部分相關的一或多個目的地子通道之一目的地電路的表示,各目的地子通道經由該等封包將該信號資料轉遞至該目的地邏輯之該等部分的一者;組態將該等源子通道映射至該等目的地子通道之一切換邏輯以作為虛擬通道而自該等源子通道轉遞該等封包至該等目的地子通道;及組態耦合至該切換邏輯之一單一佇列以將來自該等源子通道之封包記錄至一封包串流中持續一延遲週期,以分配至該目的地邏輯之該等目的地子通道,以仿真與具有該延遲週期之該複數個時脈域同步之該源邏輯,其中該封包串流表示該信號資料來自該源邏輯之該等部分持續該延遲週期之一跡線,其中該切換邏輯之該組態包含判定該單一佇列容納來自該源邏輯之該等部分持續該延遲週期的該信號資料之該跡線的一容量。
- 如請求項1之機器可讀的媒體,其中該源邏輯之各部分係由該複數個時脈域之一者驅動。
- 如請求項2之機器可讀的媒體,其中該目的地邏輯係由該複數個時脈域驅動,且其中該目的地邏輯之各部分係由該複數個時脈域之一者驅動。
- 如請求項1之機器可讀的媒體,其中該切換邏輯包含集中器邏輯以將來自該等源子通道之該等封包收集至該單一佇列中,該方法進一步包括:以一或多個接收器佇列組態該集中器邏輯以允許來自該等源子通道之該等封包並列到達。
- 如請求項1之機器可讀的媒體,其中該切換邏輯包含分配器邏輯以將來自該等源子通道之該等封包發送至該等目的地子通道,該方法進一步包括:以一或多個發送器佇列組態該分配器邏輯以允許來自該等源子通道之該等封包並列到達該等目的地子通道。
- 如請求項1之機器可讀的媒體,其中該切換邏輯係經由一或多個介面位址耦合至該目的地邏輯,其中該等虛擬通道包含目的地識別符,各目的地識別符識別該等目的地子通道之一者或多者,其中該切換邏輯包含位址產生器邏輯,且其中該切換邏輯之該組態包括:組態該位址產生器邏輯以產生各目的地識別符之該等介面位址之一者。
- 如請求項6之機器可讀的媒體,其中該目的地邏輯係分割為複數個器件,且各目的地識別符識別該複數個器件 之一者。
- 如請求項1之機器可讀的媒體,其中該目的地邏輯之該等部分複製該源邏輯之該等部分,該方法進一步包括:根據當該源邏輯中發生一錯誤時所記錄之一跡線逐步通過該目的地邏輯之該等部分中的一步驟序列以對該錯誤除錯。
- 一種含有複數個可執行指令之非揮發性機器可讀的媒體,當在一數位處理系統上執行該複數個可執行指令時其等導致該數位處理系統執行用於邏輯設計測試之一方法,該方法包括:產生封包以攜帶來自源邏輯之複數個部分的信號資料以用於複製該源邏輯之一目的地邏輯,該等封包包含識別將該源邏輯之該複數個部分映射至該目的地邏輯之複數個部分的虛擬通道的識別符;將所產生之該等封包儲存至該信號資料的一單一佇列中持續一週期;根據該等所識別之虛擬通道將來自該單一佇列之該等封包分配至該目的地邏輯之該等部分,其中該分配包括(i)自該單一佇列循序擷取該等封包及(ii)自該等封包解碼該等識別符以擷取由該等識別符編索引之該等虛擬通道的複數個通道定義;及自該等封包解封包該信號資料以更新該目的地邏輯之該等部分以使該目的地邏輯仿真具有該週期的一延遲之該源邏輯。
- 如請求項9之機器可讀的媒體,其中該等封包係基於包含一標頭欄位及一資料欄位的一封包格式,該標頭欄位用於攜帶該等識別符,且該資料欄位用於攜帶該信號資料。
- 如請求項10之機器可讀的媒體,其中該標頭欄位包含用於指示字元數目之一資料計數的一資料計數欄位以攜帶該資料欄位中之該信號資料。
- 如請求項9之機器可讀的媒體,其中該等通道定義之一特定通道定義係根據該等封包之一特定封包編索引,其中該特定通道定義包含指示一邏輯操作的一指示符。
- 如請求項12之機器可讀的媒體,其中該邏輯操作將忽略該特定封包。
- 如請求項12之機器可讀的媒體,其中該邏輯操作將停止該目的地邏輯及該單一佇列。
- 如請求項12之機器可讀的媒體,其中該特定通道定義包含一記憶體空間識別符,其中該特定封包包含一記憶體位址及資料,且其中該邏輯操作將來自該特定封包之該資料寫入至該記憶體空間中之該記憶體位址。
- 如請求項12之機器可讀的媒體,其中該特定封包包含一記憶體位址,且其中該邏輯操作將自該記憶體位址讀取資料。
- 如請求項16之機器可讀的媒體,其中一匯流排邏輯係耦合至一資料處理器件,且其中該記憶體位址係可由該資料處理器件經由該匯流排邏輯而存取。
- 如請求項17之機器可讀的媒體,該方法進一步包括:以該資料格式化該特定封包,該經格式化之封包包含用於一單獨的通道定義之一單獨的識別符,該單獨的識別符包含複數個目的地識別符之一者。
- 一種含有複數個可執行指令之非揮發性機器可讀的媒體,當在一數位處理系統上執行該複數個可執行指令時其等導致該數位處理系統執行用於邏輯設計測試之一方法,該方法包括:產生表示來自複數個時脈域所驅動之源邏輯之複數個部分的信號資料之封包,各部分屬於該等時脈域之一者,該等封包係根據包含一標頭欄位及一有效負荷欄位的一封包格式格式化,該有效負荷欄位用於攜帶該信號資料,該標頭欄位用於攜帶識別將該源邏輯之該複數個部分映射至複製該源邏輯之目的地邏輯之複數個部分的虛擬通道之識別符;將各封包儲存在對應於該源邏輯之該複數個部分之複數個佇列之一者中;及序列化來自交錯為與該等時脈域之各者同步之一封包串流的該複數個佇列的該等封包以根據該等虛擬通道分配至該目的地邏輯,其中該等封包係循序擷取自該封包串流,其中該識別符係解碼自該等封包以擷取由該等識別符編索引之該等虛擬通道的複數個通道定義。
- 如請求項19之機器可讀的媒體,其中各封包包含識別映射該源邏輯之該等部分之一者的該等虛擬通道之一者的 該等識別符之一者,且其中該封包包含來自該源邏輯之該等部分之該一者的信號資料。
- 如請求項20之機器可讀的媒體,其中該等封包之封包大小為固定,且其中該源邏輯之該等部分之至少兩者包含不同數目的信號。
- 一種含有複數個可執行指令之非揮發性機器可讀的媒體,當在一數位處理系統上執行該複數個可執行指令時其等導致該數位處理系統執行用於邏輯仿真之一方法,該方法包括:回應於經由一介面自源邏輯串列接收封包而解碼來自各封包之一識別符以識別用於識別複製該源邏輯之目的地邏輯之對應部分的複數個虛擬通道之一者,其中該識別符之該解碼包括以該識別符擷取用於該虛擬通道之一通道定義,該等封包係根據包含一標頭欄位及一有效負荷欄位的一封包格式格式化,該標頭欄位用於攜帶該識別符,該有效負荷欄位用於攜帶該目的地邏輯之該所識別部分的信號資料;將該封包儲存至與該目的地邏輯之該所識別部分相關的複數個佇列之一者;根據該封包格式從來自該複數個佇列之該一者的該封包解封包該信號資料;及將該信號資料提供至與該源邏輯同步之該目的地邏輯之該所識別的部分。
- 如請求項22之機器可讀的媒體,其中該封包包含該標頭 欄位中之一字元計數,該字元計數指示攜帶該有效負荷欄位中之該信號資料的字元數目。
- 如請求項22之機器可讀的媒體,其中該目的地邏輯及該源邏輯係由複數個時脈域驅動,且其中該目的地邏輯之各部分屬於該等時脈域之一者。
- 一種積體電路,其包括:源邏輯之複數個部分及目的地邏輯之複數個部分,該目的地邏輯複製該源邏輯;儲存器,其儲存將該源邏輯之該複數個部分的一資料串流映射至該目的地邏輯之該複數個部分的虛擬通道;集中器邏輯,其用於使攜帶來自該源邏輯之該複數個部分之信號資料的封包序列化至該儲存器中之一佇列中持續一延遲,各封包識別該等虛擬通道之一者,其中該佇列係基於一單一記憶體位址空間內之可擴展的記憶體外晶片;及分配器邏輯,其用於在該延遲之後根據該等虛擬通道將來自該佇列之該等封包的該信號資料分配至該目的地邏輯之該等部分。
- 如請求項25之積體電路,其進一步包括:觸發邏輯,其耦合至該電路之已複製部分以致能設定用於除錯之一觸發條件;及時脈控制邏輯,其耦合至該目的地邏輯以在該觸發條件發生時致能暫停該目的地邏輯之執行。
- 如請求項25之積體電路,其中該電路係由複數個時脈域 驅動,且其中該源邏輯之各部分屬於該等時脈域之一者。
- 如請求項27之積體電路,其中該源邏輯及該目的地邏輯係由該複數個時脈域共同驅動。
- 如請求項25之積體電路,其中該等封包包含識別該等虛擬通道之識別符,該積體電路進一步包括:封包邏輯,其用於根據包含一標頭欄位及一有效負荷欄位的一封包格式將該信號資料分封化至該等封包中,該標頭欄位用於攜帶該等識別符且該有效負荷欄位用於攜帶該信號資料。
- 如請求項29之積體電路,其中該等虛擬通道包含識別該目的地邏輯之該複數個部分之目的地識別符。
- 如請求項25之積體電路,其中該集中器邏輯包括:仲裁器邏輯,其用於將來自該源邏輯之該複數個部分的該等封包序列化至儲存在該佇列中之一封包串流中。
- 如請求項31之積體電路,其中該等封包以一時間順序自該源邏輯到達,且其中該仲裁器邏輯在一已知容限內大體上遵循該時間順序維持該封包串流中之該等封包的一順序。
- 如請求項25之積體電路,其進一步包括:耦合至一資料處理器件之匯流排邏輯,該匯流排邏輯能夠存取該儲存器。
- 如請求項25之積體電路,其進一步包括:集線器控制邏輯,其用於以與將該等封包儲存至該佇 列中大體上相等的一速率自該佇列擷取該等封包。
- 如請求項34之積體電路,其中各虛擬通道包含一封包類型,且其中該集線器控制邏輯根據該封包類型判定是否要轉遞一封包。
- 如請求項35之積體電路,其中該集線器控制邏輯根據該封包類型判定是否在不轉遞一封包之情況下執行一記憶體操作。
- 如請求項35之積體電路,其中該集線器控制邏輯根據該封包類型判定是否使該目的地邏輯暫停執行。
- 如請求項37之積體電路,其中該集中器邏輯在該目的地邏輯之執行暫停時停止將該等封包儲存至該佇列中。
- 如請求項34之積體電路,其中該目的地邏輯係在一或多個目的地晶片中組態,其中該等虛擬通道包含用於識別該等目的地晶片之目的地晶片識別符,且其中該集線器控制邏輯包括:位址產生器邏輯,其用於根據該等目的地晶片識別符產生至該等目的地晶片之介面位址。
- 如請求項39之積體電路,其中該儲存器包含與該等目的地晶片相關之發送器佇列,其中該集線器控制邏輯經由該等介面位址將來自該佇列之該等封包儲存至該等發送器佇列中。
- 如請求項34之積體電路,其中該集線器控制邏輯以目的地識別符更新來自該佇列之該等封包。
- 如請求項41之積體電路,其進一步包括: 解封包邏輯,其用於自該等目的地識別符所識別之該目的地邏輯之該複數個部分的該等封包解封包該信號資料。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/692,564 US8638792B2 (en) | 2010-01-22 | 2010-01-22 | Packet switch based logic replication |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201202924A TW201202924A (en) | 2012-01-16 |
TWI447578B true TWI447578B (zh) | 2014-08-01 |
Family
ID=44307624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100102408A TWI447578B (zh) | 2010-01-22 | 2011-01-21 | 用於以封包切換為基礎的邏輯複製之方法和系統 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8638792B2 (zh) |
TW (1) | TWI447578B (zh) |
WO (1) | WO2011091321A2 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8976352B2 (en) * | 2011-08-30 | 2015-03-10 | Sony Corporation | Microparticle analysis apparatus |
CN102521095B (zh) * | 2011-12-19 | 2013-11-20 | 盛科网络(苏州)有限公司 | 队列乱序的芯片模拟方法及系统 |
CN103178996B (zh) * | 2013-03-15 | 2015-07-01 | 烽火通信科技股份有限公司 | 分布式包交换芯片模型验证系统及验证方法 |
US9898563B2 (en) | 2015-11-13 | 2018-02-20 | Mentor Graphics Corporation | Modeling memory in emulation based on cache |
US9990452B2 (en) * | 2015-11-13 | 2018-06-05 | Mentor Graphics Corporation | Low power corruption of memory in emulation |
US9767237B2 (en) | 2015-11-13 | 2017-09-19 | Mentor Graphics Corporation | Target capture and replay in emulation |
KR102510900B1 (ko) * | 2016-02-04 | 2023-03-15 | 삼성전자주식회사 | 반도체 장치 및 반도체 장치의 동작 방법 |
WO2017188920A1 (en) * | 2016-04-25 | 2017-11-02 | Hewlett Packard Enterprise Development Lp | Prioritization for a set of data signals based on skew requirements |
US10796048B1 (en) * | 2017-06-16 | 2020-10-06 | Synopsys, Inc. | Adding delay elements to enable mapping a time division multiplexing circuit on an FPGA of a hardware emulator |
CN109729025B (zh) * | 2017-10-31 | 2021-04-20 | 华为技术有限公司 | 一种处理灵活以太网的数据的方法及相关设备 |
CN109284247B (zh) * | 2018-06-29 | 2021-07-13 | 电子科技大学 | 一种多fpga的多通道采集系统存储同步方法 |
US10796040B2 (en) * | 2019-02-05 | 2020-10-06 | Arm Limited | Integrated circuit design and fabrication |
CN113740851B (zh) * | 2021-09-07 | 2023-06-13 | 电子科技大学 | 一种分时复用单ddr的sar成像数据处理系统 |
CN117294783B (zh) * | 2023-11-24 | 2024-03-22 | 南京华芯科晟技术有限公司 | 芯片验证方法、装置和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5805610A (en) * | 1997-04-28 | 1998-09-08 | Credence Systems Corporation | Virtual channel data distribution system for integrated circuit tester |
TW486633B (en) * | 2000-11-24 | 2002-05-11 | Mellanox Technologies Ltd | Bridge between parallel buses over a packet-switched network |
WO2007016699A2 (en) * | 2005-08-02 | 2007-02-08 | Synplicity, Inc. | Method and system for debug and test using replicated logic |
CN100440154C (zh) * | 2004-01-23 | 2008-12-03 | 飞思卡尔半导体公司 | Dma设备的实时调试支持及其方法 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452231A (en) | 1988-10-05 | 1995-09-19 | Quickturn Design Systems, Inc. | Hierarchically connected reconfigurable logic assembly |
ATE265712T1 (de) | 1988-10-05 | 2004-05-15 | Quickturn Design Systems Inc | Verfahren zur verwendung einer elektronisch wiederkonfigurierbaren gatterfeld-logik und dadurch hergestelltes gerät |
CA2047982C (en) * | 1990-07-27 | 1997-01-28 | Hiroshi Yamashita | Atm cell format conversion system |
US5596742A (en) | 1993-04-02 | 1997-01-21 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
US5761484A (en) | 1994-04-01 | 1998-06-02 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
US5613069A (en) | 1994-12-16 | 1997-03-18 | Tony Walker | Non-blocking packet switching network with dynamic routing codes having incoming packets diverted and temporarily stored in processor inputs when network ouput is not available |
US6000022A (en) | 1997-10-10 | 1999-12-07 | Micron Technology, Inc. | Method and apparatus for coupling signals between two circuits operating in different clock domains |
US6259699B1 (en) | 1997-12-30 | 2001-07-10 | Nexabit Networks, Llc | System architecture for and method of processing packets and/or cells in a common switch |
US6618839B1 (en) | 1999-11-30 | 2003-09-09 | Synplicity, Inc. | Method and system for providing an electronic system design with enhanced debugging capabilities |
US7315838B2 (en) | 2000-04-13 | 2008-01-01 | Superderivatives, Inc. | Method and system for pricing options |
US20030076831A1 (en) | 2000-05-31 | 2003-04-24 | Van Doren Stephen R. | Mechanism for packet component merging and channel assignment, and packet decomposition and channel reassignment in a multiprocessor system |
JP4410921B2 (ja) | 2000-09-22 | 2010-02-10 | 富士通株式会社 | 回線再配置方法およびそのための回路 |
US20020167902A1 (en) | 2001-04-27 | 2002-11-14 | Foster Michael S. | Method and system for performing security via virtual addressing in a communications network |
US7213216B2 (en) | 2002-08-09 | 2007-05-01 | Synplicity, Inc. | Method and system for debugging using replicated logic and trigger logic |
US6904576B2 (en) | 2002-08-09 | 2005-06-07 | Synplicity, Inc. | Method and system for debugging using replicated logic |
US7197680B2 (en) | 2003-04-17 | 2007-03-27 | Arm Limited | Communication interface for diagnostic circuits of an integrated circuit |
US7000036B2 (en) | 2003-05-12 | 2006-02-14 | International Business Machines Corporation | Extended input/output measurement facilities |
US7434192B2 (en) | 2004-12-13 | 2008-10-07 | Altera Corporation | Techniques for optimizing design of a hard intellectual property block for data transmission |
US20060248375A1 (en) | 2005-04-18 | 2006-11-02 | Bertan Tezcan | Packet processing switch and methods of operation thereof |
US7375550B1 (en) | 2005-07-15 | 2008-05-20 | Tabula, Inc. | Configurable IC with packet switch configuration network |
US7596743B2 (en) | 2005-09-28 | 2009-09-29 | Ati Technologies Inc. | Method and apparatus for error management |
WO2007138385A1 (en) | 2006-05-29 | 2007-12-06 | Freescale Semiconductor, Inc. | Method for transmitting data from multiple clock domains and a device having data transmission capabilities |
KR100818800B1 (ko) | 2006-06-27 | 2008-04-01 | 삼성전자주식회사 | Fifo 장치를 구비하는 데이터 처리장치와 데이터처리방법 |
US8001307B1 (en) | 2007-04-27 | 2011-08-16 | Network Appliance, Inc. | Apparatus and a method to eliminate deadlock in a bi-directionally mirrored data storage system |
US8756557B2 (en) | 2007-05-09 | 2014-06-17 | Synopsys, Inc. | Techniques for use with automated circuit design and simulations |
US7904859B2 (en) | 2007-05-09 | 2011-03-08 | Synopsys, Inc. | Method and apparatus for determining a phase relationship between asynchronous clock signals |
US8121825B2 (en) | 2008-04-30 | 2012-02-21 | Synopsys, Inc. | Method and apparatus for executing a hardware simulation and verification solution |
US7861070B2 (en) | 2008-06-12 | 2010-12-28 | National Tsing Hua University | Trace compression method for debug and trace interface wherein differences of register contents between logically adjacent registers are packed and increases of program counter addresses are categorized |
US7962458B2 (en) | 2008-06-12 | 2011-06-14 | Gravic, Inc. | Method for replicating explicit locks in a data replication engine |
US8401038B2 (en) | 2008-12-17 | 2013-03-19 | Viasat, Inc. | False lock detection for physical layer frame synchronization |
US8484613B2 (en) | 2010-01-28 | 2013-07-09 | Synopsys, Inc. | Optimizing bounds checking using computer algebra |
-
2010
- 2010-01-22 US US12/692,564 patent/US8638792B2/en active Active
-
2011
- 2011-01-21 TW TW100102408A patent/TWI447578B/zh active
- 2011-01-21 WO PCT/US2011/022149 patent/WO2011091321A2/en active Application Filing
-
2014
- 2014-01-24 US US14/162,757 patent/US9052357B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5805610A (en) * | 1997-04-28 | 1998-09-08 | Credence Systems Corporation | Virtual channel data distribution system for integrated circuit tester |
TW486633B (en) * | 2000-11-24 | 2002-05-11 | Mellanox Technologies Ltd | Bridge between parallel buses over a packet-switched network |
CN100440154C (zh) * | 2004-01-23 | 2008-12-03 | 飞思卡尔半导体公司 | Dma设备的实时调试支持及其方法 |
WO2007016699A2 (en) * | 2005-08-02 | 2007-02-08 | Synplicity, Inc. | Method and system for debug and test using replicated logic |
Also Published As
Publication number | Publication date |
---|---|
WO2011091321A3 (en) | 2011-10-27 |
TW201202924A (en) | 2012-01-16 |
US20110185241A1 (en) | 2011-07-28 |
WO2011091321A2 (en) | 2011-07-28 |
US8638792B2 (en) | 2014-01-28 |
US9052357B2 (en) | 2015-06-09 |
US20140137056A1 (en) | 2014-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI447578B (zh) | 用於以封包切換為基礎的邏輯複製之方法和系統 | |
EP2526490B1 (en) | Method and system for packet switch based logic replication | |
US7257655B1 (en) | Embedded PCI-Express implementation | |
US7779286B1 (en) | Design tool clock domain crossing management | |
KR101771265B1 (ko) | 의사-동기 시분할 멀티플렉싱 | |
JP2017525065A (ja) | Sfenceを用いずに最適化されたpio書込みシーケンスを用いるパケット送信 | |
TW200539628A (en) | Method and apparatus for shared I/O in a load/store fabric | |
CN106021141B (zh) | 半导体设备 | |
US20020184453A1 (en) | Data bus system including posted reads and writes | |
US11985078B2 (en) | Packet arbitration for buffered packets in a network device | |
US11442844B1 (en) | High speed debug hub for debugging designs in an integrated circuit | |
US6961803B1 (en) | Sliced crossbar architecture with no inter-slice communication | |
KR101495811B1 (ko) | 고속의 패킷 라우팅 시스템 장치 및 방법 | |
TW201810037A (zh) | 輸入輸出擴展晶片以及其驗證方法 | |
JP3578075B2 (ja) | ディスクアレイ制御装置及びディスクアレイ制御方法 | |
EP3921740A1 (en) | Circuit for and method of configuring and partially reconfiguring function blocks of an integrated circuit device | |
US11748289B2 (en) | Protocol aware bridge circuit for low latency communication among integrated circuits | |
US11029914B2 (en) | Multi-core audio processor with phase coherency | |
CN102521180A (zh) | 一种多通道实时直读存储器结构 | |
US7353484B1 (en) | Methods and apparatus for variable latency support | |
US9628085B1 (en) | Method and device for accelerated access to signals of a programmable logic device | |
KR102584507B1 (ko) | 링크 계층 데이터 패킹 및 패킷 흐름 제어 기법 | |
US12099790B1 (en) | High-speed communication between integrated circuits of an emulation system | |
TWI766211B (zh) | 可重組態資料處理器的組態加載和卸載 | |
US7269681B1 (en) | Arrangement for receiving and transmitting PCI-X data according to selected data modes |