System level simulation models for hardware modules

Share
Save
Discuss
Claim

Share On Facebook Share On Twitter Share By Email
Save Item
Save Item
Add to
my lists

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
Explore Your Innovation Network™ for an introduction to:

Innovation Network Your First Name:
Last Name:
 
Already a member? Sign In
  • 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
22 Claims, 10 Drawings


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

Document NumberAssigneesInventorsIssue/Pub Date
US5204829 LSI Logic Corporation Lyu et al. Apr 1993
US5452239* Quickturn Design Systems, Inc. Dai et al. Sep 1995
US5544067* LSI Logic Corporation Rostoker et al. Aug 1996
US5726902* VLSI Technology, Inc. Mahmood et al. Mar 1998
US5848262 Hewlett-Packard Company Burch Dec 1998
US6053947 Lucent Technologies, Inc. Parson Apr 2000
US6067650* Synopsys, Inc. Beausang et al. May 2000
US6086624 NEC Corporation Murata Jul 2000
US6152612* Synopsys, Inc. Liao et al. Nov 2000
US6182247 Altera Corporation Herrmann et al. Jan 2001
US6247147 Altera Corporation Beenstra et al. Jun 2001
US6247165* Synopsys, Inc. Wohl et al. Jun 2001
US6286114 Altera Corporation Veenstra et al. Sep 2001
US6389558 Altera Corporation Hermann et al. May 2002
US6425116 Koninklijke Philips Electronics N.V. Duboc et al. Jul 2002
US6460148 Altera Corporation Veenstra et al. Oct 2002
US6530073* LSI Logic Corporation Morgan Mar 2003
US6539536* Synopsys, Inc. Singh et al. Mar 2003
US6606532 Semiconductor Technology Academic Research Center Yasuura et al. Aug 2003
US6606588 Interuniversitair Micro-Elecktronica Centrum (IMEC vzw) Schaumont et al. Aug 2003
US6687662 Verisity Design, Inc. McNamara et al. Feb 2004
US6789232* Synopsys, Inc. Iyer et al. Sep 2004
US6842888* Freescale Semiconductor, Inc. Roberts Jan 2005
US6862563 ARC International Hakewill et al. Mar 2005
US6883147 Xilinx, Inc. Ballagh et al. Apr 2005
US6915410* Hyduke Jul 2005
US7020854 Tensilica, Inc. Killian et al. Mar 2006
US7085702 Xilinx, Inc. Hwang et al. Aug 2006
US7107567 Altera Corporation LeBlanc Sep 2006
US7110935 Xilinx, Inc. Hwang et al. Sep 2006
US20020049944 Lagoon et al. Apr 2002
US20020194543 Altera Corporation, A Delaware Corporation Veenstra et al. Dec 2002
US20030008684 Ferris Jan 2003
US20030033374 Condor Engineering, inc. Horn et al. Feb 2003
US20030088710 Sandhu et al. May 2003
US20030118081 Horn et al. Jun 2003
US20030125925* Walther et al. Jul 2003
US20030154465 Bollano et al. Aug 2003
US20030200522* Roberts Oct 2003
US20030204388* LSI LOGIC CORPORATION Rodriguez et al. Oct 2003
US20040093197* Billemaz et al. May 2004
US20050065990 Catalytic, Inc. Allen Mar 2005
US20050143968 National Instruments Corporation Odom et al. Jun 2005
US20050166038 Wang et al. Jul 2005
US20060117274* TSENG PING-SHENG Tseng et al. Jun 2006
* cited by examiner

Other 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.
* cited by examiner

Referenced By

The current document is not referenced by other documents.

Patent Family

The current document is not in a family.

Read Patent

Read patent

Independent Claims | See all claims (22)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.