Simulator-independent system-on-chip verification methodology
First Claim
1. A method of performing simulator-independent verification of an integrated circuit design, comprising:
- using a simulator to simulate said design from a software model representing said design;
providing a test case generator to generate a stimulus in a first form to said model, wherein said first form is a high-level programming language;
providing a simulator-independent environment interfacing between said test case generator and said simulator;
initializing one or more model facility objects with correlated simulator-specific information;
converting said stimulus from said first form into a simulator-specific form using said simulator-independent environment; and
applying said stimulus in said simulator-specific form to said model being simulated.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for communicating with and controlling design logic modules (“cores”) external to a system-on-chip (SOC) design during verification of the design uses verification software to generate and apply test cases to stimulate components of an SOC design in simulation; the results are observed and used to de-bug the design. Typically, SOC designs interface with cores that are external to the design. Existing methods of including such external cores in a verification test of a SOC design typically entail having to create special test cases to control the external cores; such test cases typically do not communicate with test cases being applied internally to the SOC and therefore lack realism. An external memory-mapped test device (EMMTD) according to the present invention is coupled between a SOC design being tested in simulation, and cores external to the SOC design. Internal EMMTD logic provides for control and status monitoring of an external core coupled to an EMMTD bi-directional bus by enabling functions including driving data on the bus, reading the current state of data on the bus, and capturing positive and negative edge transitions on the bus. In one embodiment, a test case being executed by a simulator embedded processor in the SOC can communicate with and control elements external to the SOC, by using the EMMTD to perform such functions as initiating external core logic which drives test signals to an internal core, directly controlling an internal core via its external interface, or determining the status of an external core.
147 Citations
38 Claims
-
1. A method of performing simulator-independent verification of an integrated circuit design, comprising:
-
using a simulator to simulate said design from a software model representing said design;
providing a test case generator to generate a stimulus in a first form to said model, wherein said first form is a high-level programming language;
providing a simulator-independent environment interfacing between said test case generator and said simulator;
initializing one or more model facility objects with correlated simulator-specific information;
converting said stimulus from said first form into a simulator-specific form using said simulator-independent environment; and
applying said stimulus in said simulator-specific form to said model being simulated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
providing simulator-specific information within said simulator-independent environment;
receiving said stimulus in said first form from said test case generator; and
obtaining simulator-specific information corresponding to said stimulus from said simulator-specific information.
-
-
3. The method of claim 2, wherein said step of obtaining comprises using a grouping of data and function corresponding to a distinct simulator to access said simulator-specific information.
-
4. The method of claim 3, wherein said grouping is a member of a hierarchy comprising a first level defining a simulator class and a second level below said first level defining a member of said simulator class representing a distinct simulator, said grouping belonging to said second level.
-
5. The method of claim 1, wherein said simulator-independent environment includes a bus functional model for generating signals representing a bus protocol to said model being simulated in response to said stimulus.
-
6. The method of claim 5, wherein said bus functional model is a member of a hierarchy comprising a base class containing function and data relating to said bus functional model.
-
7. The method of claim 5, further comprising:
-
linking said bus functional model with a clock model included in said simulator-independent environment and representing a distinct simulator clock frequency, wherein said bus functional model generates signals to said model being simulated at said clock frequency.
-
-
8. The method of claim 5, further comprising linking a plurality of said bus functional models to a plurality of said clock models representing a plurality of distinct simulator clock frequencies.
-
9. The method of claim 1, wherein said initializing one or more model facility objects with correlated simulator-specific information includes providing information from an alias file.
-
10. The method of claim 1, further comprising accessing a hardware element of the simulated design through a corresponding facility class.
-
11. The method of claim 1, further comprising providing multiple simulator-independent clock models to associated bus functional models between said test case generator and said simulator-independent environment, wherein at least two of the multiple clock models run at different clock frequencies.
-
12. A method of performing simulator-independent verification of an integrated circuit design, comprising:
-
using a simulator to simulate said design from a software model representing said design;
providing a test case generator to generate a stimulus in a first form to said model;
providing a simulator-independent environment interfacing between said test case generator and said simulator;
initializing one or more model facility objects with correlated simulator-specific information;
converting said stimulus from said first form into a simulator-specific form using said simulator-independent environment; and
applying said stimulus in said simulator-specific form to said model being simulated;
wherein said step of converting comprises providing simulator-specific information within said simulator-independent environment;
receiving said stimulus in said first form from said test case generator; and
obtaining simulator-specific information corresponding to said stimulus from said simulator-specific information, wherein said simulator-specific information correlates design elements in said model with symbols used by said simulator-independent environment. - View Dependent Claims (13)
-
-
14. A system for performing simulator-independent verification of an integrated circuit design, comprising:
-
simulator means for simulating said design from a software model representing said design;
test case generator means for generating a stimulus in a first form to said model, wherein said first form is a high-level programming language;
initialization means for initializing one or more model facility objects with correlated simulator-specific information; and
simulator-independent means for interfacing between said test case generator means and said simulator means and converting said stimulus from said first form into a simulator-specific form for application to said model being simulated. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A system for performing simulator-independent verification of an integrated circuit design, comprising:
-
simulator means for simulating said design from a software model representing said design;
test case generator means for generating a stimulus in a first form to said model;
initialization means for initializing one or more model facility objects with correlated simulator-specific information; and
simulator-independent means for interfacing between said test case generator means and said simulator means and convening said stimulus from said first form into a simulator-specific form for application to said model being simulated, wherein said simulator-independent means comprises simulator-specific information correlating design elements in said model with symbols used by said simulator-independent means. - View Dependent Claims (23, 24, 25)
-
-
26. A computer-usable medium storing computer-executable instructions, said instructions when executed implementing a method of performing simulator-independent verification of an integrated circuit design, said method comprising:
-
converting a stimulus received in a first form from a test case generator into a simulator-specific form;
initializing one or more model facility objects with correlated simulator-specific information; and
applying said stimulus in said simulator-specific form to a model being simulated by a simulator, wherein said first form is a high-level programming language. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
obtaining simulator-specific information corresponding to said stimulus from simulator-specific information derived during an initialization process.
-
-
28. The computer-usable medium of claim 27, wherein said step of obtaining comprises using a grouping of data and function corresponding to a distinct simulator to access said simulator-specific information.
-
29. The computer-usable medium of claim 28, wherein said grouping is a member of a hierarchy comprising a first level defining a simulator class and a second level below said first level defining a member of said simulator class representing a distinct simulator, said grouping belonging to said second level.
-
30. The computer-usable medium of claim 26, wherein said instructions implement a bus functional model for generating signals representing a bus protocol to said model being simulated in response to said stimulus.
-
31. The computer-usable medium of claim 30, wherein said bus functional model is a member of a hierarchy comprising a base class containing function and data relating to said bus functional model.
-
32. The computer-usable medium of claim 30, said method further comprising:
-
linking said bus functional model with a clock model implemented by said instructions and representing a distinct simulator clock frequency, wherein said bus functional model generates signals to said model being simulated at said clock frequency.
-
-
33. The computer-usable medium of claim 30, said method further comprising linking a plurality of said bus functional models to a plurality of said clock models representing a plurality of distinct simulator clock frequencies.
-
34. The computer-usable medium of claim 26, wherein, in said method, said initializing one or more model facility objects with correlated simulator-specific information includes providing information from an alias file.
-
35. The computer-usable medium of claim 26, wherein said method further comprises accessing a hardware element of the simulated design through a corresponding facility class.
-
36. The computer-usable medium of claim 26, wherein said method further comprises providing multiple simulator-independent clock models to associated bus functional models between said test case generator and a simulator-independent environment, wherein at least two of the multiple clock models run at different clock frequencies.
-
37. A computer-usable medium storing computer-executable instructions, said instructions when executed implementing a method of performing simulator-independent verification of an integrated circuit design, said method comprising:
-
converting a stimulus received in a first form from a test case generator into a simulator-specific form;
initializing one or more model facility objects with correlated simulator-specific information; and
applying said stimulus in said simulator-specific form to a model being simulated by a simulator, wherein said step of converting comprises obtaining simulator-specific information corresponding to said stimulus from simulator-specific information derived during an initialization process, and wherein said simulator-specific information correlates design elements in said model with symbols used by said instructions. - View Dependent Claims (38)
-
Specification