System level simulation models for hardware modules
Filing Information
- Patent Number: US7509246
- Application Number: US10458516
- Filing date: 06/09/2003
- Issue date: 03/24/2009
- Predicted expiration date: 07/09/2024
- Patent term adjustment: 396
- U.S. Classifications: 703/13 · 717/140 · 717/135 ·
- International Classifications: G06F1750 ·
- View document at: (opens new window):
USPTO · PAIR · esp@cenet · Patent Family* Related patent documents may or may not exist on these sites
Abstract
Methods and apparatus automate creation of code for system level simulations from hardware representations, specifically RTL representations. In one approach, individual RTL hardware modules are analyzed to generate code for corresponding system level modules. This is accomplished by taking a mapped netlist for a register transfer level (RTL) representation of the hardware module and converting it to what can be termed a “system level netlist.” This system level netlist contains “system level instances” corresponding to “hardware cells” of the mapped netlist. A mapped netlist includes hardware cells corresponding to programmed hardware units of a target hardware device. The method generates corresponding functional representations (code for system level simulation) from these hardware cells. This functional representation is referred to herein as a system level instance. System level instances are generated for each of the hardware cells in a given hardware module.References Cited
U.S. Patent Documents
* cited by examinerOther Publications
| Pelkonen et al. ( system-Level Modeling of Dynamically Reconfigurable Hardware with SystemC, EE 2003).* |
| Givargis et al. (Instruction-Based System-Level Power Evaluation of System-on-a-Chip Peripheral Cores, IEEE 2002).* |
| Grant Carter, System Level Simulation of Digital Designs: A Case Study, 1998.* |
| Description of DSP design from the Math Works website (www.mathworks.com/products/dsp-comm/topdown.shtml); available prior to May 31, 2002. |
| Description of Xilinx System Generator for Simulink; Product and Description available prior to May 31, 2002. |
| Description of DSP Builder product available from Altera Corporation; description appears at www.altera.com/products/software/system/dsp/dsp-builder.html; available prior to May 31, 2002. |
| Altera DSP Builder User Guide; available prior to May 31, 2002. |
| Simulink Fixed-Point Blockset, User's Guide, Version 3; Product and Description available prior to May 31, 2002. |
| Molson et al., “Bit Accurate Hardware Simulation in System Level Simulators,” U.S. Appl. No. 10/160,142, filed May 31, 2002, 51 Pages. |
| S. Mahlke, R. Ravindran, M. Schlansker, R. Schreiber, and T. Sherwood, “Bitwidth Cognizant Architecture Synthesis of Custom Hardware Accelerators”, herein referred as Sherwood, 5th International Workshop on Software and Compilers for Embedded Systems, Mar. 2001 IEEE, total pages of 43. |
| Per Holmberg, and Anne Mascarin, “The Meth Works and Xilnx take FPGAs into Mainstream DSP”, New Techologies DSP, Feb. 2001, pp. 14-15. |
| Christian Kreiner, Christian Steger, Egon Teiniker, and Reinhold Weiss, “A Novel Codesign Approach based on Distributed Virtual Machines”, Institute for Technical Informatics, Mar. 2002. |
| Darin Chin, “Implementing DSP Designs with the Xilnx System Generator and Implementation Tools”, Jun. 2001, Syndicated, vol. 1, Issue 2, pp. 1-2. |
| Xilnx® “ChipScope Pro Software and Cores User Manual”, Apr. 10, 2002. |
| “Simulink: Dynamic System Simulation for MATLAB®” Verson 3. Jan. 1999. |
| “Formal Verification Flow for Xilinx Devices Using the Synplify Pro® Software and Conformal™ LEC Tool”, Mar. 2003. http://www.synplicity.com/literature/pdf/formal—verificat4ion—final.pdf. |
Referenced By
The current document is not referenced by other documents.Patent Family
The current document is not in a family.Independent Claims | See all claims (22)
- 1. A method of automatically generating a system level representation of a hardware module suitable for execution in a system-level simulator, the method comprising: (a) receiving a mapped netlist of a hardware module which mapped netlist comprises hardware cells, each specifying one or more hardware functions to be implemented on a corresponding hardware unit of a target hardware device, the hardware cells collectively comprising a mapped netlist; (b) accessing one or more un-parameterized system level units, each system level unit being a software class that represents generically one of said corresponding hardware units of the target hardware device; (c) instantiating the un-parameterized system level units to create system level instances, each programmed to perform the hardware functions of one of said hardware cells, each system-level instance being a software object that is coded in a general-purpose language; (d) creating a hardware implementation-independent system level netlist based on the mapped netlist using said system level instances, said system level netlist being distinct from said mapped netlist; and (e) compiling the system level netlist to produce an executable version of the system level representation, said executable version being simulation code suitable for execution in a system-level simulator; wherein the steps a-e is performed using one or more processor.
- 6. A computer program product comprising a machine storage medium on which is provided program instructions for automatically generating a system level representation of a hardware module, when executed by a processor performs the steps of: (a) receiving a mapped netlist of a hardware module which mapped netlist comprises hardware cells, each specifying one or more hardware functions to be implemented on a corresponding hardware unit of a target hardware device, the hardware cells collectively comprising a mapped netlist; (b) accessing one or more un-parameterized system level units, each system level unit being a software class that represents generically one of said corresponding hardware units of the target hardware device; (c) instantiating the un-parameterized system level units to create system level instances, each programmed to perform the hardware functions of one of said hardware cells, each system-level instance being a software object that is coded in a general-purpose language; (d) creating a hardware implementation-independent system level netlist based on the mapped netlist using said system level instances, said system level netlist being distinct from said mapped netlist; and (e) compiling the system level netlist to produce an executable version of the system level representation, said executable version being simulation code suitable for execution in a system-level simulator.
- 11. An apparatus for automatically generating a system level representation of a hardware module, the apparatus comprising: memory; one or more processors; an electronic design automation tool embodied in said memory for compiling RTL representations of electronic designs comprising hardware modules; a system level environment embodied in said memory for entering electronic designs and performing system level simulations of said electronic designs; and a system level hardware development tool platform embodied in said memory for generating system level representations of the hardware modules, which system level representations can be executed in a system level simulation to simulate the behavior of the hardware modules, wherein said system level hardware development tool platform generates the system level representations from mapped netlists of hardware modules which mapped netlists comprise hardware cells, each hardware cell specifying one or more hardware functions to be implemented on a corresponding hardware unit of a target hardware device, the hardware cells collectively defining one of said mapped netlists; and wherein said system level hardware development tool platform generates the system level representations from mapped netlists of hardware modules by (i) accessing one or more un-parameterized system level units, each system level unit being a software class that represents generically one of said corresponding hardware units of the target hardware device, (ii) instantiating the un-parameterized system level units to create system level instances, each programmed to perform the hardware functions of one of said hardware cells, each system-level instance being a software object that is coded in a general-purpose language, (iii) creating a hardware implementation-independent system level netlist based on the mapped netlist using said system level instances, said system level netlist being distinct from said mapped netlist, said system level netlist being embodied in said memory, and (iv) compiling the system-level netlist to produce executable simulation code suitable for execution in a system-level simulator.
- 17. A method of automatically generating a system level representation of a hardware module, the method comprising: (a) receiving a mapped netlist for a register transfer level (RTL) representation of the hardware module, which mapped netlist comprises hardware cells corresponding to programmed hardware units of a target hardware device; (b) converting said mapped netlist to a hardware implementation-independent system level netlist comprising system level instances corresponding to the hardware cells, each system-level instance being a software object that is coded in a general-purpose language, wherein the system level netlist is based on the mapped netlist, said system level netlist being distinct from said mapped netlist; and (c) compiling the system level netlist to produce an executable version of the system level representation, said executable version being simulation code suitable for execution in a system-level simulator; wherein the steps a-c is performed using a processor.
- 18. A method of automatically generating a system level representation of a hardware module, the method comprising: (a) receiving a register transfer level (RTL) representation of the hardware module; (b) elaborating the RTL representation to produce a netlist; (c) mapping the netlist to hardware units of a target hardware device, on which the hardware module may be programmed, to create hardware cells, each hardware cell specifying one or more hardware functions to be implemented on a corresponding hardware unit, the hardware cells collectively comprising a mapped netlist; (d) accessing one or more un-parameterized system level units, each system level unit being a software class that represents generically one of said corresponding hardware units of the target hardware device; (e) instantiating the un-parameterized system level units to create system level instances, each programmed to perform the hardware functions one of said hardware cells, each system-level instance being a software object that is coded in a general-purpose language; (f) creating a hardware implementation-independent system level netlist based on the mapped netlist using said system level instances, said system level netlist being distinct from said mapped netlist; and (g) compiling the system level netlist to produce an executable version of the system level representation, said executable version being simulation code suitable for execution in a system-level simulator; wherein the steps a-g is performed using a processor.
- 21. An apparatus for automatically generating a system level representation of a hardware module, the apparatus comprising: (a) means for receiving a register transfer level (RTL) representation of the hardware module; (b) means for elaborating the RTL representation to produce a netlist; (c) means for mapping the netlist to hardware units of a target hardware device, on which the hardware module may be programmed, to create hardware cells, each specifying one or more hardware functions to be implemented on a corresponding hardware unit, the hardware cells collectively comprising a mapped netlist; (d) means for accessing one or more un-parameterized system level units, each system level unit being a software class that represents generically one of said corresponding hardware units of the target hardware device; (e) means for instantiating the un-parameterized system level units to create system level instances, each programmed to perform the hardware functions of one of said hardware cells, each system-level instance being a software object that is coded in a general-purpose language; (f) means for creating a hardware implementation-independent system level netlist based on the mapped netlist using said system level instances, said system level netlist being distinct from said mapped netlist, said system level netlist being embodied in memory of said apparatus; and (g) means for compiling the system-level netlist to produce executable simulation code suitable for execution in a system-level simulator.





View assignee updates
analyzing 100 million+ documents to uncover your network...