The invention relates generally to computer program and, more particularly, to computer program in a circuit simulation environment.
Most verification engineers can be faced problems with designs that involve computing the Fast Frequency Transforms (FFTs) of output data to verify if the design is operating correctly. In the typical Verilog environment (such as Verilog-2005 (as set forth in Institute for Electrical and Electronics Engineers (IEEE) Standard 1364-2005, which is dated Apr. 7, 2006 and which is incorporated by reference herein) and SystemVerilog (as set forth in IEEE Standard 1800-2009, which is dated Dec. 11, 2009 and which is incorporated by reference herein), computing these FFTs cannot be done in an automated way, as there is no known way to incorporate it into an already existing testbench frameworks for typical Verilog environments. Traditionally, this verification has been accomplished by “dumping” certain values to a file and using an alternate environment (such as MATLAB®) to verify these “points” manually, which can be tedious and time consuming, especially if there are many combinations to verify. Therefore, there is a need for an improved verification method and/or algorithm.
An embodiment of the present invention, accordingly, provides a processor with a memory having a computer program embodied thereon. The computer program comprises computer code for executing a first portion of a simulation of a circuit within a hardware description language (HDL) environment so as to generate a first data set; computer code for calling a tool using a system task within the HDL environment, wherein the tool is external to the HDL environment; computer code for executing the tool on the first data set to generate a second data set; and computer code for executing a second portion of the simulation of the circuit within the HDL environment using the second data set.
In accordance with an embodiment of the present invention, the computer code for executing the first portion of the simulation further comprises computer code for writing the first data set to a file.
In accordance with an embodiment of the present invention, the file further comprises a first file, and wherein the computer program for executing the tool further comprises: computer code for reading the first data set from the first file; and computer code for writing the second data set to a second file.
In accordance with an embodiment of the present invention, the computer code for executing the second portion of the simulation further comprises computer code for reading the second data set from the second file.
In accordance with an embodiment of the present invention, the HDL is a Verilog environment.
In accordance with an embodiment of the present invention, the system task further is $system.
In accordance with an embodiment of the present invention, the tool implements a Fast Fourier Transform (FFT).
In accordance with an embodiment of the present invention, a method is provided. The method comprises executing a first portion of a simulation of a circuit within a HDL environment so as to generate a first data set; calling a tool using a system task within the HDL environment, wherein the tool is external to the HDL environment; executing the tool on the first data set to generate a second data set; and executing a second portion of the simulation of the circuit within the HDL environment using the second data set.
In accordance with an embodiment of the present invention, the step of executing the first portion of the simulation further comprises writing the first data set to a file.
In accordance with an embodiment of the present invention, the file further comprises a first file, and wherein the step of executing the tool further comprises: reading the first data set from the first file; and writing the second data set to a second file.
In accordance with an embodiment of the present invention, the step of executing the second portion of the simulation further comprises reading the second data set from the second file.
In accordance with an embodiment of the present invention, a computer program that is configured to be executed in a data processing system is provided. The computer program comprises a simulator that operates in a Verilog environment, wherein the simulator is configured to generate a first data set that corresponds to a first portion of a simulation of a circuit, and wherein the simulator is configured to write the first data set to a first file; and a tool that operates in an alternate environment, wherein the tool is configured to be called by the simulator using a system task within the Verilog environment after the first data set is written to the first file, and wherein the tool is configured to generates a second data set from the first data set, and wherein the tool is configured to write the second data set to a second file.
In accordance with an embodiment of the present invention, the simulator further comprises: an engine; and a plurality of modules that are each configured to be called by the engine to perform at least one of a plurality of tasks.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and the specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims.
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
Refer now to the drawings wherein depicted elements are, for the sake of clarity, not necessarily shown to scale and wherein like or similar elements are designated by the same reference numeral through the several views.
Turning to
In
To illustrate the operation of system 200, an example is provided in
Using this tool 216 (in this example), frequency amplitude data can be generated and stored (as a data set and as part of a file) in steps 310 and 312 in alternate environment 214. The simulator 206 can then read out the frequency amplitude data in step 314 and generate the results 218 in step 316. Additionally, steps 302 to 316 can be repeated any number of times in order to verify multiple device configurations, allowing for full automation of the verification of a device or circuit corresponding to the circuit specifications 202 and allowing for real-time results.
Having thus described the present invention by reference to certain of its preferred embodiments, it is noted that the embodiments disclosed are illustrative rather than limiting in nature and that a wide range of variations, modifications, changes, and substitutions are contemplated in the foregoing disclosure and, in some instances, some features of the present invention may be employed without a corresponding use of the other features. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the invention.