TWI631355B - 用於元件集合的高效測試的通信及控制拓撲結構 - Google Patents
用於元件集合的高效測試的通信及控制拓撲結構 Download PDFInfo
- Publication number
- TWI631355B TWI631355B TW104108042A TW104108042A TWI631355B TW I631355 B TWI631355 B TW I631355B TW 104108042 A TW104108042 A TW 104108042A TW 104108042 A TW104108042 A TW 104108042A TW I631355 B TWI631355 B TW I631355B
- Authority
- TW
- Taiwan
- Prior art keywords
- chain
- nodes
- controller
- slave
- clock
- 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/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318555—Control logic
-
- 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/31724—Test controller, e.g. BIST state machine
-
- 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/3177—Testing of logic operation, e.g. by logic analysers
-
- 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/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
-
- 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/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318536—Scan chain arrangements, e.g. connections, test bus, analog signals
- G01R31/318538—Topological or mechanical aspects
-
- 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/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318583—Design for test
-
- 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/3181—Functional testing
- G01R31/3187—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/14—Implementation of control logic, e.g. test mode decoders
- G11C29/16—Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0401—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
Abstract
主控制器包括:至CPU的介面,被配置成接收數位訊號的輸入埠,以及被配置成傳輸數位訊號的輸出埠。從控制器每個包括:至元件的介面,被配置成接收數位訊號的輸入埠,以及被配置成傳輸數位訊號的輸出埠。第一鏈橋包括:將第一鏈橋耦合至第一鏈節點的第一組輸入和輸出埠,第一鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中第一鏈中的節點包括主控制器;以及將第一鏈橋耦合至第二鏈節點的第二組輸入和輸出埠,第二鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中第二鏈中的節點包括多個從控制器。
Description
本發明涉及用於元件集合的高效測試的通信及控制拓撲結構。
在積體電路中實現的數位電路可能很複雜,並且可以包括支援對所製造的晶片上的各種元件的測試的專用電路。例如,除了提供由CPU來使用或者在CPU旁邊操作的各種功能的各種數位或者類比元件,片上系統(SoC)還可以包括中央處理單元(CPU),該CPU可以是具有多個處理器核的多核處理器。促進對元件的測試的一種類型的電路基於內置自測(BIST)技術和內置自修復(BISR)技術。提供對藉由這樣的技術來測試的、向或者自電路傳播的訊號的存取的一種方式是使用“掃描鏈”(也被稱為“串列平移鏈”),該“掃描鏈”使用耦合至不同元件的節點的閉合回路。這些節點在測試過程期間圍繞該回路連續地接收和轉發資訊。被稱為“JTAG”(聯合測試行動組)或者更正式地被稱為“用於測試存取埠和邊界掃描架構的1149.1 IEEE標準”已經被用於測試印刷電路板(PCB)和積體電路(IC)。通常,存在多個邊界掃描單元,每個邊界掃描單元連接至被測試電路的一部分。這些單元的鏈用藉由點到點多線匯流排連接至兩個相鄰
單元的單元來形成。這一鏈可以被定位於PCB或者IC的邊界處,其中這些單元也連接至輸入/輸出(I/O)引腳。測試資訊可以圍繞該鏈被發送以從單個標準化介面來測試系統中的任何元件。
一方面,總體上,一種用於測試耦合至相應從控制器的元件的裝置包括至少一個主控制器,所述主控制器包括:至中央處理單元的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠。所述裝置包括多個從控制器,每個從控制器包括:至元件的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠。所述裝置包括第一鏈橋,所述第一鏈橋包括:將所述第一鏈橋耦合至第一鏈節點的第一組輸入和輸出埠,所述第一鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第一鏈中的節點包括所述主控制器;以及將所述第一鏈橋耦合至第二鏈節點的第二組輸入和輸出埠,所述第二鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第二鏈中的節點包括多個從控制器。
各方面可以包括以下特徵中的一個或多個特徵。
所述裝置還包括鏈的分級,所述鏈的分級包括:在所述分級的根層級處的所述第一鏈;在所述根層級下面的第一中間層級處的所述第二鏈,所述第二鏈中的節點至少包括將所述第二鏈耦合至所述第一鏈的所述第一鏈橋以及將所述第二鏈耦合至在所述第一中間層級下面的層級處的第三鏈節點的第二鏈橋;以及在所述分級的在所述第一中間層級下面的一個或多個層級處,多個鏈節點各自藉由閉合回路中的導體路徑耦合至相
鄰節點,其中所述多個鏈中的每個鏈中的節點包括一個或多個從控制器以及至少一個鏈橋。
至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同時脈域中的元件的介面。
至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同功率域中的元件的介面。
每個從控制器包括:時脈輸入埠;根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸入埠接收數位訊號的電路;以及根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸出埠傳輸數位訊號的電路。
所述裝置還包括向所述第二鏈中的每個從控制器提供第一時脈訊號的第一時脈電路。
所述裝置還包括向第三鏈節點中的每個從控制器提供第二時脈訊號的第二時脈電路,其中所述第二時脈訊號具有與所述第一時脈訊號相比不同的頻率或相位中的至少一項。
耦合至所述第二鏈和所述第三鏈二者的鏈橋包括在具有與所述第一時脈訊號對準的邊沿的數位訊號和具有與所述第二時脈訊號對準的邊沿的數位訊號之間轉譯訊息的電路。
所述主控制器被配置成提供圍繞鏈迴圈的輪詢訊息,並且所述從控制器被配置成在檢測到輪詢訊息之後的空閒訊號之後回應於所述輪詢訊息提供圍繞鏈迴圈的輪詢回應訊息。
所述從控制器被配置成使與耦合至所述從控制器的介面的元件的狀態或控制對應的訊息圍繞鏈迴圈。
所述主控制器包括主記憶體控制器,所述從控制器包括從記憶體控制器,並且所述元件包括記憶體元件。
所述訊息包括以下各項中的一項或多項:內置自測訊息、內置自修復訊息或者改錯碼訊息。
另一方面,總體上,一種非暫態機器可讀媒體,存儲用於測試耦合至相應從控制器的元件的程式。所述程式包括用於使得機器模擬至少一個主控制器的指令,所述主控制器包括:至中央處理單元的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠。所述程式包括用於使得機器模擬多個從控制器的指令,每個從控制器包括:至元件的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠。所述程式包括用於使得機器模擬第一鏈橋的指令,所述第一鏈橋包括:將所述第一鏈橋耦合至第一鏈節點的第一組輸入和輸出埠,所述第一鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第一鏈中的節點包括所述主控制器;以及將所述第一鏈橋耦合至第二鏈節點的第二組輸入和輸出埠,所述第二鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第二鏈中的節點包括多個從控制器。
各方面可以包括以下特徵中的一個或多個特徵。
所述媒體還包括用於使得所述機器模擬鏈的分級的指令,所述鏈的分級包括:在所述分級的根層級處的所述第一鏈;在所述根層級下面的第一中間層級處的所述第二鏈,所述第二鏈中的節點至少包括將所述第二鏈耦合至所述第一鏈的所述第一鏈橋以及將所述第二鏈耦合至在所
述第一中間層級下面的層級處的第三鏈節點的第二鏈橋;以及在所述分級的在所述第一中間層級下面的一個或多個層級處,多個鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述多個鏈中的每個鏈中的節點包括一個或多個從控制器以及至少一個鏈橋。
至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同時脈域中的元件的介面。
至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同功率域中的元件的介面。
每個從控制器包括:時脈輸入埠;根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸入埠接收數位訊號的電路;以及根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸出埠傳輸數位訊號的電路。
所述媒體還包括用於使得所述機器模擬向所述第二鏈中的每個從控制器提供第一時脈訊號的第一時脈電路的指令。
所述媒體還包括用於使得所述機器模擬向第三鏈節點中的每個從控制器提供第二時脈訊號的第二時脈電路的指令,其中所述第二時脈訊號具有與所述第一時脈訊號相比不同的頻率或相位中的至少一項。
耦合至所述第二鏈和所述第三鏈二者的鏈橋包括在具有與所述第一時脈訊號對準的邊沿的數位訊號和具有與所述第二時脈訊號對準的邊沿的數位訊號之間轉譯訊息的電路。
所述主控制器被配置成提供圍繞鏈迴圈的輪詢訊息,並且所述從控制器被配置成在檢測到輪詢訊息之後的空閒訊號之後回應於所述輪詢訊息提供圍繞鏈迴圈的輪詢回應訊息。
所述從控制器被配置成使與耦合至所述從控制器的介面的元件的狀態或控制對應的訊息圍繞鏈迴圈。
所述主控制器包括主記憶體控制器,所述從控制器包括從記憶體控制器,並且所述元件包括記憶體元件。
所述訊息包括以下各項中的一項或多項:內置自測訊息、內置自修復訊息或者改錯碼訊息
另一方面,總體上,一種用於測試包括用於耦合至相應元件的從控制器的積體電路的設計或者製造的方法,所述方法包括執行與至少一個主控制器對應的指令,所述主控制器包括:至中央處理單元的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠。所述方法包括執行與多個從控制器對應的指令,每個從控制器包括:至元件的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠。所述方法包括執行與第一鏈橋對應的指令,所述第一鏈橋包括:將所述第一鏈橋耦合至第一鏈節點的第一組輸入和輸出埠,所述第一鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第一鏈中的節點包括所述主控制器;以及將所述第一鏈橋耦合至第二鏈節點的第二組輸入和輸出埠,所述第二鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第二鏈中的節點包括多個從控制器。
各方面包括以下特徵中的一個或多個特徵。
所述方法還包括執行與鏈的分級對應的指令,所述鏈的分級包括:在所述分級的根層級處的所述第一鏈;在所述根層級下面的第一
中間層級處的所述第二鏈,所述第二鏈中的節點至少包括將所述第二鏈耦合至所述第一鏈的所述第一鏈橋以及將所述第二鏈耦合至在所述第一中間層級下面的層級處的第三鏈節點的第二鏈橋;以及在所述分級的在所述第一中間層級下面的一個或多個層級處,多個鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述多個鏈中的每個鏈中的節點包括一個或多個從控制器以及至少一個鏈橋。
至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同時脈域中的元件的介面。
至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同功率域中的元件的介面。
每個從控制器包括:時脈輸入埠;根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸入埠接收數位訊號的電路;以及根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸出埠傳輸數位訊號的電路。
所述方法還包括執行與向所述第二鏈中的每個從控制器提供第一時脈訊號的第一時脈電路對應的指令。
所述方法還包括執行與向第三鏈節點中的每個從控制器提供第二時脈訊號的第二時脈電路對應的指令,其中所述第二時脈訊號具有與所述第一時脈訊號相比不同的頻率或相位中的至少一項。
耦合至所述第二鏈和所述第三鏈二者的鏈橋包括在具有與所述第一時脈訊號對準的邊沿的數位訊號和具有與所述第二時脈訊號對準的邊沿的數位訊號之間轉譯訊息的電路。
所述主控制器被配置成提供圍繞鏈迴圈的輪詢訊息,並且
所述從控制器被配置成在檢測到輪詢訊息之後的空閒訊號之後回應於所述輪詢訊息提供圍繞鏈迴圈的輪詢回應訊息。
所述從控制器被配置成使與耦合至所述從控制器的介面的元件的狀態或控制對應的訊息圍繞鏈迴圈。
所述主控制器包括主記憶體控制器,所述從控制器包括從記憶體控制器,並且所述元件包括記憶體元件。
所述訊息包括以下各項中的一項或多項:內置自測訊息、內置自修復訊息或者改錯碼訊息。
各方面可以包括以下優點中的一個或多個優點。
可以包括積體電路中的BIST/BISR電路或者其他測試修復電路的類型的元件的一個示例為嵌入式隨機存取記憶體(RAM),諸如嵌入式動態RAM(eDRAM)。在具有大量嵌入式RAM元件的積體電路諸如SoC中,在單個通信鏈上包括所有這樣的元件可能不現實。例如,IC可能具有特性不同的不同部分,不同的特性會使得操作單個通信鏈變得困難。一個部分可以在藉由第一時脈訊號被饋送的一個時脈域中,而另一部分可以在藉由具有與第一時脈訊號不同頻率的第二時脈訊號被饋送的另一時脈域中。或者,一些部分可能位於可以在操作期間被關閉使得該部分中的所有元件停止操作的“電源島”中。嵌入式RAM元件可以位於IC的這些部分中的任何部分中,使得操作可以連續地向和從這些元件傳輸測試資訊(例如用於使用每個RAM元件中的BIST電路來檢測和報告位元錯誤的測試資訊)的單個通信鏈變得困難。
使用本文中所描述的技術,“分級通信鏈”可以用於提供
用於檢測和報告包含非常大數目的嵌入式RAM元件的系統中的位元錯誤的集中式低額外負擔機制。耦合至每個RAM元件的從記憶體控制器能夠提供封裝每個嵌入式RAM元件(包括內置在上述元件中或者與上述元件關聯的任何測試修復電路)的一致的測試介面。如下面更詳細地描述的,中央主記憶體控制器因此能夠使用被佈置成分級結構的多個通信鏈來採集和報告錯誤。主記憶體控制器可以週期性地提供來自系統中的嵌入式RAM的測試資訊並且向CPU報告任何故障(例如使用中斷或者某個其他事件)。分級佈置降低了實現錯誤報告功能所需要的邏輯和佈線,提供了用於各種IC設計的一致的軟體介面,並且可以顯著地簡化IC的驗證。此外,存在藉由使與通信命令關聯的拓撲結構與特定類型的命令(例如與測試記憶體元件關聯的命令或者與IC內的任何其他類型的元件關聯的命令)去耦合來促進跨越不同的生成和實現無錯誤地擴展IC設計的一致的硬體介面。
本發明的其它特徵和優點根據以下描述和申請專利範圍將變得清楚。
100‧‧‧分級通信鏈
102‧‧‧記憶體元件(MD)
104‧‧‧主記憶體控制器(MMC)
106‧‧‧中央處理單元(CPU)
107‧‧‧CPU介面
108‧‧‧測試介面
110‧‧‧鏈橋(CB)
112‧‧‧記憶體控制器(SMC)
200‧‧‧介面
202‧‧‧鏈輸入埠
204‧‧‧鏈輸出埠
206‧‧‧通信鏈路
207‧‧‧時脈訊號
208‧‧‧時脈埠
210‧‧‧緩衝器
212‧‧‧附加存儲裝置
214‧‧‧BIST模組
216‧‧‧BISR模組
218‧‧‧ECC模組
300‧‧‧緩衝器
302‧‧‧解多工電路
304A‧‧‧緩衝器
304B‧‧‧緩衝器
306‧‧‧緩衝器
308‧‧‧緩衝器
310‧‧‧多工電路
312‧‧‧多工電路
314‧‧‧輪詢源
第1圖為分級通信鏈的示意圖;第2圖為耦合至記憶體元件的從記憶體控制器的示意圖;第3圖為鏈橋的示意圖;
在積體電路的設計及製造期間,存在執行不同類型的測試(也被稱為“驗證”)的各個階段。在設計階段期間,積體電路被實現為
在各個抽象層級中的任何抽象層級規定的模擬。(例如用高層程式設計語言的)高層功能描述可以用於對多個模組的功能方面進行建模,這些模組包括由用於與其他模組通信的模組和通信協定來執行的計算功能。在其他層級,描述包括暫存器傳輸層級(RTL)描述和閘層級描述,該RTL描述對在鐘控暫存器(例如正反器)與組合邏輯之間流動的數位訊號進行建模,該閘層級描述對積體電路的低層級電路進行建模。測試可以在各個階段上被反覆運算。在將晶片封裝成封裝晶粒之前和之後二者,也可以對所製造的實施積體電路的矽晶粒(或者“晶片”)進行測試。
本文中所描述的分級通信鏈能夠促進在“矽後”階段對所製造的矽晶片的測試、以及在低層級“矽前”階段和在高層級設計階段二者對所模擬的晶片的設計的測試。在設計測試階段,設計者可以在早期根據需要、藉由分配記憶體元件並且形成以分級方式耦合的通信鏈來執行原型設計。在設計過程中,對鏈的改變可以伴隨著對稍後測試階段的最小影響來進行。在矽前測試期間,測試過程具有與記憶體元件的所模擬的測試修復電路一致的介面。模擬環境可以從每個記憶體提取屬性,該記憶體可以用來生成用於與每個記憶體元件的測試修復電路進行交互的規則和測試。在早期矽後階段,由分級通信鏈所提供的一致的介面可以被用於測試製造錯誤(例如使用BIST/BISR)。在用於晶片的軟體(例如驅動器或者軟體開發套件)的測試中,由分級通信鏈所提供的一致的介面可以用於存取嵌入式記憶體元件的改錯碼(ECC)電路。
隨著各種積體電路(例如SoC)變得越來越先進,片上記憶體的數量也在增加。同樣,隨著製造技術在晶片上實現更小的元件,缺陷
成為更嚴重的問題。技術諸如BIST、BISR和/或ECC電路的使用可以用於向記憶體單元添加冗餘,從而允許產品部件中存在少量缺陷。使用這些策略,存在隨同這些策略一起出現的管理和監控額外負擔。例如,每個記憶體元件可以包括用於報告來自BIST的結果、接受BISR修復解決方案和向管理軟體報告ECC錯誤的電路。使用成百個單個記憶體,將這些能力設計成SoC可能很耗時並且容易出現錯誤。此外,隨著SoC變得更複雜,矽前和矽後測試和驗證也可能更耗時並且更容易出現錯誤。藉由將各個記憶體元件及其相應的測試修復電路建模為各個模組用於高層級矽前驗證,使用由各個從記憶體控制器所提供的介面作為圍繞每個模組的“包繞器”,可以將大量記憶體元件(可能為成百個)佈置成向分散式記憶體提供更簡單並且更一致的介面的分級通信鏈。這一用於驗證的設計方式可以使得設計過程的驗證部分更加自動化。
圖1示出了用於管理對積體電路的不同域內的元件集合的測試的分級通信鏈100的示例。在本示例中,被測試的元件為記憶體元件(MD)102諸如嵌入式RAM元件或者任何類型的記憶體元件諸如正反器陣列、內容可定址記憶體(CAM)或者唯讀記憶體(ROM)。主記憶體控制器(MMC)104經由CPU介面107耦合至CPU 106。CPU介面107能夠連接至CPU匯流排或者CPU 106的輸入或輸出埠,諸如用於接收中斷訊號的中斷輸入埠。CPU 106將能夠在操作期間根據在CPU 106上執行的任何軟體的指令來與MMC 104交互。該MMC 104還耦合至測試介面108,該測試介面108可以包括用於實現各種介面協定中的任何介面協定的電路。該MMC 104包括將MMC 104耦合至根層級通信鏈C0的輸入和輸出埠,該根層級通信鏈
C0包括至少一個鏈橋(CB)110以及一起形成單向通信路徑的任何數目的其他節點。每個通信鏈還具有與大量從記憶體控制器(SMC)112對應的節點,每個SMC耦合至相應的記憶體元件102。在本示例中,為了簡化說明,存在相對較少數目的每種類型的元件,然而在實際的積體電路中,可以存在幾十個或者幾百個鏈和/或元件。通常,不需要關於鏈和/或元件的數目的任何實際限制,因為製造過程允許元件的尺寸縮小或者允許晶片的尺寸和/或元件個數和複雜度增加。
鏈橋110使得分級通信鏈100能夠藉由將在分級的不同層級處的不同的通信鏈進行耦合來形成。每個鏈橋110包括用於在兩個通信鏈之間裁決(例如以確保鏈橋110不同時從兩個通信鏈轉發)的邏輯。一些鏈橋110可以與其他鏈橋不同地配置。例如,如下面更加詳細描述的,一些鏈橋110包括用於處理可能的時脈域交叉以及管理子鏈與其父鏈的隔離的電路。分級通信鏈可以被配置和佈置成定址各種性能屬性。例如,分級通信鏈可以被劃分以縮短存取延遲。
藉由選擇性地連接鏈橋110以耦合成對的通信鏈,根層級通信鏈C0中的MMC 104能夠用作用於積體電路中的所有記憶體元件102的單個控制點。在圖1的示例中,在根層級下面的層級處存在兩個通信鏈:藉由鏈橋CB01A耦合至通信鏈C0的通信鏈C1A;以及藉由鏈橋CB01B耦合至通信鏈C0的通信鏈C1B。在根層級下方兩個層級處還存在藉由鏈橋CB12耦合至通信鏈C1B的一個通信鏈C2。在本示例中,分級通信鏈100的分級具有樹形拓撲結構,使得存在一個根層級鏈,並且每個低層級通信鏈藉由鏈橋耦合至單個“父鏈”。在這樣的樹形拓撲結構中,“中間鏈”、諸如通信鏈C1B耦
合至父鏈以及一個或多個“子鏈”,並且“葉鏈”諸如通信鏈C1A和C2僅耦合至父鏈。雖然本示例僅具有4個鏈,然而典型的積體電路可以在分級通信鏈結構中具有幾十個或者幾百個耦合在一起的鏈,使得幾百個記憶體元件能夠被存取以用於在鏈的層級中向上和向下傳輸測試資訊,如下面更詳細地描述的。
分級通信鏈結構實現了對積體電路的哪些區域由不同通信鏈來服務的選擇中的靈活性。在圖1的示例中,存在與第一時脈域對應的區域R1和與第二時脈域對應的區域R2。該第一時脈域中的數位電路由第一時脈訊號來鐘控,並且該第二時脈域中的數位電路由不同於第一時脈訊號(例如具有不同的頻率或者具有非可忽略的相位偏移)的第二時脈訊號來鐘控。如下面更詳細地描述的,鏈橋CB12包括使得訊號能夠在不同時脈域中的通信鏈之間傳遞的電路。積體電路還包括與電源島對應的區域R3(其包含在區域R1內),該電源島能夠在不中斷該電源島外部的其他電路的操作的情況下被關閉。因此,存在專用於存取區域R3中的記憶體元件的通信鏈C1A。藉由給電源島提供單獨的通信鏈,能夠佈置分級通信鏈100以在電源島被開啟或關閉時繼續操作。特別地,只要電源島中的記憶體元件(或者在操作期間可能由於各種原因而無反應的積體電路的其他區域)為葉鏈的一部分,則分級中沒有其他通信鏈會因電源島被關閉和處於不活動而受到影響。否則,如果電源島中存在作為高層級通信鏈與低層級通信鏈之間的中間鏈的通信鏈,則那些鏈之間的通信在電源島被關閉時將會被中斷。
每個通信鏈具有用作“鏈控制器”的節點,該“鏈控制器”作為圍繞鏈傳輸的命令的源以及從圍繞鏈傳輸的節點返回鏈控制器的回應
資訊的匯(sink)二者。MMC 104為用於根層級鏈C0的鏈控制器。將特定通信鏈耦合至其父鏈的鏈橋110為用於該特定通信鏈的鏈控制器。該鏈控制器可以發出圍繞其通信鏈節點至節點地傳輸的命令,並且可以接收來自其通信鏈中的節點的回應,這些回應也在與返回圍繞鏈控制器的命令相同的方向中節點至節點地傳輸。典型的通信鏈中的大多數節點為SMC節點,但是除了用作子鏈的鏈控制器的SMC節點,中間鏈還可以包括一個或多個鏈橋節點。由於將父鏈耦合至子鏈的鏈橋110還作為父鏈中的節點,所以鏈橋110能夠從父鏈的鏈控制器向子鏈傳遞命令,並且能夠從子鏈向父鏈的鏈控制器傳遞回應。由根層級鏈C0的MMC 104發送/接收的該命令/回應可以用於使用各種標準化或定制介面協定中的任何協定藉由CPU介面107或者測試介面108來通信。例如,標準化調試協定諸如JTAG可以與測試介面108一起使用。
分級中的每個通信鏈可以被配置成使用普通協定以用於圍繞通信鏈節點至節點地傳輸資料單元。在一些協定中,該資料單元一次傳輸一個位元,其中每個位元包括相鄰節點之間的點到點匯流排(例如導線)上的電壓的高值(指示二進位“1”邏輯準位)或者低值(指示二進位“0”邏輯準位)。特定位元的電壓值在向每個節點提供的時脈訊號的單個週期內被維持。該協定可以使用直通路由,其中節點在整個資料單元在該節點處被接收到之前開始傳輸資料單元的位元。伴隨著資料單元的每個位元在每個週期遍歷一個跳躍,在鏈控制器處起源的資料單元可以使用與通信鏈中的節點數目相等的數目(可能為幾百個或者甚至幾千個節點)的週期來遍歷鏈。可選地,鏈橋節點具有在某些情況下在傳遞資料單元之前等待大量
週期的能力。例如,如下面更詳細地描述的,SMC節點可以使用直通路由來立刻傳遞資料單元(即在其中位元被接收到的時脈週期之後的下一時脈週期傳輸位元),而鏈橋節點可以在訊息類型被解碼並且鏈橋確定要在哪些輸出埠上轉發資料單元時緩衝資料單元持續大量週期。
下面示出資料單元的格式的示例。該資料單元以唯一地可識別的開始符號(即“0”位元和“1”位元的唯一序列,諸如4位元序列“1010”)開始。在其他實現中,該開始符號並非必須為固定序列或者甚至固定長度的序列,但是其仍然使得資料單元能夠被識別。在開始符號之後為:固定長度的訊息類型欄位、記憶體識別字(例如整數索引值)以及其長度可以取決於資料單元中所包括的特定命令的承載。資料單元的總長度可以是例如大約30位元至40位元。
下面為可能的訊息類型的清單的示例(下面每個大寫的標注與包括唯一的4位元序列的訊息類型欄位的值對應),以簡要地描述每個訊息類型的目的。
POLL--從鏈控制器(MMC 104和鏈橋110二者)發出,請求任何SMC 112或者鏈橋110使用任何未決的非同步事件(例如與CPU 106的中斷對應的事件)來回應。接收POLL類型資料單元的鏈橋110將在父鏈中傳遞資料單元。獨立地,鏈橋110向其子鏈發出POLL類型資料單元。每個鏈控制器可以被配置成週期性地和/或在其空閒時發送POLL資料單元。
POLL_RSP--由SMC節點或者鏈橋節點來提供的回應。如果存在要發送的任何非同步事件,則SMC節點進行回應。如果從低層級通訊連結收到任何POLL_RSP回應,則鏈橋節點進行回應。如果SMC節點或
者鏈橋節點具有要回應於POLL資料單元來發送的事件,則其僅在來自其上游相鄰節點的匯流排在該週期期間空閒(即“0”邏輯準位,而不是指示另一資料單元的開始符號的“1”邏輯準位)的情況下,在POLL資料單元的上一位元之後的週期內進行這一操作。由於在接收位元與使用直通路由重新傳輸該位元之間存在一個時脈週期的延遲,所以甚至SMC節點將具有足夠時間來感測在POLL資料單元的端部處的“0”空閒位元並且在下一時脈週期傳輸在該POLL資料單元的端部處的開始符號(代替空閒位元)的“1”位元。因此,在這一示例協議中,僅僅具有對發送的回應的、通信鏈中距鏈控制器最近的節點能夠實際上發送給定POLL資料單元的該回應。具有對發送的回應的任何其他節點需要等待直到另一POLL資料單元被發送。該回應節點將使用包括非同步事件資訊的承載生成POLL_RSP。
WRITE--藉由包括由SMC 112控制的記憶體元件的適當的記憶體識別字來從MMC 104向指定SMC 112發出。這一訊息類型為向該記憶體的控制狀態暫存器(CSR)中的一個CSR中寫入控制資訊的命令。要寫入的特定CSR可以基於承載中的值來選擇。例如,CSR可以與ECC、BIST或者其他測試功能對應。
READ--藉由包括由SMC 112控制的記憶體元件的適當的記憶體識別字來從MMC 104向指定SMC 112發出。這一訊息類型為從該記憶體的CSR中的一個CSR中讀取狀態資訊的命令。要讀取的特定CSR可以基於承載中的值來選擇。
READ_SRP--回應於READ資料單元而被提供。指定SMC 112將使用包括狀態資訊的承載來生成READ_RSP。
SYNC/TEST--由MMC 104發出並且遍歷整個分級通信鏈100以確保所有記憶體元件102連接至通信鏈中的對應SMC 112。例如,鏈橋110可以被配置成使得SYNC/TEST資料單元以第一深度次序遍歷分級的SMC 112。
READ_MEM--藉由包括由SMC 112控制的記憶體元件的適當的記憶體識別字來由MMC 104向特定SMC 112發出。這一訊息類型為從記憶體元件102中讀取物理記憶體行的命令。要讀取的行在承載中被提供。
READ_MEM_RSP--回應於READ_MEM資料單元來被提供。指定SMC 112將使用包括在READ_MEM命令中所指定的記憶體行中所存儲的值的承載來生成READ_MEM_RSP。這一類型的資料單元使得測試介面108具有存取記憶體元件102的內容的能力。然而,在一些實現中,CPU 106可以具有用於存取記憶體元件102的更直接的裝置。
WRITE_MEM_ADDR--藉由包括由SMC 112控制的記憶體元件的適當的記憶體識別字來由MMC 104向特定SMC 112發出。這一訊息類型為請求指定SMC 112寫入其耦合的記憶體元件102的行的命令。要寫入的行在承載中被提供。
WRITE_MEM_DATA--由MMC 104緊接在對應的WRITE_MEM_ADDR之後發出。承載包括要向在該在前WRITE_MEM_ADDR資料單元中所指示的記憶體的行寫入的資料。
源自MMC 104去往特定SMC 112的訊息類型傳播遍及分級通信鏈100的分級,從而由如以上對於POLL資料單元所描述地鏈橋110來
轉發。如果必須遍歷分級通信鏈100的分級,則以上標記有“_RSP”尾碼的訊息類型將從指定SMC 112向MMC 104發送。指定SMC 112確定是否要藉由檢查記憶體識別字以查看其是否與其耦合的記憶體元件102的記憶體識別字匹配來回應。如果記憶體識別字不匹配,則資料單元被忽略。如果其匹配,則該SMC 112將在準備好時圍繞通信鏈發送回應資料單元。
該記憶體識別字可以是由設計者在設計時所確定的、向每個記憶體元件102分配的索引值。該索引值是唯一的,但是並非一定按照鏈上順序。例如,如果索引為整數,則它們並非有序,並且它們可以是在所分配的整數的範圍內有間隔。該索引值可以與從CPU介面107接收的位址的一部分對應。包括與非存在的記憶體索引的命令對應的訊息類型的資料單元將超時。由CPU 106執行的軟體可以被配置成檢測這樣的超時事件。例如,這樣的超時事件可能出現在位於已經關閉的電源島中的記憶體元件。
MMC 104被配置成避免分級通信鏈100被資料單元溢出,並且被配置成留出用於回應的空間(即以上標記有“_RSP”尾碼的訊息類型)。由於(如下面更詳細地描述的)需要回應以穿過鏈橋向上傳播分級,因此任何回應返回到達MMC 104所需的時間基於哪個SMC被指定並且可能基於其他因素、諸如時脈域的任何變化而是可變的。MMC 104可以被配置成一次僅允許單個未處理命令等待回應(除了POLL之外的回應)。以上描述的超時機制允許指定SMC沒有啟動的事件的恢復。只要POLL資料單元之間的空間允許插入POLL_RSP資料單元,可能存在具有POLL訊息類型的多個資料單元未處理。當MMC 104準備好發送具有不同訊息類型的資料單元時,MMC 104將:停止發送POLL資料單元,發送其他資料單元,等
待對於命令的回應(或者超時),然後重新開始發送POLL資料單元。MMC 104可以基於其可以處理多少POLL_RSP資料單元來限制未處理POLL資料單元的數目。例如,如果MMC 104可以一次向CPU 106僅發送兩個中斷,則MMC 104可以設置一次至多兩個未處理的POLL資料單元的限制。
圖2示出了耦合至記憶體元件102的SMC 112的示例。該SMC 112包括用於連接至記憶體元件102以及任何關聯測試修復電路的介面200,鏈輸入埠202包括用於從上游鄰居接收數位訊號的電路,鏈輸出埠204包括用於向下游鄰居傳輸數位訊號的電路。這些埠202、204藉由通信鏈路206(諸如包括由一根或多根導線(即積體電路中的導體路徑)組成的點到點匯流排)連接至通信鏈中的相鄰節點。至少一根導線專用於傳播由與二進位邏輯準位“0”或“1”對應的電壓組成的數位訊號,每個位元的電位轉變基於在時脈埠208處所提供的時脈訊號207而出現。這一時脈訊號可以與在其時脈埠209處向記憶體元件102提供的時脈訊號相同。在一些實現中,代替由單根導線組成的嚴格串列匯流排,通信鏈路206可以包括用於攜帶數位訊號的各個不同位元的多根導線。
SMC 112包括存儲藉由鏈輸入埠202接收的、來自資料單元的資訊的緩衝器210以及用於存儲用於處理與某些訊息類型關聯的任何命令的資訊的附加存儲裝置212(例如暫存器)。緩衝器210可以是移位暫存器、或者先入先出(FIFO)緩衝器,該FIFO緩衝器存儲一些(並非全部)資料單元,諸如需要處理的資料單元和/或其回應為必須的資料單元。附加存儲裝置212中所存儲的一些資訊可以被用於對這些命令進行回應。例如,附加存儲裝置212中的一些資訊可以被用於配置記憶體元件102用於修復或
糾錯。附加存儲裝置212中的一些資訊可以與記憶體元件102的狀態(例如關於記憶體元件102中已經出現的錯誤的狀態)相關。
介面200包括連接至記憶體元件102的埠和記憶體元件102的測試修復電路的各種導線。在本示例中,測試修復電路包括BIST模組214、BISR模組216和ECC模組218。這些模組中的每個模組耦合至記憶體元件102並且被配置成實現其對應的測試或修復功能。連接至介面200的導線包括以下各項(圖2中圖示的每條線可以與攜帶測試和修復訊號的任何數目的物理導線對應)。
bit_status:從BIST模組214到介面200的狀態訊號,指示BIST是否正在運行以及一旦BIST已經完成時的結果。
bad_col:從BIST模組214到介面200的狀態訊號,指示BIST邏輯在記憶體的哪個列上檢測到故障。
repair_in:從介面200到BISR模組216的訊號,用於指示多路輸出先前檢測到的壞列的修復解決方案。
start_bits:從介面200到BIST模組214的控制訊號,用於指示BIST模組214在關聯的記憶體元件102上開始運行BIST演算法。
bist_done:從BIST模組214到介面200的狀態訊號,指示BIST演算法已經完成。
SBE:從ECC模組218到介面200的“單位元錯誤”訊號,指示ECC邏輯已經在從記憶體元件102讀取的資料中檢測到單位元錯誤。
DBE:從ECC模組218到介面200的“雙位元錯誤”訊號,指示ECC邏輯已經在從記憶體元件102讀取的資料中檢測到雙位元錯誤。
bad_address:從ECC模組218到介面200的訊號,指示ECC邏輯(用SBE或者DBE來描述的)最近檢測到錯誤的位址。
syndrome:從ECC模組218到介面200的訊號,指示(用SBE或者DBE來描述的)檢測到的上一ECC錯誤的ECC的校驗子。
correction_dis:從介面200到ECC模組218的訊號,用於禁用從記憶體元件102讀取的資料的自動ECC校正。
flip_ecc:從介面200到ECC模組218的訊號,用於使得ECC邏輯能夠錯誤地檢測單或雙位元錯誤並且藉由標準路徑來報告該單或雙位元錯誤。
每個記憶體與BIST模組214、BISR模組216和ECC模組218中的每個模組之間也存在導線,包括ECC中斷導線(SBE/DBE)、BIST狀態導線、用於控制欄位的導線、ECC_disable導線和用於促使ECC錯誤的位元的導線。(為了說明清楚,這些訊號沒有在圖2中單獨標記。)
記憶體元件102與SMC 112的介面200之間也存在導線,包括以下各項。
address:從介面200到記憶體元件102的訊號,提供要讀取或寫入的資料的位址。
data_in:從介面200到記憶體元件102的訊號,提供要在位址埠處指定的位址處寫入的資料。
data_out:從記憶體元件102到介面200的訊號,提供從在位址埠處指定的位址讀取的資料。
write_en/read_en:從介面200到記憶體元件102的寫入和讀
取使能訊號,提供控制訊號用於使得data_in埠上的資料能夠在位址埠上指定的位址被寫入記憶體或者在位址埠上指定的位址從記憶體被讀出並且被提供在data_out埠上。
圖3示出被配置成即使父鏈和子鏈位於不同的時脈域(諸如藉由鏈橋CB12耦合的通信鏈C1B和C2)中仍然能夠將該父鏈和該子鏈耦合的鏈橋110的示例。第一組鏈輸入和輸出埠(parent_in,parent_out)將鏈橋110耦合至父鏈,並且第二組鏈輸入和輸出埠(child_in,child_out)將鏈橋110耦合至子鏈。對於其中父鏈和子鏈位於不同時脈域中的情況,存在分別用於父系網域和子域的單獨的時脈埠clk_p和clk_c。
在本示例中,鏈橋110包括存儲藉由parent_in埠接收的資料單元的緩衝器300。該鏈橋110還包括解多工電路302,該解多工電路302根據以下示出的處理規則來確定藉由child_in輸入埠接收的訊息類型的資料單元,並且向適當的緩衝器304A或者304B發送資料單元。緩衝器306存儲要從child_out輸出埠向外傳輸的資料單元,緩衝器308存儲要從parent_out輸出埠向外傳輸的資料單元。鏈橋110還包括用於根據處理規則來在緩衝器300、304A、304B之中進行選擇的多工電路310、以及用於根據處理規則和輪詢進程在緩衝器300與輪詢源314之間進行選擇的多工電路312。例如,緩衝器300、304A、304B、306、308可以是移位暫存器或者FIFO緩衝器。
下面的表格為不同訊息類型的處理規則的示例。這些規則通常被佈置成使得來自MMC 104的資料單元向下被路由藉由分級的所有分支到達每個SMC 112和鏈橋110,而來自SMC 112的回應類型資料單元僅向上被路由藉由分級的特定分支到達MMC 104。
基於經解碼的訊息類型,多工電路310和312將一起選擇在緩衝器304A的parent_in輸入埠處接收的資料單元用於向parent_out輸出埠和/或child_out輸出埠進行FIFO轉發。解多工電路302將藉由child_in輸入埠接收的特定訊息類型的某些資料單元濾除,使得它們不被轉發至parent_out或child_out輸出埠(並且因此不需要被存儲在緩衝器304A或304B中)。該解多工電路302將在child_in輸入埠處接收的某些資料單元存儲在
緩衝器304A中用於向parent_out輸出埠進行FIFO轉發(即“向parent_out轉發”)。該解多工電路302還將具有POLL_RSP訊息類型的資料單元存儲在緩衝器304B中用於暫時保持和稍後回應於POLL資料單元來向parent_out輸出埠進行FIFO轉發(即保持/向parent_out轉發)。
每個鏈橋110負責向其自己的子鏈發出POLL資料單元。通常一次僅迴圈每個鏈橋110的一個未處理POLL資料單元。對於可以被迴圈的POLL資料單元的數目的限制包括:(1)確保每個POLL資料單元之後存在足夠的空閒時脈週期用於POLL_RSP資料單元,以及(2)確保緩衝器304B中存在足夠的存儲空間用於要存儲的附加POLL_RSP資料單元。此外,父鏈也應當空閒。鏈橋110將僅回應于從父連結收的POLL資料單元向該父鏈推送在其緩衝器304B的頭部被保持的POLL_RSP資料單元。
這些規則允許POLL_RSP資料單元向上遍歷分級返回MMC 104。在鏈橋110的子鏈(即該子鏈的鏈控制器)上發出的POLL資料單元將遍歷子鏈上的節點。如果子鏈(SMC 112或者鏈橋110)上的節點具有對於POLL資料單元的回應,並且下一時脈週期空閒,則其將確認鏈上緊接在POLL資料單元之後的回應。一旦POLL資料單元圍繞子鏈迴圈並且使其返回作為鏈控制器的鏈橋110,則該POLL資料單元之後的任何POLL_RSP資料單元將被存儲在鏈橋110中。當鏈橋110接收父鏈(即沒有用作其鏈控制器的鏈)上的POLL,並且其具有所存儲的POLL_RSP資料單元,並且POLL資料單元之後的時脈週期空閒時,其將向父鏈上的其相鄰節點傳輸POLL_RSP資料單元。因此,藉由MMC 104繼續發出POLL資料單元(例如無論何時其空閒時),其將使得POLL_RSP資料單元能夠從分級的葉鏈向
上傳播至根層級鏈並且至MMC 104。
MMC 104還可以被配置成執行記憶體映射,其中每個SMC 112的狀態資訊被映射至與CPU介面107關聯的位址空間(即由CPU 106所存取的記憶體位址)的區域(例如唯讀區域),並且每個SMC 112的配置和控制資訊被映射至該位址空間的另一區域(例如讀寫區域)。例如,耦合至SMC 112的每個記憶體102可以具有可以被讀取和/或寫入的ECC、BIST、BISR狀態和/或控制欄位。藉由CPU介面107到達的寫入指令可以被轉換成WRITE資料單元或者WRITE_MEM_ADDR和WRITE_MEM_DATA資料單元。藉由CPU介面107到達的讀取指令可以被轉換成READ或者READ_MEM資料單元。資料單元中的記憶體識別字值可以從藉由CPU介面107到達的指令中的記憶體位址來取得。以這一方式,MMC 104能夠將每個狀態/控制欄位映射至CPU的記憶體空間,從而使得能夠從CPU簡單地存取由SMC 112所使用的所有欄位以管理其耦合的記憶體102。
本文中所描述的技術可以被應用於各種情境中的任何情境中。例如,作為SoC的一部分在CPU上運行的軟體能夠存取和控制也集成在SoC中(即作為同一積體電路的一部分)的嵌入式記憶體元件的配置和預設狀態。MMC、SMC和鏈橋在分級通信鏈內的佈置對於在CPU上運行的軟體而言可以是透明的。此外,SoC可以包括被配置用於在記憶體出現故障時中斷在CPU上運行的軟體的各種中斷電路中的任何中斷電路。例如,POLL_RSP可以被轉換成要向CPU發送的中斷訊號。此外,本文中所描述的技術可以被應用於在各種展示層級中的任何展示層級測試和驗證SoC的模擬,以簡化使用嵌入式(即“片上”)記憶體元件的積體電路的設計和
佈線,從而提供每個記憶體元件的狀態和配置資訊。此外,雖然在記憶體元件的情境中描述了以上一些示例,然而分級通信鏈可以用於測試和控制各種元件中的任何元件,包括記憶體元件,諸如以上討論的嵌入式RAM元件或者其他類型的記憶體元件,或者被製造為除了記憶體元件之外的積體電路的一部分的不同種類的元件(例如輸入/輸出元件或者具有要向積體電路上的CPU或者其他單元報告的訊息諸如中斷訊息的任何元件)。
其他實施例在以下申請專利範圍的範圍內。
雖然本發明的技術內容已經以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神所作些許之更動與潤飾,皆應涵蓋於本發明的範疇內,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (36)
- 一種用於測試耦合至相應從控制器的元件的裝置,所述裝置包括:至少一個主控制器,所述主控制器包括:至中央處理單元的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠;多個從控制器,每個從控制器包括:至元件的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠;以及第一鏈橋,所述第一鏈橋包括:將所述第一鏈橋耦合至第一鏈節點的第一組輸入和輸出埠,所述第一鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第一鏈中的節點包括所述主控制器,以及將所述第一鏈橋耦合至第二鏈節點的第二組輸入和輸出埠,所述第二鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第二鏈中的節點包括多個從控制器。
- 如申請專利範圍第1項所述的裝置,還包括鏈的分級,所述鏈的分級包括:在所述分級的根層級處的所述第一鏈,在所述根層級下面的第一中間層級處的所述第二鏈,所述第二鏈 中的節點至少包括將所述第二鏈耦合至所述第一鏈的所述第一鏈橋以及將所述第二鏈耦合至在所述第一中間層級下面的層級處的第三鏈節點的第二鏈橋,以及在所述分級的在所述第一中間層級下面的一個或多個層級處,多個鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述多個鏈中的每個鏈中的節點包括一個或多個從控制器以及至少一個鏈橋。
- 如申請專利範圍第2項所述的裝置,其中至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同時脈域中的元件的介面。
- 如申請專利範圍第2項所述的裝置,其中至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同功率域中的元件的介面。
- 如申請專利範圍第1項所述的裝置,其中每個從控制器包括:時脈輸入埠;根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸入埠接收數位訊號的電路;以及根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸出埠傳輸數位訊號的電路。
- 如申請專利範圍第5項所述的裝置,還包括向所述第二鏈中的每個從控制器提供第一時脈訊號的第一時脈電路。
- 如申請專利範圍第6項所述的裝置,還包括向第三鏈節點中的每個從 控制器提供第二時脈訊號的第二時脈電路,其中所述第二時脈訊號具有與所述第一時脈訊號相比不同的頻率或相位中的至少一項。
- 如申請專利範圍第7項所述的裝置,其中耦合至所述第二鏈和所述第三鏈二者的鏈橋包括在具有與所述第一時脈訊號對準的邊沿的數位訊號和具有與所述第二時脈訊號對準的邊沿的數位訊號之間轉譯訊息的電路。
- 如申請專利範圍第1項所述的裝置,其中所述主控制器被配置成提供圍繞鏈迴圈的輪詢訊息,並且所述從控制器被配置成在檢測到輪詢訊息之後的空閒訊號之後回應於所述輪詢訊息提供圍繞鏈迴圈的輪詢回應訊息。
- 如申請專利範圍第9項所述的裝置,其中所述從控制器被配置成使與耦合至所述從控制器的介面的元件的狀態或控制對應的訊息圍繞鏈迴圈。
- 如申請專利範圍第10項所述的裝置,其中所述主控制器包括主記憶體控制器,所述從控制器包括從記憶體控制器,並且所述元件包括記憶體元件。
- 如申請專利範圍第11項所述的裝置,其中所述訊息包括以下各項中的一項或多項:內置自測訊息、內置自修復訊息或者改錯碼訊息。
- 一種非暫態機器可讀媒體,存儲用於測試耦合至相應從控制器的元件的程式,所述程式包括用於使得機器進行以下操作的指令:模擬至少一個主控制器,所述主控制器包括:至中央處理單元的介面, 被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠;模擬多個從控制器,每個從控制器包括:至元件的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠;以及模擬第一鏈橋,所述第一鏈橋包括:將所述第一鏈橋耦合至第一鏈節點的第一組輸入和輸出埠,所述第一鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第一鏈中的節點包括所述主控制器,以及將所述第一鏈橋耦合至第二鏈節點的第二組輸入和輸出埠,所述第二鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第二鏈中的節點包括多個從控制器。
- 如申請專利範圍第13項所述的媒體,還包括用於使得所述機器模擬鏈的分級的指令,所述鏈的分級包括:在所述分級的根層級處的所述第一鏈,在所述根層級下面的第一中間層級處的所述第二鏈,所述第二鏈中的節點至少包括將所述第二鏈耦合至所述第一鏈的所述第一鏈橋以及將所述第二鏈耦合至在所述第一中間層級下面的層級處的第三鏈節點的第二鏈橋,以及在所述分級的在所述第一中間層級下面的一個或多個層級處,多個鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述 多個鏈中的每個鏈中的節點包括一個或多個從控制器以及至少一個鏈橋。
- 如申請專利範圍第14項所述的媒體,其中至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同時脈域中的元件的介面。
- 如申請專利範圍第14項所述的媒體,其中至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同功率域中的元件的介面。
- 如申請專利範圍第13項所述的媒體,其中每個從控制器包括:時脈輸入埠;根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸入埠接收數位訊號的電路;以及根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸出埠傳輸數位訊號的電路。
- 如申請專利範圍第17項所述的媒體,還包括用於使得所述機器模擬向所述第二鏈中的每個從控制器提供第一時脈訊號的第一時脈電路的指令。
- 如申請專利範圍第18項所述的媒體,還包括用於使得所述機器模擬向第三鏈節點中的每個從控制器提供第二時脈訊號的第二時脈電路的指令,其中所述第二時脈訊號具有與所述第一時脈訊號相比不同的頻率或相位中的至少一項。
- 如申請專利範圍第19項所述的媒體,其中耦合至所述第二鏈和所述第三鏈二者的鏈橋包括在具有與所述第一時脈訊號對準的邊沿的數位訊號和具有與所述第二時脈訊號對準的邊沿的數位訊號之間轉譯訊息的電路。
- 如申請專利範圍第13項所述的媒體,其中所述主控制器被配置成提供圍繞鏈迴圈的輪詢訊息,並且所述從控制器被配置成在檢測到輪詢訊息之後的空閒訊號之後回應於所述輪詢訊息提供圍繞鏈迴圈的輪詢回應訊息。
- 如申請專利範圍第21項所述的媒體,其中所述從控制器被配置成使與耦合至所述從控制器的介面的元件的狀態或控制對應的訊息圍繞鏈迴圈。
- 如申請專利範圍第22項所述的媒體,其中所述主控制器包括主記憶體控制器,所述從控制器包括從記憶體控制器,並且所述元件包括記憶體元件。
- 如申請專利範圍第23項所述的媒體,其中所述訊息包括以下各項中的一項或多項:內置自測訊息、內置自修復訊息或者改錯碼訊息。
- 一種用於測試包括用於耦合至相應元件的從控制器的積體電路的設計或者製造的方法,所述方法包括:執行與至少一個主控制器對應的指令,所述主控制器包括:至中央處理單元的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠; 執行與多個從控制器對應的指令,每個從控制器包括:至元件的介面,被配置成從導體路徑接收數位訊號的輸入埠,以及被配置成向導體路徑傳輸數位訊號的輸出埠;以及執行與第一鏈橋對應的指令,所述第一鏈橋包括:將所述第一鏈橋耦合至第一鏈節點的第一組輸入和輸出埠,所述第一鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第一鏈中的節點包括所述主控制器,以及將所述第一鏈橋耦合至第二鏈節點的第二組輸入和輸出埠,所述第二鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述第二鏈中的節點包括多個從控制器。
- 如申請專利範圍第25項所述的方法,還包括執行與鏈的分級對應的指令,所述鏈的分級包括:在所述分級的根層級處的所述第一鏈,在所述根層級下面的第一中間層級處的所述第二鏈,所述第二鏈中的節點至少包括將所述第二鏈耦合至所述第一鏈的所述第一鏈橋以及將所述第二鏈耦合至在所述第一中間層級下面的層級處的第三鏈節點的第二鏈橋,以及在所述分級的在所述第一中間層級下面的一個或多個層級處,多個鏈節點各自藉由閉合回路中的導體路徑耦合至相鄰節點,其中所述多個鏈中的每個鏈中的節點包括一個或多個從控制器以及至少一個鏈橋。
- 如申請專利範圍第26項所述的方法,其中至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同時脈域中的元件的介面。
- 如申請專利範圍第26項所述的方法,其中至少兩個不同的鏈節點包括從控制器,所述從控制器包括至積體電路的不同功率域中的元件的介面。
- 如申請專利範圍第25項所述的方法,其中每個從控制器包括:時脈輸入埠;根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸入埠接收數位訊號的電路;以及根據在所述時脈輸入埠處提供的時脈訊號的邊沿通過輸出埠傳輸數位訊號的電路。
- 如申請專利範圍第29項所述的方法,還包括執行與向所述第二鏈中的每個從控制器提供第一時脈訊號的第一時脈電路對應的指令。
- 如申請專利範圍第30項所述的方法,還包括執行與向第三鏈節點中的每個從控制器提供第二時脈訊號的第二時脈電路對應的指令,其中所述第二時脈訊號具有與所述第一時脈訊號相比不同的頻率或相位中的至少一項。
- 如申請專利範圍第31項所述的方法,其中耦合至所述第二鏈和所述第三鏈二者的鏈橋包括在具有與所述第一時脈訊號對準的邊沿的數位訊號和具有與所述第二時脈訊號對準的邊沿的數位訊號之間轉譯訊息的電路。
- 如申請專利範圍第25項所述的方法,其中所述主控制器被配置成提供圍繞鏈迴圈的輪詢訊息,並且所述從控制器被配置成在檢測到輪詢訊息之後的空閒訊號之後回應於所述輪詢訊息提供圍繞鏈迴圈的輪詢回應訊息。
- 如申請專利範圍第33項所述的方法,其中所述從控制器被配置成使與耦合至所述從控制器的介面的元件的狀態或控制對應的訊息圍繞鏈迴圈。
- 如申請專利範圍第34項所述的方法,其中所述主控制器包括主記憶體控制器,所述從控制器包括從記憶體控制器,並且所述元件包括記憶體元件。
- 如申請專利範圍第35項所述的方法,其中所述訊息包括以下各項中的一項或多項:內置自測訊息、內置自修復訊息或者改錯碼訊息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/637,533 US9678159B2 (en) | 2015-03-04 | 2015-03-04 | Communication and control topology for efficient testing of sets of devices |
US14/637,533 | 2015-03-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201632906A TW201632906A (zh) | 2016-09-16 |
TWI631355B true TWI631355B (zh) | 2018-08-01 |
Family
ID=56850435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104108042A TWI631355B (zh) | 2015-03-04 | 2015-03-13 | 用於元件集合的高效測試的通信及控制拓撲結構 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9678159B2 (zh) |
TW (1) | TWI631355B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9640280B1 (en) * | 2015-11-02 | 2017-05-02 | Cadence Design Systems, Inc. | Power domain aware insertion methods and designs for testing and repairing memory |
CN109671344B (zh) * | 2018-12-28 | 2020-11-06 | 国家电网有限公司 | 一种用于直流输配电工程动态模拟实验系统的拓扑结构 |
JP7298210B2 (ja) * | 2019-03-14 | 2023-06-27 | オムロン株式会社 | 設定情報生成装置、設定情報生成方法、及び制御プログラム |
WO2023164659A1 (en) * | 2022-02-28 | 2023-08-31 | Qualcomm Incorporated | Modular scan data network for high speed scan data transfer |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6452904B1 (en) * | 1999-01-15 | 2002-09-17 | Telefonaktiebolaget L M Ericsson (Publ) | Operation and maintenance flow support for A-interface connections |
US6654831B1 (en) * | 2000-03-07 | 2003-11-25 | International Business Machine Corporation | Using multiple controllers together to create data spans |
TW200519617A (en) * | 2003-10-10 | 2005-06-16 | Advanced Micro Devices Inc | Processor surrogate for use in multiprocessor systems and multiprocessor system using same |
US20110264971A1 (en) * | 2010-04-23 | 2011-10-27 | Stmicroelectronics Pvt. Ltd. | Testing of multi-clock domains |
US20150137958A1 (en) * | 2013-11-21 | 2015-05-21 | Lumenradio Ab | Wireless remote control |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689466A (en) | 1995-04-07 | 1997-11-18 | National Semiconductor Corporation | Built in self test (BIST) for multiple RAMs |
US5961653A (en) | 1997-02-19 | 1999-10-05 | International Business Machines Corporation | Processor based BIST for an embedded memory |
US5995731A (en) | 1997-12-29 | 1999-11-30 | Motorola, Inc. | Multiple BIST controllers for testing multiple embedded memory arrays |
US6415403B1 (en) | 1999-01-29 | 2002-07-02 | Global Unichip Corporation | Programmable built in self test for embedded DRAM |
US6691264B2 (en) | 2001-01-22 | 2004-02-10 | Lsi Logic Corporation | Built-in self-repair wrapper methodology, design flow and design architecture |
US6779140B2 (en) * | 2001-06-29 | 2004-08-17 | Agilent Technologies, Inc. | Algorithmically programmable memory tester with test sites operating in a slave mode |
US7308621B2 (en) | 2002-04-30 | 2007-12-11 | International Business Machines Corporation | Testing of ECC memories |
US7631236B2 (en) | 2004-01-29 | 2009-12-08 | International Business Machines Corporation | Hybrid built-in self test (BIST) architecture for embedded memory arrays and an associated method |
DE102004050424B4 (de) * | 2004-10-15 | 2010-04-15 | Bosch Rexroth Ag | Verfahren zur Übertragung von Daten in einem Kommunikationssystem |
DE102004050416A1 (de) * | 2004-10-15 | 2006-04-27 | Bosch Rexroth Ag | Verfahren zur Synchronisation in einem redundanten Kommunikationssystem |
US7240267B2 (en) | 2004-11-08 | 2007-07-03 | Marvell International Ltd. | System and method for conducting BIST operations |
US7649912B2 (en) * | 2005-04-27 | 2010-01-19 | Rockwell Automation Technologies, Inc. | Time synchronization, deterministic data delivery and redundancy for cascaded nodes on full duplex ethernet networks |
US8108744B2 (en) | 2006-11-28 | 2012-01-31 | Stmicroelectronics Pvt. Ltd. | Locally synchronous shared BIST architecture for testing embedded memories with asynchronous interfaces |
US8223660B2 (en) * | 2007-04-18 | 2012-07-17 | Rockstar Bidco Lp | Failure notification in a network having serially connected nodes |
US20090063786A1 (en) * | 2007-08-29 | 2009-03-05 | Hakjune Oh | Daisy-chain memory configuration and usage |
US7737725B1 (en) * | 2008-04-04 | 2010-06-15 | Xilinx, Inc. | Device control register for a processor block |
JP5163766B2 (ja) * | 2011-03-15 | 2013-03-13 | オムロン株式会社 | 設計支援システム |
JP5195955B2 (ja) * | 2011-03-15 | 2013-05-15 | オムロン株式会社 | 設計支援システム |
US9024650B2 (en) * | 2012-11-13 | 2015-05-05 | Advanced Micro Devices, Inc. | Scalable built-in self test (BIST) architecture |
US9952995B2 (en) * | 2012-11-27 | 2018-04-24 | Nxp Usa, Inc. | Redundant packet forwarding system |
US20160183351A1 (en) * | 2013-03-25 | 2016-06-23 | Ids-Ip Holdings Llc | System, method, and apparatus for powering intelligent lighting networks |
US9544976B2 (en) * | 2015-01-23 | 2017-01-10 | Ids-Ip Holdings Llc | System, method, and apparatus for powering intelligent lighting networks |
US20150319081A1 (en) * | 2014-03-14 | 2015-11-05 | Avni Networks Inc. | Method and apparatus for optimized network and service processing |
US9722927B2 (en) * | 2014-06-05 | 2017-08-01 | Futurewei Technologies, Inc. | Service chain topology map construction |
-
2015
- 2015-03-04 US US14/637,533 patent/US9678159B2/en active Active
- 2015-03-13 TW TW104108042A patent/TWI631355B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6452904B1 (en) * | 1999-01-15 | 2002-09-17 | Telefonaktiebolaget L M Ericsson (Publ) | Operation and maintenance flow support for A-interface connections |
US6654831B1 (en) * | 2000-03-07 | 2003-11-25 | International Business Machine Corporation | Using multiple controllers together to create data spans |
TW200519617A (en) * | 2003-10-10 | 2005-06-16 | Advanced Micro Devices Inc | Processor surrogate for use in multiprocessor systems and multiprocessor system using same |
US20110264971A1 (en) * | 2010-04-23 | 2011-10-27 | Stmicroelectronics Pvt. Ltd. | Testing of multi-clock domains |
US20150137958A1 (en) * | 2013-11-21 | 2015-05-21 | Lumenradio Ab | Wireless remote control |
Also Published As
Publication number | Publication date |
---|---|
TW201632906A (zh) | 2016-09-16 |
US20160259000A1 (en) | 2016-09-08 |
US9678159B2 (en) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9825843B2 (en) | Die-stacked device with partitioned multi-hop network | |
US8839057B2 (en) | Integrated circuit and method for testing memory on the integrated circuit | |
CN103492890B (zh) | 用于ip模块的电路测试的基于功能结构的测试包装器 | |
CN103376400B (zh) | 芯片测试方法及芯片 | |
TWI631355B (zh) | 用於元件集合的高效測試的通信及控制拓撲結構 | |
KR20120095842A (ko) | 컴퓨터 메모리 테스트 구조 | |
US9806908B2 (en) | Route mapping at individual nodes of a cluster server | |
US11176297B2 (en) | Detection and isolation of faults to prevent propagation of faults in a resilient system | |
JP2009048674A (ja) | 半導体集積回路 | |
JPH0432348B2 (zh) | ||
US9672094B1 (en) | Interconnect circuitry fault detection | |
JP5818762B2 (ja) | プログラマブルロジックデバイス及びその検証方法 | |
CN108459876A (zh) | 用于缩减面积的控制寄存器电路的方法与装置 | |
Babaei et al. | Online-structural testing of routers in network on chip | |
KR20230086687A (ko) | 고속 기능 프로토콜 기반 테스트 및 디버그 | |
CN203573309U (zh) | 嵌入式系统存储器的测试结构 | |
US7861197B2 (en) | Method of verifying design of logic circuit | |
CN109557459A (zh) | 一种基于JTAG测试的SiP系统及其内部芯片的JTAG测试方法 | |
US9178750B2 (en) | Post-silicon repair of on-die networks | |
Chuanpei et al. | BIST method of SRAM for network-on-chip | |
Kariniemi et al. | On-line reconfigurable XGFT network-on-chip designed for improving the fault-tolerance and manufacturability of the MPSoC chips | |
CN219997875U (zh) | 一种存储器保护模块、集成电路芯片及其测试电路 | |
CN117851146A (zh) | 针对小芯片的fpga原型验证系统和原型验证方法 | |
Rao et al. | Review and analysis on network on chip | |
US20200210544A1 (en) | System and method for reducing silicon area of resilient systems using functional and duplicate logic |