Patent US5774358A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5774358A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for generating instruction/data streams employed to verify hardware implementations of integrated circuit designs

Assignee: Apple Inc
•
Filing: 1996-04-01
•
Granted: 1998-06-30
•
Expires: 2016-04-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system (200) for generating an instruction/data stream (214) used to verify a hardware implementation of an integrated circuit design with respect to a higher level implementation. Upon execution, the instruction/data stream (214) causes boundary conditions, system events, interrupts, and exceptions of interest to be verified within the hardware implementation. In constructing the instruction/data stream (214), the system (200) receives (102) a plurality of templates (216) that describe partial behaviors of the integrated circuit design corresponding particular instructions. The system (200) then receives (104) a plurality of register models describe an operation of registers within the integrated circuit design. The system (200) then receives (106) a plurality of exception events that correspond to a potentially problematic operation of the hardware implementation. The system (200) then processes the plurality of templates, the plurality of register models, and the plurality of exception events to produce the instruction/data stream (214). The system (200) may also receive system element behavior (306) and process the system element behavior to validate operations of the hardware implementation for corresponding system elements.

Inventors

  • 👤 Curtis K. Shrote

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 21:51
CPC Classifications
G; G01; G01R; G01R31/00; G01R31/28; G01R31/317; G01R31/31704; G06; G06F; G06F30/00; G06F30/30; G06F30/32; G06F30/33

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 154 words
A method for generating an instruction/data stream used to verify a hardware implementation of an integrated circuit design, the method comprising the steps of: receiving a plurality of templates, wherein each of the plurality of templates describes at least a partial behavior of the integrated circuit design for a respective instruction; receiving a plurality of register models, wherein the plurality of register models describe the operation of a plurality of registers within the integrated circuit design; receiving a plurality of exception events, wherein each of the plurality of exception events corresponds to a potentially problematic operation of the hardware implementation of the integrated circuit design; processing the plurality of templates, the plurality of register models, and the plurality of exception events to produce the instruction/data stream, wherein the instruction/data stream includes a plurality of events, and wherein an execution of the instruction/data stream by the hardware implementation verifies the operation of the hardware implementation.
Claim 2
Independent Claim 154 words
A method for generating an instruction/data stream used to verify a hardware implementation of an integrated circuit design, the method comprising the steps of: receiving a plurality of templates, wherein each of the plurality of templates describes at least a partial behavior of the integrated circuit design for a respective instruction; receiving a plurality of register models, wherein the plurality of register models describe the operation of a plurality of registers within the integrated circuit design; receiving a plurality of exception events, wherein each of the plurality of exception events corresponds to a potentially problematic operation of the hardware implementation of the integrated circuit design; processing the plurality of templates, the plurality of register models, and the plurality of exception events to produce the instruction/data stream, wherein the instruction/data stream includes a plurality of events, and wherein an execution of the instruction/data stream by the hardware implementation verifies the operation of the hardware implementation.
Claim 3
Dependent Claim 24 words
The method of claim 1, wherein the plurality of events of the instruction/data stream operate sequentially without intermediate reinitialization of the plurality of registers.
Claim 4
Dependent Claim 56 words
The method of claim 1: further comprising the step of receiving system element behavior, wherein system element behavior describes operation of system elements within the integrated circuit design; and wherein the step of processing the plurality of templates, the plurality of register models, and the plurality of exception events further includes processing the system element behavior.
Claim 5
Dependent Claim 49 words
The method of claim 3, wherein the system element behavior describes operations of system elements selected from the group consisting of at least memory management units, load/store units, cache memory units, receiver units, transmitter units, receiver/transmitter units, integer units, floating point units, coprocessors, arithmetic logic units, and input/output controllers.
Claim 6
Dependent Claim 25 words
The method of claim 1, wherein the plurality of register models includes a plurality of system register models and a plurality of general register models.
Claim 7
Dependent Claim 28 words
The method of claim 1, wherein the plurality of exception events includes a plurality of instruction based exception events and a plurality of hardware event based exception events.
Claim 8
Dependent Claim 18 words
The method of claim 1, wherein at least a plurality of the templates further include respective boundary conditions.
Claim 9
Dependent Claim 16 words
The method of claim 1, wherein the respective boundary conditions include operand values and pipeline sequences.
Claim 10
Dependent Claim 29 words
The method of claim 1, wherein the hardware implementation is selected from the group consisting of behavioral-level models, register-transfer-level models, resistor-transistor-level models, physical design file models, and silicon representations.
Claim 11
Dependent Claim 74 words
The method of claim 1, wherein processing includes, based upon user input: generating a sequence of instructions to initialize the hardware implementation to an initialized state; creating at least one instruction thread that verifies an operation of the hardware implementation for a respective template operating under a respective boundary condition; and creating at least one instruction thread that verifies contents of registers within the hardware implementation to verify the operation of the hardware implementation.
Claim 12
Dependent Claim 29 words
The method of claim 10, further comprising the step of creating instructions that cause the hardware implementation to compare actual resultants generated by the hardware implementation with expected resultants.
Claim 13
Independent Claim 206 words
A method for generating an instruction/data stream used to verify a hardware implementation of an integrated circuit design, the method comprising the steps of: receiving a plurality of templates, wherein each of the plurality of templates describes at least a partial behavior of the integrated circuit design for a respective instruction; receiving a plurality of register models, wherein the plurality of register models describe the operation of a plurality of registers within the integrated circuit design; receiving a plurality of exception events, wherein each of the plurality of exception events corresponds to a potentially problematic operation of the hardware implementation of the integrated circuit design; generating a sequence of instructions that, when executed, initialize the hardware implementation to an initialized state; generating a plurality of instructions that, when executed, perform verification of a partial state of the hardware implementation; generating a plurality of instruction threads based on at least one template, at least one register model, and at least one exception event, that, when executed, verify a portion of an operation of the hardware implementation for a respective template, a respective boundary condition, and a respective exception event; and creating a plurality of instruction threads that, when executed, verify contents of registers within the hardware implementation.
Claim 14
Independent Claim 206 words
A method for generating an instruction/data stream used to verify a hardware implementation of an integrated circuit design, the method comprising the steps of: receiving a plurality of templates, wherein each of the plurality of templates describes at least a partial behavior of the integrated circuit design for a respective instruction; receiving a plurality of register models, wherein the plurality of register models describe the operation of a plurality of registers within the integrated circuit design; receiving a plurality of exception events, wherein each of the plurality of exception events corresponds to a potentially problematic operation of the hardware implementation of the integrated circuit design; generating a sequence of instructions that, when executed, initialize the hardware implementation to an initialized state; generating a plurality of instructions that, when executed, perform verification of a partial state of the hardware implementation; generating a plurality of instruction threads based on at least one template, at least one register model, and at least one exception event, that, when executed, verify a portion of an operation of the hardware implementation for a respective template, a respective boundary condition, and a respective exception event; and creating a plurality of instruction threads that, when executed, verify contents of registers within the hardware implementation.
Claim 15
Dependent Claim 59 words
The method of claim 12, further comprising the steps of: receiving system element behavior, wherein system element behavior describes operation of system elements within the integrated circuit design; and generating a plurality of instruction threads based on the system element behavior that, when executed, verify a portion of an operation of the hardware implementation for a respective system element.
Claim 16
Dependent Claim 49 words
The method of claim 13, wherein the system element behavior describes operations of system elements selected from the group consisting of at least memory management units, load/store units, cache memory units, receiver units, transmitter units, receiver/transmitter units, integer units, floating point units, coprocessors, arithmetic logic units, and input/output controllers.
Claim 17
Dependent Claim 29 words
The method of claim 12, wherein the hardware implementation is selected from the group consisting of behavioral-level models, register-transfer-level models, resistor-transistor-level models, physical design file models, and silicon representations.
Claim 18
Dependent Claim 25 words
The method of claim 12, wherein the plurality of register models includes a plurality of system register models and a plurality of general register models.
Claim 19
Dependent Claim 28 words
The method of claim 12, wherein the plurality of exception events includes a plurality of instruction based exception events and a plurality of hardware event based exception events.
Claim 20
Dependent Claim 16 words
The method of claim 12, wherein the respective boundary conditions include operand values and pipeline sequences.
Claim 21
Independent Claim 204 words
An apparatus for generating an instruction/data stream used to verify a hardware implementation of an integrated circuit design comprising: a processor, wherein the processor processes instructions; a processor bus operably coupled to the processor; an input/output interface operably coupled to the processor bus, wherein the processor may control the flow of data through the input/output interface; memory operably coupled to the processor bus for storing data and instructions, wherein the memory stores instructions for: receiving a plurality of templates, wherein each of the plurality of templates describes at least a partial behavior of the integrated circuit design for a respective instruction; receiving a plurality of register models, wherein the plurality of register models describe the operation of a plurality of registers within the integrated circuit design; receiving a plurality of exception events, wherein each of the plurality of exception events corresponds to a potentially problematic operation of the hardware implementation of the integrated circuit design; processing the plurality of templates, the plurality of register models, and the plurality of exception events to produce the instruction/data stream, wherein the instruction/data stream includes a plurality of events, and wherein an execution of the instruction/data stream by the hardware implementation verifies the operation of the hardware implementation.
Claim 22
Independent Claim 204 words
An apparatus for generating an instruction/data stream used to verify a hardware implementation of an integrated circuit design comprising: a processor, wherein the processor processes instructions; a processor bus operably coupled to the processor; an input/output interface operably coupled to the processor bus, wherein the processor may control the flow of data through the input/output interface; memory operably coupled to the processor bus for storing data and instructions, wherein the memory stores instructions for: receiving a plurality of templates, wherein each of the plurality of templates describes at least a partial behavior of the integrated circuit design for a respective instruction; receiving a plurality of register models, wherein the plurality of register models describe the operation of a plurality of registers within the integrated circuit design; receiving a plurality of exception events, wherein each of the plurality of exception events corresponds to a potentially problematic operation of the hardware implementation of the integrated circuit design; processing the plurality of templates, the plurality of register models, and the plurality of exception events to produce the instruction/data stream, wherein the instruction/data stream includes a plurality of events, and wherein an execution of the instruction/data stream by the hardware implementation verifies the operation of the hardware implementation.
Claim 23
Dependent Claim 249 words
A computer readable storage device adapted for use with a digital computer such that the digital computer may read the computer readable storage device, wherein the computer readable storage device comprises: (a) a first plurality of storage locations, wherein the first plurality of storage locations store instructions for causing the digital computer to receive a plurality of templates, wherein each of the plurality of templates describes at least a partial behavior of the integrated circuit design for a respective instruction; (b) a second plurality of storage locations, wherein the second plurality of storage locations store instructions for causing the digital computer to receive a plurality of register models, wherein the plurality of register models describe the operation of a plurality of registers within the integrated circuit design; (c) a third plurality of storage locations, wherein the third plurality of storage locations store instructions for causing the digital computer to receive a plurality of exception events, wherein each of the plurality of exception events corresponds to a potentially problematic operation of the hardware implementation of the integrated circuit design; (d) a fourth plurality of storage locations, wherein the fourth plurality of storage locations store instructions for causing the digital computer to process the plurality of templates, the plurality of register models, and the plurality of exception events to produce the instruction/data stream, wherein the instruction/data stream includes a plurality of events, and wherein an execution of the instruction/data stream by the hardware implementation verifies the operation of the hardware implementation.
Claim 24
Dependent Claim 249 words
A computer readable storage device adapted for use with a digital computer such that the digital computer may read the computer readable storage device, wherein the computer readable storage device comprises: (a) a first plurality of storage locations, wherein the first plurality of storage locations store instructions for causing the digital computer to receive a plurality of templates, wherein each of the plurality of templates describes at least a partial behavior of the integrated circuit design for a respective instruction; (b) a second plurality of storage locations, wherein the second plurality of storage locations store instructions for causing the digital computer to receive a plurality of register models, wherein the plurality of register models describe the operation of a plurality of registers within the integrated circuit design; (c) a third plurality of storage locations, wherein the third plurality of storage locations store instructions for causing the digital computer to receive a plurality of exception events, wherein each of the plurality of exception events corresponds to a potentially problematic operation of the hardware implementation of the integrated circuit design; (d) a fourth plurality of storage locations, wherein the fourth plurality of storage locations store instructions for causing the digital computer to process the plurality of templates, the plurality of register models, and the plurality of exception events to produce the instruction/data stream, wherein the instruction/data stream includes a plurality of events, and wherein an execution of the instruction/data stream by the hardware implementation verifies the operation of the hardware implementation.

References Cited (Backward Citations)

US5089973A Cited
US5572437A Cited
US5422833A Cited
US5497334A Cited
US5455938A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-06-29 2001-12-29 2002-06-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-06-29 2005-12-29 2006-06-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-06-29 2009-12-29 2010-06-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag