TWI475382B - 用於以封包切換為基礎的邏輯複製之方法和系統 - Google Patents

用於以封包切換為基礎的邏輯複製之方法和系統 Download PDF

Info

Publication number
TWI475382B
TWI475382B TW100102409A TW100102409A TWI475382B TW I475382 B TWI475382 B TW I475382B TW 100102409 A TW100102409 A TW 100102409A TW 100102409 A TW100102409 A TW 100102409A TW I475382 B TWI475382 B TW I475382B
Authority
TW
Taiwan
Prior art keywords
logic
source
destination
packets
channel
Prior art date
Application number
TW100102409A
Other languages
English (en)
Other versions
TW201145017A (en
Inventor
Robert Erickson
Original Assignee
Synopsys Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Synopsys Inc filed Critical Synopsys Inc
Publication of TW201145017A publication Critical patent/TW201145017A/zh
Application granted granted Critical
Publication of TWI475382B publication Critical patent/TWI475382B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Logic Circuits (AREA)

Description

用於以封包切換為基礎的邏輯複製之方法和系統
本發明之實施例係關於對積體電路進行除錯之領域,且更具體言之係關於使用以封包切換為基礎之虛擬通道複製邏輯來對積體電路進行除錯。
設計積體電路(IC)或系統通常需要核對及/或除錯以確保設計正確性。一種共通實踐可基於硬體輔助核對(HAV),HAV藉由翻製(clone)邏輯模組及經由FIFO(先進先出)延遲緩衝器將輸入以管線方式輸送(pipe)至該模組來提供該模組之可見性。美國專利第7,213,216號描述了此實踐之實例。可使用經緩衝之輸入來對該經翻製之邏輯模組執行用於該邏輯模組之測試案例的模擬。然而,若一模組含有多個時脈(或在多個時脈域中),則HAV可能需要在單獨FIFO中緩衝至每一時脈域之所有輸入。結果,需要額外硬體及複雜軟體來使每一時脈域中之模擬操作同步。
此外,實施於晶載RAM(隨機存取記憶體)中之FIFO可能受到未使用記憶體空間之可用性的限制。為了增加在FIFO中緩衝之量,可使用諸如DDR2(雙資料速率2)或SDRAM(同步動態RAM)之晶片外(off-chip)記憶體。然而,板面積及/或接腳限制可能禁止針對每一時脈域使用單一實體記憶體來實施FIFO。因此,可能需要自單一實體記憶體建置用於不同時脈域之多個FIFO。
然而,晶片外記憶體可能受到固定資料寬度的限制。此外,用於每一FIFO之單獨位址空間可能具有由(例如)記憶體環境切換(context switch)中之顯著耗用所引起之嚴重頻寬限制。
因此,用於硬體輔助設計核對之傳統資料緩衝器並不提供高效且可調之解決方案。此外,關於邏輯設計或核對之背景資訊可見於以下美國專利中: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)中之一單一封包串流中,該單一緩衝器利用一記憶體(例如,晶片外記憶體)之接近全部的潛在頻寬。該等封包可大致(在一仲裁器誤差邊限內)按該等封包即時發生之次序而置放於記憶體中。使用一單一緩衝器之能力可允許該封包切換集線器消除使對應於不同時脈域之單獨緩衝器同步之複雜性。在其他實施例中,該封包切換集線器可提供在晶片之間投送信號的靈活性,從而捕獲特性化資料及/或發起用於系統啟動(bring-up)之測試向量。
本發明包括方法及執行此等方法之裝置,該等裝置包括執行此等方法之資料處理系統,及在執行於資料處理系統上時使該等系統執行此等方法之電腦可讀媒體。
本發明之其他特徵將自隨附圖式及以下之[實施方式]而變得顯而易見。
在隨附圖式之諸圖中藉由實例(且非限制)來說明本發明,在該等圖式中類似參考數字指代類似元件。
描述使用虛擬通道來複製邏輯之系統及方法之實施例。在以下描述中,闡述眾多特定細節。然而應理解,可在無此等特定細節之情況下實踐本發明之實施例。在其他例子中,未詳細展示熟知之電路、結構及技術以便不會混淆對此描述之理解。
貫穿本說明書對「一實施例」或「實施例」之參考意味結合該實施例而描述之一特定特徵、結構或特性包括於本發明之至少一實施例中。因此,貫穿本說明書在各處出現之片語「在一實施例中」或「在實施例中」未必指代相同實施例。此外,在一或多個實施例中可以任何合適方式組合該等特定特徵、結構或特性。
在一實施例中,一封包切換集線器可經程式化以將來自一原始電路(或源邏輯)之信號資料集中為一單一封包串流,該單一封包串流經饋入至一外部(例如,晶片外)記憶體中之FIFO緩衝器中。可自該FIFO擷取該封包串流且將其轉遞至(例如)複製該原始電路之翻製電路。在一些實施例中,該翻製電路可能不需要複製整個原始電路。實情為,該翻製電路可複製該原始電路之(例如)在某一時脈域下操作之特定部分。在美國專利第7,213,216號中描述了一種使用複製原始電路之至少一部分的翻製電路之系統之實例,該專利以引用的方式併入本文中。
在一實施例中,一封包切換集線器可包括仲裁器邏輯及/或集線器控制邏輯。仲裁器邏輯可將在大約相同時間(例如,在某些時脈循環內)到達切換邏輯之多個封包集中至一FIFO中。集線器控制邏輯可以實質上等於封包之傳入速率之速率自該FIFO順序地擷取該等封包以供散佈。該單一FIFO(在單一時脈下操作)可緩衝來自該源電路或原始電路中之多個時脈域之封包,而非針對該源電路或原始電路中之每一時脈域使用多個小型FIFO。此單一FIFO可將該等經緩衝之封包提供至一目的地電路或翻製電路,該目的地電路或翻製電路包括對應於該源電路或原始電路中之該多個時脈域(且與之同步)的多個時脈域。在一些實施例中,該FIFO可利用晶片外記憶體之多於80%的頻寬。
封包切換集線器可定義在何處經由一虛擬通道將信號資料自原始電路或源電路之一部分發送至目的地電路之另一部分。通常,一虛擬通道可對應於自源電路一起轉遞以在稍後用於經複製之目的地電路中之信號資料的群組。來自不同時脈域的信號資料可屬於單獨虛擬通道。該封包切換集線器維持資料信號在源側及目的地側兩者上之兩個或更多時脈域之間的同步。以此方式,目的地器件中之經翻製之邏輯可以與原始邏輯接收資料信號之方式同步的方式來接收資料信號。
可將信號資料封裝至對應於資料路徑或通道之封包中。舉例而言,具有16個大小為64位元之字的封包可作為資料路徑來攜載來自一千個信號之信號資料。一封包可包括一通道識別符以供集線器(或封包切換集線器)判定在何處轉遞該封包。在一實施例中,集線器可將根據通道識別符來標索引(或定址)之通道描述符或虛擬通道定義儲存於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能夠執行延遲達一延遲週期Tdbf 以模擬使用者邏輯103的邏輯操作。輸入向量101及內部向量107可以與延遲達該延遲週期Tdbf 之使用者邏輯103實質上同步(例如,在一或多個時脈循環內)之方式自深度緩衝器109饋入使用者邏輯111。因此,與來自使用者邏輯103之輸出向量105相比,來自使用者邏輯111之輸出向量113可延遲達延遲週期Tdbf
在一實施例中,邏輯100可包括用以將輸入向量101及內部向量107記錄為信號跡線持續延遲週期Tdbf 之深度緩衝器109。深度緩衝器109可基於一固定寬度之佇列,該佇列儲存包括來自輸入向量101及內部向量107之信號資料的封包。深度緩衝器109之容量或深度可取決於由使用者邏輯103之輸入向量101及內部向量107所表示之信號的數目。另外,深度緩衝器109之容量要求可取決於所指定之延遲 週期Tdbf 及與輸入向量101及內部向量107相關聯之時脈域。在一實施例中,深度緩衝器109可基於一晶片外記憶體以提供用於適應在設計及/或對使用者邏輯103進行除錯中之多種容量要求的可調性。
在一些實施例中,邏輯100可包括觸發器邏輯及控制邏輯以允許基於儲存於深度緩衝器109中之信號跡線而以單一步驟(single-stepping)通過使用者邏輯111,從而對使用者邏輯103進行除錯。通常,該觸發器邏輯可偵測關於來自使用者邏輯103之選定信號之觸發條件的發生。舉例而言,控制邏輯可控制驅動使用者邏輯103及使用者邏輯111兩者之不同時脈域中的時脈。在一實施例中,在偵測到觸發器條件後,控制邏輯可隨即停止該等時脈以臨時凍結對使用者邏輯103之邏輯操作及/或使得使用者邏輯111之執行暫停。因此,深度緩衝器109可提供先前Tdbf 週期期間之信號跡線以允許使用者單步通過延遲達Tdbf 之使用者邏輯111以檢驗使用者邏輯103之歷程。
圖2為說明用於切換封包以供邏輯模擬或邏輯設計測試之例示性系統之方塊圖。在一實施例中,圖1之邏輯100可基於系統200之一或多個組件,例如,提供深度緩衝器記憶體223以用於圖1之深度緩衝器109。系統200可包括組態於源晶片203、207中之原始使用者邏輯201及組態於目的地晶片227、233中以翻製使用者邏輯201之使用者邏輯237。晶片203、207、227、233可為諸如FPGA器件之可程式化器件。可自使用者邏輯201選擇信號群組205、209、 211以更新使用者邏輯237之相應信號群組229、231、235從而複製使用者邏輯201。每一信號群組可包括表示相應使用者邏輯之一部分的一或多個信號。在一實施例中,可藉由單獨時脈域中之複數個時脈(同步及/或非同步)驅動使用者邏輯201。一信號群組內之信號可屬於單一時脈域。
封包切換集線器215可定義虛擬通道以將來自原始使用者邏輯201中之源信號群組的資料轉遞至經翻製之使用者邏輯237中之目的地信號群組,同時將該資料記錄為共用共同記憶體空間之信號跡線。舉例而言,虛擬通道217可允許來自源信號群組205之信號資料在該信號資料作為信號跡線在深度緩衝器記憶體223中停留持續一延遲週期之後更新目的地信號群組229。在一實施例中,不同時脈域中之封包切換集線器215中之單獨虛擬通道217、219及221的信號跡線可藉由共同延遲週期而同步,以允許經翻製之使用者邏輯237延遲達共同延遲週期以模擬原始使用者邏輯201。
封包切換集線器215可包括諸如ROM(唯讀記憶體)或RAM之儲存器,該儲存器儲存經由識別源信號群組及目的地信號群組之識別符來定義虛擬通道之通道定義。該等識別符可包括識別源信號群組(諸如,信號群組205)之源識別符及識別目的地信號群組(諸如,信號群組229)之目的地識別符。封包切換集線器215可藉由將自源信號群組(諸如,信號群組205)接收之資料遞送至用於在該虛擬通道中所識別之目的地信號群組的介面位址而跨越虛擬通道(諸如, 虛擬通道217)將該信號資料轉遞至目的地信號群組(諸如,信號群組229)。
在一實施例中,可經由封包切換集線器215跨越虛擬通道(諸如,虛擬通道217、219、221)將來自原始使用者邏輯201之資料以封包形式攜載至翻製邏輯237。可根據已知(或預組態)格式來封裝每一封包,該格式包括識別虛擬通道之識別符及攜載來自源信號群組之資料的有效負載。封包切換集線器215可根據自所接收之封包提取之識別符來識別虛擬通道。
在一實施例中,封包切換集線器215可將自使用者邏輯201接收以用於多個虛擬通道217、219、221之封包推送至深度緩衝器記憶體223中之單一佇列中以記錄使用者邏輯201之信號跡線。隨著每一封包自該佇列彈出(pop out),封包切換集線器215可將該封包轉遞至如在虛擬通道中所定義之目的地信號群組。在一實施例中,封包切換集線器215可根據該虛擬通道藉由識別該目的地信號群組之目的地識別符來更新自該佇列擷取之封包。
集中器邏輯213可將來自原始使用者邏輯201之資料封裝為封包,以將信號資料與識別虛擬通道之識別符攜載至經翻製之使用者邏輯237。在一實施例中,集中器邏輯213可根據與原始使用者邏輯201同步之時間次序將用於多個虛擬通道之封包收集(或序列化)至封包串流中。時間次序可指示有序關係內之時間差。集中器邏輯213可以線性次序將與使用者邏輯201之單獨時脈域相關聯之封包推送於佇 列內。在一實施例中,集中器邏輯213可維持在時間上與該等單獨時脈域同步之該線性次序。
散佈器邏輯225可針對虛擬通道(諸如,虛擬通道217)自到達經翻製之使用者邏輯237之封包解封裝信號資料,以更新在該虛擬通道中所識別之信號群組(諸如,信號群組229)。在一實施例中,散佈器225可自深度緩衝器記憶體223中之佇列擷取封包以將來自原始使用者邏輯201之信號資料以滿足以下情況之速率散佈至經翻製之使用者邏輯237:使經翻製之使用者邏輯237能夠藉由用於在佇列中記錄信號跡線之延遲而與原始使用者邏輯201同步。可將來自原始使用者邏輯201之封包以如下速率推送至該佇列中:該速率等於以與驅動原始使用者邏輯201及經翻製之使用者邏輯237兩者之一或多個時脈域同步的方式將封包自佇列彈出至經翻製之使用者邏輯237的速率。用於目的地信號群組之虛擬通道(例如,用於信號群組229之虛擬通道217)可與目的地晶片器件(例如,目的地晶片227)相關聯。散佈器225可基於與封包相關聯之虛擬通道來識別至目的地晶片器件之介面位址以遞送該封包。
圖3為說明用於在源邏輯與目的地邏輯之間建立虛擬通道的例示性架構之方塊圖。例示性架構300可包括用以支援圖2之系統200的一或多個組件。在一實施例中,源晶片(例如,FPGA晶片)301、303可包括具有經識別為一或多個源副通道(諸如,副通道305、307)之信號群組的源邏輯。類似地,目的地晶片377、379可包括(例如)翻製該源邏輯 之目的地(或匯點(sink))邏輯,其具有經識別為一或多個目的地副通道(諸如,副通道375)之信號群組。源副通道之數目可與目的地副通道之數目相同或不同。可藉由用於相應邏輯(例如,源邏輯或目的地邏輯)之一時脈域(或時脈)來驅動每一副通道。
在一實施例中,源晶片及目的地晶片可基於各自處於單獨積體電路中之單獨可程式化邏輯器件。或者,源晶片及目的地晶片可共用實施於一積體電路內之單一邏輯器件。在一實施例中,集線器371可為與源晶片301、303及目的地晶片377、379耦接之封包切換集線器,以作為虛擬通道(諸如,用於源副通道源副通道403及目的地副通道dsch 375之虛擬通道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)以將來自該源晶片內之複數個源通道佇列(例如,源通道先進先出313、315)的封包仲裁至一序列中(或將該等封包序列化)以供發送邏輯(例如,源同步發送319)轉遞至集線器(例如,集線器371)。該仲裁器邏輯可經組態以維持封包間之次序或允許該等封包在序列中彼此交錯時與每一各別源副通道同步。在一實施例中,仲裁器邏輯可以公平共用之方式(例如,基於公平共用演算法)自多個源通道佇列交替地選擇封包。可應用其他選擇方案。
集線器371可為與(例如)圖2之封包切換集線器215類似之封包切換集線器,其經組態有集中器邏輯367,該集中器邏輯367用於將來自每一源晶片(例如,源301、303)之封包收集至單一封包串流中,同時以與驅動該等源晶片之多個時脈域同步之方式維持該封包串流中之封包間的次序。在一實施例中,集中器邏輯可包括用於每一源晶片之源通道,諸如用於源303之sch 343。源通道可包括接收邏輯(例如,源同步接收335、339),該接收邏輯將來自耦接至源晶片之介面的封包收集至接收佇列(例如,接收先進先出337、341)中。接收佇列可儲存具有來自源晶片中之多個副通道的經序列化之封包的封包串流,以允許集線器將來自多個源晶片之封包串流合併至一單一佇列中,同時以與驅動該多個源晶片之多個時脈域同步的方式保持該等封包間之時間次序。
在一實施例中,集中器邏輯可包括記憶體仲裁器邏輯(例如,仲裁器347),以將自多個源晶片301、303接收之封包仲裁至單一封包串流中,同時以與驅動源晶片301、303之多個時脈域同步的方式維持該封包串流內之封包間的次序。舉例而言,仲裁器347可使用循環方案來決定接下來自各自對應於一源晶片之多個接收佇列(例如,接收先進先出337、341)擷取哪一封包。可應用其他擷取方案。記憶體仲裁器邏輯可核對封包是否無序地到達以確保在大約相同時間將來自不同副通道之在大約相同時間到達之封包轉遞至目的地副通道(例如,在已知誤差邊限內)。
在一實施例中,集線器371可包括集線器佇列(例如,集線器先進先出351),該集線器佇列係藉由一處理環境內之記憶體控制邏輯管理(例如,在無需環境切換的情況下)。仲裁器347可將自源通道佇列337、341...到達之多個封包串流合併至集線器佇列351中作為一封包串流。根據一實施例,一集線器佇列可基於晶片外記憶體(諸如,圖2之深度緩衝器記憶體223)以按比例調整其用於容納來自不同源晶片中藉由多個時脈域驅動之多個源副通道的大量封包之容量。集線器佇列可與可組態深度相關聯,該深度指示在記憶體中所分配之集線器佇列之大小或容量。
可根據驅動集線器佇列之時脈域及該佇列之記憶體讀取及寫入叢發大小而以實質上相等之速率(例如,在誤差邊限內)將封包推送至集線器佇列中及自集線器佇列彈出。因此,集線器佇列可充當通過集線器佇列之封包串流中的每一封包之延遲佇列。該延遲佇列之長度可取決於(例如)驅動集線器佇列之時脈域及/或經組態以用於集線器佇列之深度(或大小)。通常,可由在高於驅動該源邏輯中之副通道307、305之多個時脈域的頻率下之時脈域來驅動集線器佇列351,以允許通過該佇列之封包串流以與該多個時脈域同步之方式攜載來自副通道307、305的信號資料。
集線器371可包括集線器控制邏輯(例如,集線器控制 355),該集線器控制邏輯可識別用於自集線器佇列351擷取(或彈出)之每一封包的虛擬通道,以根據虛擬通道將該封包轉遞至目的地。集線器控制355可以仲裁器347將封包寫入至集線器佇列351中之速率實質上相等之速率來自集線器佇列351讀取封包。在一實施例中,集線器控制邏輯可經組態以在該集線器佇列為滿的或足夠滿的時開始自集線器佇列讀取封包或擷取封包。若儲存於集線器佇列中之封包串流所佔用的記憶體空間超過經分配以用於集線器佇列之總記憶體空間之某一位準(例如,基於可組態百分比),則集線器佇列可為足夠滿的。
在一實施例中,集線器控制355可根據自封包擷取之通道識別符來擷取儲存於儲存器357中之虛擬通道定義。集線器控制邏輯可經組態有用於每一封包之指定通道識別符的封包格式。集線器控制邏輯可基於通道識別符來查找目的地位址以轉遞封包。在一實施例中,儲存器357可為儲存藉由通道識別符標索引之虛擬通道定義的ROM。
根據一實施例,虛擬通道可根據用於識別目的地晶片(例如,目的地377、379)及目的地副通道(例如,目的地晶片中之dsch 375)之目的地晶片識別符及目的地副通道識別符來指定封包之目的地。集線器控制355可使用目的地晶片識別符經由位址產生器邏輯(例如,addr gen 353)來產生目的地晶片之位址。在一實施例中,集線器控制355可藉由虛擬通道中所定義之目的地副通道識別符來更新封包,從而允許目的地晶片將該經更新之封包散佈至目的地副通 道。
集線器371可經組態有散佈器邏輯369以用於散佈自源晶片(例如,源301、303)收集之封包串流。散佈器邏輯可包括集線器控制邏輯(諸如,集線器控制355)以判定在何處轉遞封包。在一實施例中,散佈器邏輯可包括用於每一目的地晶片之目的地通道,諸如用於目的地晶片379之目的地通道373。目的地通道可包括發送佇列(諸如,發送先進先出359、361)以儲存自集線器控制邏輯散佈以用於目的地晶片之封包。每一目的地通道可包括發送邏輯(例如,源同步發送363、365)以經由耦接至目的地晶片之介面將封包自發送佇列順序地發送至目的地晶片。在一實施例中,位址產生器邏輯353可基於目的地晶片識別符而向集線器控制355提供目的地晶片(例如,目的地晶片379)之發送佇列(例如,發送先進先出361)的位址。
目的地晶片(例如,目的地晶片377、379)可包括目的地散佈器邏輯以接收攜載指定用於目的地晶片中之目的地副通道之信號資料的封包。目的地散佈器邏輯可包括接收邏輯(例如,源同步接收381、393)以經由與集線器371之介面接收所發送之封包。在一實施例中,接收邏輯可與集線器371同步(例如,共用一時脈域)以接收來自集線器371之封包。接收邏輯可包括解多工器邏輯(例如,demux 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可隨即(例如)經由旁側信號(side signal)針對每一目的地晶片中之計數器邏輯同時起始對共同量進行計數。集線器371可在發送第一封包之前同時開始對該相同共同量進行計數。在另一實施例中,集線器371可藉由與每一個別目的地晶片交換交握信號來仲裁目的地晶片間的同步。
圖4為說明用以切換封包之集線器控制邏輯之例示性架構的方塊圖。舉例而言,圖3之集線器控制邏輯355可基於架構400之一部分。在一實施例中,架構400可經組態有集線器集中器邏輯(例如,集中器403)以(諸如)自圖3之集線器佇列351或匯流排349順序地接收封包,以供輸入路由器邏輯(例如,輸入路由器407)投送至適當佇列。輸入路由器邏輯可解碼所接收之封包以基於儲存於ROM中(諸如,儲存於圖3之儲存器357中)之通道定義作出封包投送決策。通道描述符429可包括用於輸入路由器407之通道定義的複本。
在一實施例中,輸入路由器邏輯可識別所接收之封包的類型以基於由自該所接收之封包解碼之識別符所識別的通道定義來判定哪一佇列轉遞該所接收之封包。舉例而言, 當將該封包自集線器轉遞至目的地時,可將類型為「直接」之封包投送至與高優先級相關聯之直接佇列409以減小可能之潛時。
在一些實施例中,輸入路由器邏輯可基於通道定義根據與所接收之封包相關聯的模式及記憶體空間來判定哪一佇列轉遞該所接收之封包。舉例而言,取決於該模式及/或相關聯記憶體空間,可將模式為「讀取」或「寫入」之封包分類至單獨記憶體佇列(諸如,FIFO寫入佇列411、fifo讀取佇列413、RAM寫入佇列415、RAM讀取佇列417...)中。寫入佇列(諸如,佇列411、415)可含有位址及資料兩者。讀取佇列(諸如,佇列413、417)可包括位址而無資料。針對不同記憶體空間而分離佇列可允許在多個記憶體組間交錯記憶體存取。在一實施例中,FIFO佇列(諸如,佇列411、413)可包括經保證以處於不同記憶體組中之記憶體存取位址(例如,讀取或寫入)從而用於在最大叢發中交錯記憶體存取。
記憶體控制邏輯(例如,記憶體控制419)在各種輸入佇列(諸如,佇列411、佇列413、佇列415、佇列417...)間進行仲裁以經由記憶體介面421將來自該等輸入佇列之記憶體存取請求按序發送至記憶體(諸如,DDR記憶體425)。在一實施例中,記憶體控制邏輯可追蹤記憶體讀取請求,且格式化針對該等記憶體讀取請求所得之輸出封包並將該等輸出封包插入至輸出佇列(諸如,輸出佇列423)中。在一實施例中,架構400可包括輸出仲裁器邏輯(例如,輸出仲裁器427)以根據通道識別符429在用於直接通道之直接佇列409與用於記憶體通道之輸出佇列423之間選擇封包,從而將該等封包轉遞至集線器散佈器邏輯(例如,散佈器431)以用於封包散佈(例如,經由圖3之散佈器邏輯369)。
圖5為說明用以攜載一虛擬通道之信號資料的封包格式之實例之示意圖。舉例而言,圖2之虛擬通道217、219、221可基於根據格式500產生之封包。在一實施例中,封包可為源邏輯之一部分與目的地邏輯之另一部分之間的基元通信單元。封包可包括變化數目個字,例如,多達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)中所識別之目的地副通道有關。另一態樣可與如在目的地晶片識別符欄位(諸如,目的地晶片chip 521)中所識別之實體目的地晶片有關。另一態樣可與源邏輯中之如在源副通道欄位(諸如,source subch 523)中所識別的源副通道有關。另一態樣可與如在源晶片識別符欄位(諸如,源晶片525)中所識別之源晶片有關。又一態樣可與如在封包類型識別符欄位(諸如,封包類型527)中所識別之封包類型有關。儘管說明4位元欄位中之例示性識別符,但通道描述符可包括具有其他適用位元寬度之欄位且可包括額外資訊欄位。又,通道描述符之格式可取決於通道封包類型而不同。
在一實施例中,封包類型527可包括待由封包切換集線器(諸如,圖3之集線器371中之集線器控制邏輯355)解譯之碼,如下表中:
經散佈之封包531可表示(例如)在通過封包切換集線器中之佇列(諸如,圖3之集線器佇列531)的延遲後自經緩衝之封包501重新格式化的基於64位元的封包之實例。在一實施例中,經散佈之封包531可攜載與經緩衝之封包501中之資料相同的資料503、507、509,其中該標頭經重新格式化以攜載自相應通道描述符中之欄位(諸如,字計數517及目的地晶片subch 519)複製(copy)之字計數及識別目的地副通道之識別符。結果,經緩衝之封包及經散佈之封包可共用相同封包信號資料,但攜載單獨標頭資訊。
圖6為說明封包切換集線器之例示性組態的方塊圖。舉 例而言,圖3之架構300可基於組態600中所說明之一或多個組件。在一實施例中,源FPGA晶片包括FPGA-A 625、FPGA-B 627。FPGA晶片可經組態有(源)使用者邏輯601、603。目的地FPGA晶片FPGA-C 663、FPGA-D 667可經組態有翻製使用者邏輯601、603之(目的地)使用者邏輯661、665。集線器及緩衝器板671可為電路板,該電路板經組態有虛擬通道,以藉由基於單一緩衝器之延遲而以同步方式來經由該單一緩衝器將信號資料作為封包自源晶片轉遞至目的地晶片以供使用者邏輯661、665翻製使用者邏輯601、603。
在一實施例中,板671可經由HSTDM(高速時域多工器)介面621、623、641、643與FPGA晶片耦接。至源晶片之介面可對應於源通道(諸如,圖3之源sch 343)。在一實施例中,介面可包括非同步FIFO(諸如,AFIFO 629、631),該非同步FIFO執行與圖3之接收先進先出337、341類似之邏輯操作。每一源副通道(諸如,源副通道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可包括通道邏輯源晶片(Sourcechip)A 611、Z 619以將攜載來自每一晶片中之源副通道之信號資料的封包序列化至一至集線器及緩衝器板 671之介面(例如,基於與包括圖3之仲裁器317之源通道邏輯類似的邏輯)。相應地,目的地晶片A 645、Z 647中之目的地晶片(目的地晶片chip)A 645、647可將來自集線器及緩衝器板671之封包串流散佈至該晶片中之每一個別目的地副通道(例如,基於與包括圖3之demux 395之目的地通道邏輯類似的邏輯)。集線器及緩衝器板671可包括基於仲裁器邏輯(諸如,圖3之仲裁器347)之集中器667以進一步將來自對應於源通道之每一晶片的封包串流序列化至記憶體639中之單一延遲緩衝器中。另外,集線器及緩衝器板671中之散佈器669可將來自單一延遲緩衝器之封包散佈至對應於目的地通道之每一目的地晶片(例如,基於與圖3之集線器控制355類似的邏輯)。
在一實施例中,集線器及緩衝器板671可包括儲存於記憶體639中之虛擬通道定義,該等虛擬通道定義將每一源副通道(諸如,A1 605...Zn 617)映射至目的地副通道(諸如,A1 649...Zn 659)。記憶體控制637可為記憶體控制,其在無環境切換之情況下在單一記憶體環境內管理用於多個虛擬通道之不同位址空間中之攜載信號資料的封包。匯流排控制(例如,UMR控制635)可控制耦接至資料處理系統(諸如,PC或工作站)之匯流排633。
圖7為說明根據本發明之一實施例的用於邏輯模擬之程序的流程圖。可藉由處理邏輯來執行例示性程序700,該處理邏輯可包含硬體(電路、專用邏輯等)、軟體(諸如,在專用機器上執行)或兩者之組合。舉例而言,軟體工具可 經組態以自動地合成或產生根據程序700之用以模擬用於除錯之邏輯的設計。
在一實施例中,在區塊701,程序700之處理邏輯可編譯包括源邏輯之源電路之表示以用於除錯。電路之表示可基於硬體描述語言,諸如VHDL(超高速度積體電路(VHSIC)硬體描述語言)、Verilog或其他HDL(硬體描述語言)等。程序700之處理邏輯可產生諸如RTL(暫存器轉移層級)接線對照表的接線對照表或用於映射至一或多個器件(諸如,圖2之源晶片203、207)中之其他低層級邏輯表示程式碼以實施源電路。
源電路可包括一或多個源副通道(例如,圖3之源副通道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中所定義之虛擬通道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及ROM 1007以及揮發性RAM 1005及非揮發性記憶體1006之匯流排1002。可為來自Motorola,Inc.或IBM之G3或G4微處理器的微處理器1003耦接至快取記憶體1004,如圖10之實例中所展示。匯流排1002將此等各種組件互連在一起且亦將此等組件1003、1007、1005及1006互連至顯示控制器及顯示器件1008,且連接至周邊器件,諸如可為以下各者之輸入/輸出(I/O)器件:滑鼠、鍵盤、數據機、網路介面、印表機、掃描器、視訊相機及此項技術者中所熟知之其他器件。通常,輸入/輸出器件1010經由輸入/輸出控制器1009耦接至系統。揮發性RAM 1005通常實施為動態RAM(DRAM),其需要連續供電以再新或維持記憶體中之資料。非揮發性記憶體1006通常為磁性硬碟機或磁性光碟機或光碟機或DVD RAM,或即使在自系統移除電力之情況下仍可維持資料之其他類型的記憶體系統。通常,非揮發性記憶體亦將為隨機存取記憶體,但此不為必需的。儘管圖10展示非揮發性記憶體為直接耦接至資料處理系統中之剩餘組件的本端器件,但應瞭解,本發明可利用位於系統遠端之非揮發性記憶體,諸如經由網路介面(諸如,數據機或乙太網路介面)耦接至資料處理系統之網路儲存器件。匯流排1002可包括經由此項技術中所熟知之各種橋接器、控制器及/或配接器彼此連接之一或多個匯流排。在一實施例中,I/O控制器1009可包括用於控制USB周邊器件之USB(通用串列匯流排)配接器及/或用於控制IEEE-1394周邊器件之IEEE-1394匯流排配接器。
自此描述應顯而易見,本發明之態樣可至少部分地體現於軟體中。亦即,該等技術可在電腦系統中或其他資料處理系統中回應於其處理器(諸如,微處理器)執行含於記憶體中之指令序列而進行,該記憶體為機器或電腦可讀儲存媒體,諸如ROM 1007、揮發性RAM 1005、非揮發性記憶體1006或遠端儲存器件。在各種實施例中,可結合軟體指令來使用固線式電路以實施本發明。因此,該等技術既不限於硬體電路及軟體之任何特定組合,亦不限於由資料處理系統所執行的指令之任何特定源。此外,貫穿此描述,將各種功能及操作描述為由軟體程式碼執行或由軟體程式碼引起以簡化描述。然而,熟習此項技術者應認識到,此等表述意謂該等功能係由處理器(諸如,微處理器1003)執行程式碼而產生。
機器可讀儲存媒體可用以儲存在由資料處理系統執行時使該系統執行本發明之各種方法的軟體及資料。可將此可執行軟體及資料儲存於各處,包括(例如)如圖10中所展示之ROM 1007、揮發性RAM 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...源晶片
303...源晶片
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...解封裝
403...解封裝/源副通道/集中器
405...FIFO位址產生器
407...輸入路由器
409...直接佇列
411...FIFO寫入佇列
413...FIFO讀取佇列
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
621...HSTDM介面
623...HSTDM介面
625...源FPGA晶片A
627...源FPGA晶片B
629...非同步FIFO
631...非同步FIFO
633...匯流排
635...UMR控制
637...記憶體控制
639...DDR2記憶體
641...HSTDM介面
643...HSTDM介面
645...目的地晶片A
647...目的地晶片Z
649...目的地副通道A1
651...目的地副通道A2
653...目的地副通道An
655...目的地副通道Z1
657...目的地副通道Z2
659...目的地副通道Zn
661...(目的地)使用者邏輯/翻製使用者邏輯
663...目的地FPGA晶片FPGA-C
665...翻製使用者邏輯
667...目的地FPGA晶片FPGA-D
669...散佈器
671...集線器及緩衝器板
700...用於邏輯模擬之程序
800...用以經由虛擬通道轉發封包之程序
900...用以集中及散佈封包之程序
1001...電腦系統
1002...匯流排
1003...微處理器
1005...揮發性隨機存取記憶體
1006...非揮發性記憶體
1007...唯讀記憶體
1008...顯示控制器及顯示器件
1009...輸入/輸出控制器
1010...輸入/輸出器件
圖1說明本發明之邏輯模擬之一實施例;
圖2為說明用於切換封包以供邏輯模擬或邏輯設計測試之例示性系統之方塊圖;
圖3為說明用於在源邏輯與目的地邏輯之間建立虛擬通道的例示性架構之方塊圖;
圖4為說明用以切換封包之集線器控制邏輯之例示性架構的方塊圖;
圖5為說明用以攜載邏輯通道之資料的封包格式之實例之示意圖;
圖6為說明封包切換集線器之例示性組態之方塊圖;
圖7為說明根據本發明之一實施例的用於邏輯模擬之程序之流程圖;
圖8為說明用以經由虛擬通道轉遞封包之程序之實施例的流程圖;
圖9為說明用以集中及散佈封包之程序之實施例的流程圖;
圖10為說明可實踐本發明之某些態樣之合適計算環境的方塊圖。
100...邏輯
101...輸入向量
103...使用者邏輯
105...輸出向量
107...內部向量
109...深度緩衝器
111...使用者邏輯
113...輸出向量

Claims (27)

  1. 一種用於邏輯設計測試之方法,該方法包含:以一處理器產生用以攜載來自源邏輯之複數個部分之信號資料的封包以用於翻製該源邏輯之一目的地邏輯,該等封包包括識別虛擬通道之識別符,該等虛擬通道將該源邏輯之該複數個部分映射至該目的地邏輯之複數個部分;將該等封包儲存至該信號資料之一佇列中持續一期間,該佇列係實施於一快取中;根據所識別之該等虛擬通道將該等封包自該佇列散佈至該目的地邏輯之該等部分;及自該等封包解封裝該信號資料以更新該目的地邏輯之該等部分以用於該目的地邏輯藉由關於該期間之一延遲來模擬該源邏輯。
  2. 如請求項1之方法,其中該源邏輯係藉由複數個時脈域驅動且其中每一部分屬於該等時脈域中之一者。
  3. 如請求項1之方法,其中該佇列係處於經由一或多個介面與該源邏輯耦接之一切換邏輯中,其中源邏輯之該複數個部分與複數個源通道佇列相關聯,且其中儲存該等封包包含:將每一封包臨時地儲存於該複數個源通道佇列中之一者中;及經由該等介面中之一者將封包自該等源通道佇列中之至少一者發送至該切換邏輯。
  4. 如請求項3之方法,其中該源邏輯係分割至一或多個器件中,且其中每一器件包括該等介面中之一者。
  5. 如請求項3之方法,其進一步包含:以與該源邏輯同步之方式將來自該等源通道佇列中之該至少一者的該等封包仲裁至一序列中以用於共用該等介面中的該一者。
  6. 如請求項5之方法,其中該切換邏輯係藉由一切換時脈域驅動,該方法進一步包含:與該切換時脈域同步以用於經由該等介面之該等封包的該發送。
  7. 如請求項3之方法,其中該切換邏輯包括對應於該一或多個介面之一或多個接收器佇列以允許該等封包在該等介面間同時到達,其進一步包含:以與該源邏輯同步之方式將來自該等接收器佇列之該等封包順序地仲裁至該佇列中。
  8. 如請求項3之方法,其中該切換邏輯包括一儲存器,該儲存器儲存由該等識別符標索引之該等虛擬通道之複數個通道定義,其中該散佈包含:順序地自該佇列擷取該等封包;自針對該等通道定義所擷取之該等封包解碼該等識別符。
  9. 如請求項8之方法,其中該複數個通道定義包括該目的地邏輯之該複數個部分的目的地識別符,該方法進一步包含: 用該等目的地識別符代替該等識別符來更新該等封包。
  10. 如請求項8之方法,其中該複數個通道定義識別單獨地耦接至該目的地邏輯之一或多個發送器佇列,該方法進一步包含:將每一封包臨時地儲存於該等發送器佇列中之一者中;及以與該源邏輯同步之方式將該等封包自該等發送器佇列並列地發送至該目的地邏輯。
  11. 如請求項10之方法,其中該目的地邏輯係分割至一或多個器件中,且其中每一器件與該等發送器佇列中之一者相關聯。
  12. 如請求項10之方法,其中該目的地邏輯包括對應於目的地邏輯之該複數個部分之複數個目的地通道佇列且該複數個通道定義包括該目的地邏輯之該複數個部分的目的地識別符,該方法進一步包含:根據該等目的地識別符將該等封包臨時地儲存至該等發送器佇列;及自該等發送器佇列擷取該等封包,其中該解封裝係基於以與該源邏輯同步之方式自該等發送器佇列擷取之該等封包。
  13. 如請求項8之方法,其中該等通道定義中之一特定者係根據該等封包中之一特定者來標索引,其中該特定通道定義包括至該目的地邏輯之一介面位址,該方法進一步 包含:若該特定通道定義指示一直接連接,則經由該介面位址將該特定封包直接發送至該目的地邏輯。
  14. 一種包含一非揮發性機器可存取儲存媒體之製品,該非揮發性機器可存取儲存媒體包括在由一機器存取時使該機器執行包括以下之操作:產生用以攜載來自源邏輯之複數個部分之信號資料的封包以用於翻製該源邏輯之一目的地邏輯,該等封包包括識別虛擬通道之識別符,該等虛擬通道將該源邏輯之該複數個部分映射至該目的地邏輯之複數個部分;將該等封包儲存至該信號資料之一佇列中持續一期間;根據所識別之該等虛擬通道將該等封包自該佇列散佈至該目的地邏輯之該等部分;及自該等封包解封裝該信號資料以更新該目的地邏輯之該等部分以用於該目的地邏輯藉由關於該期間之一延遲來模擬該源邏輯。
  15. 如請求項14之製品,其中該源邏輯係藉由複數個時脈域驅動且其中每一部分屬於該等時脈域中之一者。
  16. 如請求項14之製品,其中該佇列係處於經由一或多個介面與該源邏輯耦接之一切換邏輯中,其中源邏輯之該複數個部分與複數個源通道佇列相關聯,且其中儲存該等封包包含:將每一封包臨時地儲存於該複數個源通道佇列中之一 者中;及經由該等介面中之一者將封包自該等源通道佇列中之至少一者發送至該切換邏輯。
  17. 如請求項16之製品,其中該源邏輯係分割至一或多個器件中,且其中每一器件包括該等介面中之一者。
  18. 如請求項16之製品,其進一步包含:以與該源邏輯同步之方式將來自該等源通道佇列中之該至少一者的該等封包仲裁至一序列中以用於共用該等介面中的該一者。
  19. 如請求項18之製品,其中該切換邏輯係藉由一切換時脈域驅動,其進一步包含:與該切換時脈域同步以用於經由該等介面之該等封包的該發送。
  20. 如請求項16之製品,其中該切換邏輯包括對應於該一或多個介面之一或多個接收器佇列以允許該等封包在該等介面間同時到達,其進一步包含:以與該源邏輯同步之方式將來自該等接收器佇列之該等封包順序地仲裁至該佇列中。
  21. 如請求項16之製品,其中該切換邏輯包括一儲存器,該儲存器儲存由該等識別符標索引之該等虛擬通道之複數個通道定義,其中該散佈包含:順序地自該佇列擷取該等封包;自針對該等通道定義所擷取之該等封包解碼該等識別符。
  22. 如請求項21之製品,其中該複數個通道定義包括該目的地邏輯之該複數個部分的目的地識別符,其進一步包含:用該等目的地識別符代替該等識別符來更新該等封包。
  23. 如請求項21之製品,其中該複數個通道定義識別單獨地耦接至該目的地邏輯之一或多個發送器佇列,其進一步包含:將每一封包臨時地儲存於該等發送器佇列中之一者中;及以與該源邏輯同步之方式將該等封包自該等發送器佇列並列地發送至該目的地邏輯。
  24. 如請求項23之製品,其中該目的地邏輯係分割至一或多個器件中,且其中每一器件與該等發送器佇列中之一者相關聯。
  25. 如請求項23之製品,其中該目的地邏輯包括對應於目的地邏輯之該複數個部分之複數個目的地通道佇列且該複數個通道定義包括該目的地邏輯之該複數個部分的目的地識別符,其進一步包含:根據該等目的地識別符將該等封包臨時地儲存至該等發送器佇列;及自該等發送器佇列擷取該等封包,其中該解封裝係基於以與該源邏輯同步之方式自該等發送器佇列擷取之該等封包。
  26. 如請求項21之製品,其中該等通道定義中之一特定者係根據該等封包中之一特定者來標索引,其中該特定通道定義包括至該目的地邏輯之一介面位址,其進一步包含:若該特定通道定義指示一直接連接,則經由該介面位址將該特定封包直接發送至該目的地邏輯。
  27. 一種邏輯設計測試系統,其包含:用以攜載來自源邏輯之複數個部分之信號資料的封包,其用於翻製該源邏輯之一目的地邏輯,該等封包包括識別虛擬通道之識別符,該等虛擬通道將該源邏輯之該複數個部分映射至該目的地邏輯之複數個部分;用以將該等封包儲存持續一期間之該信號資料之一佇列;該目的地邏輯之該等部分,根據所識別之該等虛擬通道接收自該佇列散佈的該等封包;及自該等封包解封裝之該信號資料,其用以更新該目的地邏輯之該等部分以用於該目的地邏輯藉由關於該期間之一延遲來模擬該源邏輯。
TW100102409A 2010-01-22 2011-01-21 用於以封包切換為基礎的邏輯複製之方法和系統 TWI475382B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/692,562 US8397195B2 (en) 2010-01-22 2010-01-22 Method and system for packet switch based logic replication

Publications (2)

Publication Number Publication Date
TW201145017A TW201145017A (en) 2011-12-16
TWI475382B true TWI475382B (zh) 2015-03-01

Family

ID=44307623

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100102409A TWI475382B (zh) 2010-01-22 2011-01-21 用於以封包切換為基礎的邏輯複製之方法和系統

Country Status (5)

Country Link
US (1) US8397195B2 (zh)
EP (1) EP2526490B1 (zh)
CN (1) CN102713864B (zh)
TW (1) TWI475382B (zh)
WO (1) WO2011091320A2 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467429A (zh) * 2010-11-11 2012-05-23 上海华虹集成电路有限责任公司 智能卡芯片仿真器
US8607181B1 (en) * 2012-02-07 2013-12-10 Applied Micro Circuits Corporation Method for converting a single channel hardware module into a multi-channel module
US9893999B2 (en) 2013-11-26 2018-02-13 Macom Connectivity Solutions, Llc Multiple datastreams processing by fragment-based timeslicing
US9690494B2 (en) * 2015-07-21 2017-06-27 Qualcomm Incorporated Managing concurrent access to multiple storage bank domains by multiple interfaces
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
US10936289B2 (en) 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
JP6702021B2 (ja) * 2016-06-24 2020-05-27 コニカミノルタ株式会社 画像処理装置、デバッグ支援方法およびデバッグ支援プログラム
CN109697016B (zh) * 2017-10-20 2022-02-15 伊姆西Ip控股有限责任公司 用于改进容器的存储性能的方法和装置
US20190155645A1 (en) * 2019-01-23 2019-05-23 Intel Corporation Distribution of network traffic to processor cores
CN111506467B (zh) * 2019-01-31 2023-07-11 上海诺基亚贝尔股份有限公司 信号处理方法、电子设备和计算机可读存储介质
CN111741235B (zh) * 2020-08-17 2020-12-01 成都智明达电子股份有限公司 基于fpga的多路视频切换方法
CN112257362B (zh) * 2020-10-27 2023-01-31 海光信息技术股份有限公司 逻辑代码的验证方法、验证装置以及存储介质
CN113032295B (zh) * 2021-02-25 2022-08-16 西安电子科技大学 一种数据包二级缓存方法、系统及应用
CN113740851B (zh) * 2021-09-07 2023-06-13 电子科技大学 一种分时复用单ddr的sar成像数据处理系统
CN113919254B (zh) * 2021-11-13 2022-05-31 奇捷科技(深圳)有限公司 寄存器传输级信号映射构建方法、装置、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6917584B2 (en) * 2000-09-22 2005-07-12 Fujitsu Limited Channel reassignment method and circuit for implementing the same
TWI285303B (en) * 2003-04-17 2007-08-11 Advanced Risc Mach Ltd Communication interface for diagnostic circuits of an integrated circuit
US20070208658A1 (en) * 2000-04-13 2007-09-06 David Gershon Method and system for pricing options
TW200949569A (en) * 2008-04-30 2009-12-01 Synopsys Inc Method and apparatus for executing a hardware simulation and verification solution
TW200951810A (en) * 2008-06-12 2009-12-16 Nat Univ Tsing Hua Trace compression method for debug and trace interface of microprocessor

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4347189A (en) 1988-10-05 1990-05-01 Mentor Graphics Corporation Method of using electronically reconfigurable gate array logic and apparatus formed thereby
US5452231A (en) 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
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
US5805610A (en) 1997-04-28 1998-09-08 Credence Systems Corporation Virtual channel data distribution system for integrated circuit tester
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
US6581191B1 (en) 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US20040004966A1 (en) 2001-04-27 2004-01-08 Foster Michael S. Using virtual identifiers to route transmitted data through a 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
US7398445B2 (en) 2002-08-09 2008-07-08 Synplicity, Inc. Method and system for debug and test using replicated logic
US7000036B2 (en) 2003-05-12 2006-02-14 International Business Machines Corporation Extended input/output measurement facilities
US20070038782A1 (en) * 2005-07-26 2007-02-15 Ambric, Inc. System of virtual data channels across clock boundaries in an integrated circuit
US6920586B1 (en) 2004-01-23 2005-07-19 Freescale Semiconductor, Inc. Real-time debug support for a DMA device and method thereof
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
US7787484B2 (en) 2006-05-29 2010-08-31 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
US7962458B2 (en) * 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
US8484613B2 (en) * 2010-01-28 2013-07-09 Synopsys, Inc. Optimizing bounds checking using computer algebra

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070208658A1 (en) * 2000-04-13 2007-09-06 David Gershon 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
US6917584B2 (en) * 2000-09-22 2005-07-12 Fujitsu Limited Channel reassignment method and circuit for implementing the same
TWI285303B (en) * 2003-04-17 2007-08-11 Advanced Risc Mach Ltd Communication interface for diagnostic circuits of an integrated circuit
TW200949569A (en) * 2008-04-30 2009-12-01 Synopsys Inc Method and apparatus for executing a hardware simulation and verification solution
TW200951810A (en) * 2008-06-12 2009-12-16 Nat Univ Tsing Hua Trace compression method for debug and trace interface of microprocessor

Also Published As

Publication number Publication date
EP2526490A2 (en) 2012-11-28
WO2011091320A2 (en) 2011-07-28
CN102713864B (zh) 2016-06-15
CN102713864A (zh) 2012-10-03
US20110184717A1 (en) 2011-07-28
TW201145017A (en) 2011-12-16
EP2526490A4 (en) 2015-07-15
EP2526490B1 (en) 2021-12-22
WO2011091320A3 (en) 2011-10-27
US8397195B2 (en) 2013-03-12

Similar Documents

Publication Publication Date Title
TWI475382B (zh) 用於以封包切換為基礎的邏輯複製之方法和系統
TWI447578B (zh) 用於以封包切換為基礎的邏輯複製之方法和系統
US7257655B1 (en) Embedded PCI-Express implementation
CN110309526B (zh) 用于可配置从端点电路的外围互连
US7152136B1 (en) Implementation of PCI express
JPH1078934A (ja) パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム
US10936525B2 (en) Flexible routing of network data within a programmable integrated circuit
JP2004521426A (ja) バスサイクル毎に選択可能な数のデータワードの読み出し及び/又は書き込みを行うことができるファーストイン・ファーストアウトバッファ
TWI470437B (zh) 擷取串列輸入資料的裝置及方法
US20230229622A1 (en) Processing of ethernet packets at a programmable integrated circuit
Siast et al. Ringnet: A memory-oriented network-on-chip designed for fpga
TWI604303B (zh) 輸入輸出擴展晶片以及其驗證方法
US10680615B1 (en) Circuit for and method of configuring and partially reconfiguring function blocks of an integrated circuit device
WO2021173401A1 (en) Ethernet packet processing in programmable integrated circuit
US7269681B1 (en) Arrangement for receiving and transmitting PCI-X data according to selected data modes
Winegarden A bus architecture centric configurable processor system
Karthik et al. Design and simulation five port router using Verilog HDL
Papaefstathiou et al. Prototyping efficient interprocessor communication mechanisms
Mohota et al. Efficient Design of Routing Node to Evaluate the Performance of Network Based Communication Infrastructure for SOC Design
KR20210040447A (ko) 링크 계층 데이터 패킹 및 패킷 흐름 제어 기법
Attia et al. A Stoppable clock based Approach for Low Power Network Interface Design in a Network on Chip
Müller Vertex trigger implementation using shared memory technology