Claims
- 1. A method of performing RTL testability analysis for checking scan rule violations in an integrated circuit modeled at RTL (register-transfer level), the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising a list of scan clocks; and (c) based on said scan constraints, analyzing said design database and reporting all said scan rule violations including one or more of the following: generated set/reset signals, destructive set/reset signals, combinational gated set/reset signals, sequential gated set/reset signals, potential bus contention on tri-state busses, generated clocks, constant clocks, clocks connected to data inputs of storage elements, combinational gated clocks, sequential gated clocks, pulse generators, and potential combinational feedback loops.
- 2. A method of performing clock-domain minimization for generating an optimal number of scan clocks to test an integrated circuit modeled at RTL (register-transfer level), the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising a list of scan clocks to be minimized; and (c) based on said scan constraints, analyzing said design database to identify which selected clock domains do not interact with each other, and when said selected clock domains do not interact with each other, selectively replacing said scan clocks controlling said selected clock domains with one or more grouped scan clocks each for testing a plurality of said selected clock domains at the same frequency concurrently.
- 3. The method of claim 2, further comprising selectively specifying said optimal number of scan clocks in one-hot mode, non-overlapping mode, or overlapping mode.
- 4. A method of performing clock-domain minimization for generating an optimal ordered sequence of scan clocks to test an integrated circuit modeled at RTL (register-transfer level), the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising a list of scan clocks to be minimized and ordered; (c) based on said scan constraints, analyzing said design database to identify which selected clock domains do not interact with each other, and when said selected clock domains do not interact with each other, selectively replacing said scan clocks controlling said selected clock domains with one or more grouped scan clocks each for testing a plurality of said selected clock domains at the same frequency concurrently; and (d) based on said scan constraints and said grouped scan clocks, further analyzing said design database to search for said optimal ordered sequence of scan clocks using the least amount or near-minimal amount of computer memory when transforming said design database into an equivalent combinational circuit model.
- 5. The method of claim 4, wherein said using the least amount or near-minimal amount of computer memory when transforming said design database into an equivalent combinational circuit model further comprises estimating the memory usage of each said clock domain and the memory usage of each crossing clock-domain logic block within each time frame in said equivalent combinational circuit model.
- 6. The method of claim 4, further comprising selectively specifying said optimal ordered sequence of scan clocks in one-hot mode, non-overlapping mode, or overlapping mode.
- 7. A method of performing scan selection for selecting a plurality of storage elements to test an integrated circuit modeled at RTL (register-transfer level), the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising a list of scan clocks and a list of modules to be included and excluded for scan selection; (c) based on said scan constraints, analyzing said design database and selecting said storage elements within each said clock domain which are directly controllable by one said scan clock; and (d) organizing all selected storage elements within all said clock domains into a plurality of scan chains.
- 8. The method of claim 7, wherein said storage element is a flip-flop or a latch.
- 9. The method of claim 7, wherein said selecting said storage elements within each said clock domain further comprises selecting said storage elements according to a selected sequential cell-depth specified in said scan constraints.
- 10. The method of claim 7, wherein said selecting said storage elements within each said clock domain further comprises sorting and ordering said storage elements by module names followed by instance names within each said clock domain.
- 11. The method of claim 7, wherein said organizing all selected storage elements within all said clock domains into a plurality of scan chains further comprises splitting said selected storage elements within a selected clock domain into two or more said scan chains according to said scan constraints.
- 12. The method of claim 7, wherein said organizing all selected storage elements within all said clock domains into a plurality of scan chains further comprises merging said selected storage elements within a plurality of selected clock domains into one said scan chain according to said scan constraints.
- 13. The method of claim 7, further comprising analyzing said design database and reporting all storage elements within each said clock domain which are not directly controllable by any said scan clock; wherein said storage elements are candidates for scan repair and scan insertion.
- 14. A method of performing test point selection for selecting a plurality of test points to test an integrated circuit modeled at RTL (register-transfer level), the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising the number of test points to be selected; and (c) based on said scan constraints, analyzing said design database and selecting said test points.
- 15. The method of claim 14, wherein said selecting said test points within each said clock domain further comprises interactively guiding designers to select said test points according to testability measures or fault coverage estimates on a list of test point candidates; wherein each said test point is selectively a control point including an AND gate, an OR gate, a multiplexer or an XOR gate, an observation point including a new storage element, or an XOR gate coupled to a selected storage element or a selected primary output, or a scan point including a multiplexer coupled to a new storage element.
- 16. A method of performing scan repair for repairing all scan rule violations and inserting selected test points in an integrated circuit modeled at RTL (register-transfer level), the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising said scan rule violations and said selected test points; (c) repairing said scan rule violations based on said scan constraints; (d) inserting said test points based on said scan constraints; and (e) generating the scan-repaired HDL code at RTL.
- 17. The method of claim 16, wherein said repairing said scan rule violations further comprises selectively using a test enable (TE) signal or a scan enable (SE) signal to repair selected asynchronous set/reset flip-flops or latches; wherein each said selected asynchronous set/reset flip-flop or latch is selectively generated, destructive, combinationally gated, or sequentially gated.
- 18. The method of claim 16, wherein said repairing said scan rule violations further comprises using a test enable (TE) signal to repair selected generated clocks, selected constant clocks, and selected clocks connected to data inputs of storage elements or primary outputs.
- 19. The method of claim 16, wherein said repairing said scan rule violations further comprises using a scan enable (SE) signal to repair selected combinational gated clocks and selected sequential gated clocks.
- 20. The method of claim 16, wherein said repairing said scan rule violations further comprises selectively using a test enable (TE) signal or a scan enable (SE) signal to repair selected transparent latches.
- 21. The method of claim 16, wherein said repairing said scan rule violations further comprises using a scan enable (SE) signal to repair selected bi-directional pins into a selected input or output mode.
- 22. The method of claim 16, wherein said repairing said scan rule violations further comprises using a test enable (TE) signal to repair selected combinational feedback loops and selected potential combinational feedback loops.
- 23. The method of claim 16, wherein said repairing said scan rule violations further comprises using a test enable (TE) signal to repair selected pulse generators.
- 24. The method of claim 16, wherein said repairing said scan rule violations further comprises using a scan enable (SE) signal to repair potential bus contention on selected tri-state busses.
- 25. The method of claim 16, wherein said inserting said test points further comprises selectively using a test enable (TE) signal or a scan enable (SE) signal to selectively add a selected control point, a selected observation point, or a selected scan point in each said test point; wherein said control point selectively includes an AND gate, an OR gate, a multiplexer, or an XOR gate, wherein said observation point selectively includes a new storage element, or an XOR gate coupled to a selected storage element or a selected primary output, and wherein said scan point includes a multiplexer coupled to a new storage element.
- 26. A method of performing scan extraction for extracting scan cells from a plurality of scan chains in a scan-based integrated circuit modeled at RTL (register-transfer level), the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the scan-based HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising a scan in port and a scan out port for each said scan chain; and (c) extracting said scan cells from each said scan chain according to said scan in port and said scan out port specified in said scan constraints.
- 27. The method of claim 26, wherein said extracting said scan cells from each said scan chain further comprises the computer-implemented steps of:
(d) setting selected scan enable (SE) signals to predetermined logic values to enable shifting of said scan chain; (e) performing topological search, simulation, or a combination of both to generate an ordered list of said scan cells from each said scan chain; and (f) reporting broken scan cells within each said broken scan chain where scan extraction fails.
- 28. A method of performing interactive scan debug for locating broken scan cells within each broken scan chain in a scan-based integrated circuit modeled at RTL (register-transfer level), the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the scan-based HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising a scan in port and a scan out port for each said scan chain; (c) setting selected scan enable (SE) signals to predetermined logic values to enable shifting of said broken scan chain; and (d) performing simulation to locate said broken scan cells one by one within each said broken scan chain.
- 29. The method of claim 28, wherein said performing simulation to locate said broken scan cells one by one within each said broken scan chain further comprises interactively tracing said broken scan cells one by one by displaying their respective signal values on a computer.
- 30. The method of claim 28, wherein said performing simulation to locate said broken scan cells one by one within each said broken scan chain further comprises applying selected test patterns and interactively forcing logic values of 0's or 1's to any internal signal to repair said broken scan cells and recording said internal signals and their forced values, called broken control points, for interactive scan repair.
- 31. The method of claim 28, wherein said performing simulation to locate said broken scan cells one by one within each said broken scan chain further comprises applying selected test patterns and interactively highlighting selected RTL codes and signals been traced and fixed on a schematic viewer, HDL code viewer, or a waveform viewer.
- 32. A method of performing interactive scan repair for repairing broken scan cells within each broken scan chain in a scan-based integrated circuit modeled at RTL (register-transfer level), the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the scan-based HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising selected broken control points to be repaired; (c) repairing said selected broken control points within each said broken scan chain according to said scan constraints; and (d) generating the scan-repaired HDL code at RTL.
- 33. The method of claim 32, wherein said repairing said selected broken control points within each said broken scan chain further comprises interactively guiding designers to select said scan-repaired HDL code for repairing each said selected broken control point on said design database.
- 34. The method of claim 32, wherein said repairing said selected broken control points within each said broken scan chain further comprises making a plurality of interactive repair suggestions and repairing each said selected broken control point according to a selected said repair suggestion.
- 35. The method of claim 32, wherein said repairing said selected broken control points within each said broken scan chain further comprises interactively highlighting selected RTL codes and said selected broken control points been repaired on a schematic viewer, HDL code viewer, or a waveform viewer.
- 36. A method of performing scan synthesis for inserting scan cells and test points at RTL (register-transfer level) in an integrated circuit modeled at RTL, the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) compiling the HDL (hardware description language) code that represents said integrated circuit at RTL into a design database; (b) receiving scan constraints from an external source, said scan constraints further comprising a list of scan clocks to be minimized and ordered; (c) performing RTL testability analysis for checking whether said design database contains any scan rule violation; (d) performing clock-domain minimization for generating an optimal number of scan clocks to test said integrated circuit; (e) performing scan selection for selecting a plurality of storage elements according to said scan clocks and scan constraints; (f) performing test point selection for selecting a plurality of test points according to said scan clocks and said scan constraints; (g) performing scan repair for repairing all said scan rule violations and inserting said selected test points into said design database; (h) performing scan replacement and scan stitching for replacing said selected storage elements and said selected test points with scan cells and stitching said scan cells together as a plurality of scan chains according to said scan clocks and said scan constraints; (i) generating the scan HDL code at RTL; and (j) generating HDL test benches for verifying the correctness of said scan HDL code.
- 37. The method of claim 36, including adapting said steps of (a)-(j) to accept said scan constraints and report the results and errors if any.
- 38. The method of claim 36, wherein said (c) performing RTL testability analysis for checking whether said design database contains any scan rule violation further comprises reporting all said scan rule violations including one or more of the following: generated set/reset signals, destructive set/reset signals, combinational gated set/reset signals, sequential gated set/reset signals, potential bus contention on tri-state busses, generated clocks, constant clocks, clocks connected to data inputs of storage elements, combinational gated clocks, sequential gated clocks, pulse generators, and potential combinational feedback loops.
- 39. The method of claim 36, wherein said (d) performing clock-domain minimization for generating an optimal ordered sequence of scan clocks further comprises analyzing said design database based on said scan constraints to identify which selected clock domains do not interact with each other, and when said selected clock domains do not interact with each other, selectively replacing said scan clocks controlling said selected clock domains with one or more grouped scan clocks each for testing a plurality of said selected clock domains at the same frequency concurrently.
- 40. The method of claim 39, wherein said selectively replacing said scan clocks controlling said selected clock domains with one or more grouped scan clocks further comprises analyzing said design database based on said scan constraints and said grouped scan clocks to search for said optimal ordered sequence of scan clocks using the least amount or near-minimal amount of computer memory when transforming said design database into an equivalent combinational circuit model.
- 41. The method of claim 40, wherein said using the least amount or near-minimal amount of computer memory when transforming said design database into an equivalent combinational circuit model further comprises estimating the memory usage of each said clock domain and the memory usage of each crossing clock-domain logic block within each time frame in said equivalent combinational circuit model.
- 42. The method of claim 36, wherein said (d) performing clock-domain minimization for generating an optimal ordered sequence of scan clocks further comprises selectively specifying said optimal ordered sequence of scan clocks in one-hot mode, non-overlapping mode, or overlapping mode.
- 43. The method of claim 36, wherein said (e) performing scan selection for selecting a plurality of storage elements further comprises the computer-implemented steps of:
(k) based on said scan constraints, analyzing said design database and selecting said storage elements within each said clock domain which are directly controllable by one said scan clock; and (l) organizing all selected storage elements within all said clock domains into a plurality of scan chains.
- 44. The method of claim 43, wherein said storage element is a flip-flop or a latch.
- 45. The method of claim 43, wherein said (k) selecting said storage elements within each said clock domain further comprises selecting said storage elements according to a selected sequential cell-depth specified in said scan constraints.
- 46. The method of claim 43, wherein said (k) selecting said storage elements within each said clock domain further comprises sorting and ordering said storage elements by module names followed by instance names within each said clock domain.
- 47. The method of claim 43, wherein said (l) organizing all selected storage elements within all said clock domains into a plurality of scan chains further comprises splitting said selected storage elements within a selected clock domain into two or more said scan chains according to said scan constraints.
- 48. The method of claim 43, wherein said (l) organizing all selected storage elements within all said clock domains into a plurality of scan chains further comprises merging said selected storage elements within a plurality of selected clock domains into one said scan chain according to said scan constraints.
- 49. The method of claim 36, wherein said (e) performing scan selection for selecting a plurality of storage elements further comprises analyzing said design database and reporting all storage elements within each said clock domain which are not directly controllable by any said scan clock; wherein said storage elements are candidates for scan repair and scan insertion.
- 50. The method of claim 36, wherein said (f) performing test point selection for selecting a plurality of test points further comprises analyzing said design database and interactively guiding designers to select said test points according to testability measures or fault coverage estimates on a list of test point candidates; wherein each said test point is selectively a control point including an AND gate, an OR gate, a multiplexer, or an XOR gate, an observation point including a new storage element, or an XOR gate coupled to a selected storage element or a selected primary output, or a scan point including a multiplexer coupled to a new storage element.
- 51. The method of claim 36, wherein said (g) performing scan repair for repairing all scan rule violations and inserting selected test points further comprises:
(m) repairing said scan rule violations based on said scan constraints; and (n) inserting said test points based on said scan constraints.
- 52. The method of claim 51, wherein said (m) repairing said scan rule violations further comprises selectively using a test enable (TE) signal or a scan enable (SE) signal to repair selected asynchronous set/reset flip-flops or latches; wherein each said selected asynchronous set/reset flip-flop or latch is selectively generated, destructive, combinationally gated, or sequentially gated.
- 53. The method of claim 51, wherein said (m) repairing said scan rule violations further comprises using a test enable (TE) signal to repair selected generated clocks, selected constant clocks, and selected clocks connected to data inputs of storage elements or primary outputs.
- 54. The method of claim 51, wherein said (m) repairing said scan rule violations further comprises using a scan enable (SE) signal to repair selected combinational gated clocks and selected sequential gated clocks.
- 55. The method of claim 51, wherein said (m) repairing said scan rule violations further comprises selectively using a test enable (TE) signal or a scan enable (SE) signal to repair selected transparent latches.
- 56. The method of claim 51, wherein said (m) repairing said scan rule violations further comprises using a scan enable (SE) signal to repair selected bi-directional pins into a selected input or output mode.
- 57. The method of claim 51, wherein said (m) repairing said scan rule violations further comprises using a test enable (TE) signal to repair selected combinational feedback loops and selected potential combinational feedback loops.
- 58. The method of claim 51, wherein said (m) repairing said scan rule violations further comprises using a test enable (TE) signal to repair selected pulse generators.
- 59. The method of claim 51, wherein said (m) repairing said scan rule violations further comprises using a scan enable (SE) signal to repair potential bus contention on selected tri-state busses.
- 60. The method of claim 51, wherein said (n) inserting said test points further comprises selectively using a test enable (TE) signal or scan enable (SE) signal to selectively add a selected control point, a selected observation point, or a selected scan point in each said test point; wherein said control point selectively includes an AND gate, an OR gate, a multiplexer, or an XOR gate, wherein said observation point selectively includes a new storage element, or an XOR gate coupled to a selected storage element or a selected primary output, and wherein said scan point includes a multiplexer coupled to a new storage element.
- 61. The method of claim 36, wherein said (h) performing scan replacement and scan stitching further comprises connecting said scan cells in a plurality of said scan chains to one or more selected scan enable (SE) signals, according to said scan constraints.
- 62. The method of claim 36, wherein said (h) performing scan replacement and scan stitching further comprises inserting a selected lock-up element between two adjacent scan cells within one said scan chain or between two said scan chains, when said adjacent scan cell are connected to different scan clocks, wherein said lock-up element includes a NOT gate and a storage element; wherein said storage element is a flip-flop or a latch.
- 63. The method of claim 36, further comprising performing scan extraction for extracting said scan cells from a plurality of said scan chains in said design database and reporting whether there are any broken scan chains.
- 64. The method of claim 63, wherein said performing scan extraction further comprises the computer-implemented steps of:
(o) receiving scan constraints from an external source, said scan constraints further comprising a scan in port and a scan out port for each said scan chain; and (p) extracting said scan cells from each said scan chain according to said scan in port and said scan out port specified in said scan constraints.
- 65. The method of claim 64, wherein said (p) extracting said scan cells from each said scan chain further comprises the computer-implemented steps of:
(q) setting selected scan enable (SE) signals to predetermined logic values to enable shifting of said scan chain; (r) performing a topological search, simulation, or a combination of both to generate an ordered list of said scan cells from each said scan chain; and (s) reporting broken scan cells within each said broken scan chain where scan extraction fails.
- 66. The method of claim 63, wherein said performing scan extraction further comprises performing interactive scan debug for locating said broken scan cells within each broken scan chain; wherein said performing interactive scan debug further comprises the computer-implemented steps of:
(t) receiving scan constraints from an external source, said scan constraints further comprising a scan in port and a scan out port for each said scan chain; (u) setting selected scan enable (SE) signals to predetermined logic values to enable shifting of said broken scan chain; and (v) performing simulation to locate said broken scan cells one by one within each said broken scan chain.
- 67. The method of claim 66, wherein said (v) performing simulation to locate said broken scan cells one by one within each said broken scan chain further comprises applying selected test patterns and interactively tracing said broken scan cells one by one by displaying their respective signal values on a computer.
- 68. The method of claim 66, wherein said (v) performing simulation to locate said broken scan cells one by one within each said broken scan chain further comprises applying selected test patterns and interactively forcing logic values of 0's or 1's to any internal signal to repair said broken scan cells and recording said internal signals and their forced values, called broken control points, for interactive scan repair.
- 69. The method of claim 66, wherein said (v) performing simulation to locate said broken scan cells one by one within each said broken scan chain further comprises interactively highlighting selected RTL codes and signals been traced and fixed on a schematic viewer, HDL code viewer, or a waveform viewer.
- 70. The method of claim 63, wherein said performing scan extraction further comprises performing interactive scan repair for repairing said broken scan cells within each broken scan chain; wherein said performing interactive scan repair further comprises the computer-implemented steps of:
(w) receiving scan constraints from an external source, said scan constraints further comprising selected broken control points to be repaired; and (x) repairing said selected broken control points within each said broken scan chain according to said scan constraints.
- 71. The method of claim 70, wherein said (x) repairing said selected broken control points within each said broken scan chain further comprises interactively guiding designers to select said scan-repaired HDL code for repairing each said selected broken control point on said design database.
- 72. The method of claim 70, wherein said (x) repairing said selected broken control points within each said broken scan chain further comprises making a plurality of interactive repair suggestions and repairing each said selected broken control point according to a selected said repair suggestion.
- 73. The method of claim 70, wherein said (x) repairing said selected broken control points within each said broken scan chain further comprises interactively highlighting selected RTL codes and said selected broken control points been repaired on a schematic viewer, HDL code viewer, or a waveform viewer.
- 74. The method of claim 36, wherein said (j) generating HDL test benches for verifying the correctness of said scan HDL code further comprises generating flush and random test benches according to said scan constraints selectively specified in non-overlapping mode, overlapping mode, or one-hot mode.
- 75. The method of claim 36, wherein said steps of (a)-(j) are selectively combined to further verify the correctness of a scan-based integrated circuit when modeled at RTL.
- 76. The method of claim 36, wherein said HDL code modeled at RTL and said scan HDL code at RTL contain a collection of RTL statements describing the behavior of said integrated circuit before scan synthesis and after scan synthesis in a high level description language, including Verilog or VHDL, respectively.
- 77. The method of claim 36, further comprising utilizing a built-in self-test (BIST) circuitry selectively placed inside or external to said integrated circuit to process test signals applied to and from said scan chains.
- 78. The method of claim 36, further comprising utilizing a boundary-scan circuitry selectively placed inside or external to said integrated circuit to process test signals applied to and from said scan chains.
- 79. The method of claim 36, further comprising utilizing an ATE (automatic test equipment) external to said integrated circuit to process test signals applied to and from said scan chains.
- 80. A method of performing hierarchical scan synthesis for inserting scan cells and test points at RTL (register-transfer level) in an integrated circuit modeled at RTL, the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
partitioning all said clock domains into one or more modules, each module comprising one or more said clock domains; performing said scan synthesis on each said module for constructing a plurality of module-level scan chains according to claim 36;stitching all said module-level scan chains together as a plurality of top-level scan chains according to the scan constraints; generating the scan HDL code at RTL; and generating top-level HDL test benches for verifying the correctness of said scan HDL code.
- 81. The method of claim 80, including adapting said steps of (a)-(e) to accept said scan constraints and report the results and errors if any.
- 82. The method of claim 80, wherein said stitching all said module-level scan chains together as a plurality of top-level scan chains further comprises stitching said top-level scan chains with other core-level scan chains embedded in selected scan cores according to said scan constraints; wherein said selected scan cores are to be integrated into said integrated circuit.
- 83. The method of claim 80, wherein said HDL code modeled at RTL and said scan HDL code at RTL contain a collection of RTL statements describing the behavior of said integrated circuit before and after hierarchical scan synthesis in a high level description language, including Verilog or VHDL, respectively.
- 84. The method of claim 80, wherein said generating top-level HDL test benches for verifying the correctness of said scan HDL code further comprises generating flush and random test benches according to said scan constraints.
- 85. The method of claim 80, further comprising utilizing a built-in self-test (BIST) circuitry selectively placed inside or external to said integrated circuit to process test signals applied to and from said scan chains.
- 86. The method of claim 80, further comprising utilizing a boundary-scan circuitry selectively placed inside or external to said integrated circuit to process test signals applied to and from said scan chains.
- 87. The method of claim 80, further comprising utilizing an ATE (automatic test equipment) external to said integrated circuit to process test signals applied to and from said scan chains.
- 88. A computer-readable memory having computer-readable program code embodied therein for causing a computer system to perform a method of hierarchical scan synthesis for inserting scan cells and test points at RTL (register-transfer level) in an integrated circuit modeled at RTL, the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) partitioning all said clock domains into one or more modules, each module comprising one or more said clock domains; (b) performing said scan synthesis on each said module for constructing a plurality of module-level scan chains according to claim 36;(c) stitching all said module-level scan chains together as a plurality of top-level scan chains according to the scan constraints; (d) generating the scan HDL code at RTL; and (e) generating top-level HDL test benches for verifying the correctness of said scan HDL code.
- 89. The computer-readable memory of claim 88, including adapting said steps of (a)-(e) accept said scan constraints and report the results and errors if any.
- 90. The computer-readable memory of claim 88, wherein said stitching all said module-level scan chains together as a plurality of top-level scan chains further comprises stitching said top-level scan chains with other core-level scan chains embedded in selected scan cores according to said scan constraints; wherein said selected scan cores are to be integrated into said integrated circuit.
- 91. The computer-readable memory of claim 88, wherein said HDL code modeled at RTL and said scan HDL code at RTL contain a collection of RTL statements describing the behavior of said integrated circuit before and after hierarchical scan synthesis in a high level description language, including Verilog or VHDL, respectively.
- 92. The computer-readable memory of claim 88, wherein said generating top-level HDL test benches for verifying the correctness of said scan HDL code further comprises generating flush and random test benches according to said scan constraints.
- 93. The computer-readable memory of claim 88, further comprising utilizing a built-in self-test (BIST) circuitry selectively placed inside or external to said integrated circuit to process test signals applied to and from said scan chains.
- 94. The computer-readable memory of claim 88, further comprising utilizing a boundary-scan circuitry selectively placed inside or external to said integrated circuit to process test signals applied to and from said scan chains.
- 95. The computer-readable memory of claim 88, further comprising utilizing an ATE (automatic test equipment) external to said integrated circuit to process test signals applied to and from said scan chains.
- 96. An electronic design automation system comprising:
a processor; a bus coupled to said processor; and a computer-readable memory coupled to said bus and having computer-readable program code stored therein for causing said electronic design automation system to perform a method of hierarchical scan synthesis for inserting scan cells and test points at RTL (register-transfer level) in an integrated circuit modeled at RTL, the integrated circuit having a plurality of clock domains and each domain having one scan clock; said method comprising the computer-implemented steps of:
(a) partitioning all said clock domains into one or more modules, each module comprising one or more said clock domains; (b) performing said scan synthesis on each said module for constructing a plurality of module-level scan chains according to claim 36;(c) stitching all said module-level scan chains together as a plurality of top-level scan chains according to the scan constraints; (d) generating the scan HDL code at RTL; and (e) generating top-level HDL test benches for verifying the correctness of said scan HDL code.
- 97. The system of claim 96, including adapting said steps of (a)-(e) to accept said scan constraints and report the results and errors if any.
- 98. The system of claim 96, wherein said stitching all said module-level scan chains together as a plurality of top-level scan chains further comprises stitching said top-level scan chains with other core-level scan chains embedded in selected scan cores according to said scan constraints; wherein said selected scan cores are to be integrated into said integrated circuit.
- 99. The system of claim 96, wherein said HDL code modeled at RTL and said scan HDL code at RTL contain a collection of RTL statements describing the behavior of said integrated circuit before and after hierarchical scan synthesis in a high level description language, including Verilog or VHDL, respectively.
- 100. The system of claim 96, wherein said generating top-level HDL test benches for verifying the correctness of said scan HDL code further comprises generating flush and random test benches according to said scan constraints.
- 101. The system of claim 96, further comprising utilizing a built-in self-test (BIST) circuitry selectively placed inside or external to said integrated circuit to process test signals applied to and from said scan chains.
- 102. The system of claim 96, further comprising utilizing a boundary-scan circuitry selectively placed inside or external to said integrated circuit to process test signals applied to and from said scan chains.
- 103. The system of claim 96, further comprising utilizing an ATE (automatic test equipment) external to said integrated circuit to process test signals applied to and from said scan chains.
- 104. An apparatus of performing scan repair for repairing all scan rule violations and inserting selected test points in an integrated circuit modeled at RTL (register-transfer level); said apparatus comprising:
(a) first hardware for selectively using a test enable (TE) signal or a scan enable (SE) signal to repair selected asynchronous set/reset flip-flops or latches; wherein each said selected asynchronous set/reset flip-flop or latch is selectively generated, destructive, combinationally gated, or sequentially gated; (b) second hardware for using a test enable (TE) signal to repair selected generated clocks, selected constant clocks, and selected clocks connected to data inputs of storage elements or primary outputs; (c) third hardware for using a scan enable (SE) signal to repair selected combinational gated clocks and selected sequential gated clocks; (d) fourth hardware for selectively using a test enable (TE) signal or a scan enable (SE) signal to repair selected transparent latches; (e) fifth hardware for using a scan enable (SE) signal to repair selected bi-directional pins into a selected input or output mode; (f) sixth hardware for using a test enable (TE) signal to repair selected combinational feedback loops or selected potential combinational feedback loops; (g) seventh hardware for using a test enable (TE) signal to repair selected pulse generators; (h) eighth hardware for using a scan enable (SE) signal to repair potential bus contention on selected tri-state busses; and (i) ninth hardware for selectively using a test enable (TE) signal or a scan enable (SE) signal to selectively add a selected control point, a selected observation point, or a selected scan point in each said test point; wherein said control point selectively includes an AND gate, an OR gate, a multiplexer, or an XOR gate, wherein said observation point selectively includes a new storage element, or an XOR gate coupled to a selected storage element or a selected primary output, and wherein said scan point includes a multiplexer coupled to a new storage element.
RELATED APPLICATION DATA
[0001] This application claims the benefit of U.S. Provisional Application No. 60/279,710 filed Mar. 30, 2001 which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60279710 |
Mar 2001 |
US |