WO2002001424A9 - System and method relating to verification of integrated circuit design - Google Patents

System and method relating to verification of integrated circuit design

Info

Publication number
WO2002001424A9
WO2002001424A9 PCT/US2001/019614 US0119614W WO0201424A9 WO 2002001424 A9 WO2002001424 A9 WO 2002001424A9 US 0119614 W US0119614 W US 0119614W WO 0201424 A9 WO0201424 A9 WO 0201424A9
Authority
WO
WIPO (PCT)
Prior art keywords
netlist
builder
verification
module
chip
Prior art date
Application number
PCT/US2001/019614
Other languages
French (fr)
Other versions
WO2002001424A2 (en
WO2002001424A3 (en
Inventor
Subramanian S Meiyappan
Vajjhala Varaprasad
Edward M Petryk
Original Assignee
Koninkl Philips Electronics Nv
Philips Semiconductors Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninkl Philips Electronics Nv, Philips Semiconductors Inc filed Critical Koninkl Philips Electronics Nv
Publication of WO2002001424A2 publication Critical patent/WO2002001424A2/en
Publication of WO2002001424A9 publication Critical patent/WO2002001424A9/en
Publication of WO2002001424A3 publication Critical patent/WO2002001424A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/02System on chip [SoC] design

Definitions

  • the present disclosure relates to the field of automated integrated circuit (IC) design. More particularly, the present disclosure relates to systems on a chip design and a verification system an method that constructs IC hardware description files of systems on a chip from functional building block circuits while concurrently taking into account numerous chip level design aspects along wi the generation of a simulation environment for design verification.
  • the disclosure teaches a computer system and method to dynamically generate system on a chip description files and verification information.
  • ASICs Application Specific Integrated Circuits
  • Design of ASICs often involves the design of various building block circuits that make up the ASIC.
  • Significant resources are usually expended performing the design tasks associated with designing connection between building block circuits and adding the necessary support logic to complete a system on a chip (SoC), such as adding input/output (I/O) cells, clock distribution and test logic.
  • SoC system on a chip
  • CAE computer aided engineering
  • Circuits being designed or analyzed usually include resistors, capacitors, inductors, voltage and current sources, switches, uniform distributed RC
  • HDL hardware description language
  • IC chips typically include various functional circuit blocks that are coupled together and to Input/Output (IO) cells.
  • IO Input/Output
  • design reuse significant advantages are usually achieved through "reuse" of basic building block circuits that have been previously verified in silicon. Although the internal design of the previously verified building block circuits does not significantly change, they usually are required to exhibit different behavior in different applications and typically have significantly distinct interfaces from one application to another. Coupling the HDL descriptions of different functional circuit blocks together, generating HDL descriptions of inputs and
  • a system and method that facilitates efficient creation of IC netlist designs utilizing existing circuit block information.
  • the system and method should assist a designer to design an IC netlist in a convenient manner and facilitate incorporation of building block circuits previously tested in silicon.
  • the system and method should reduce the amount of data a user has to enter manually to adequately describe features of the circuit being designed or analyzed.
  • the present invention is a system and method that facilitates efficient and effective creation, modification and verification of electrical " circuit designs utilizing existing circuit block designs.
  • the system on a chip (SoC) netlist builder and verification system and method of the present invention assists a designer to design an integrated circuit (IC) in a convenient manner and facilitates incorporation of building block circuits that have been previously verified and tested in silicon.
  • SoC netlist builder and verification system and method minimizes the amount of data a user has to enter manually to adequately describe features of the circuit being designed or verified.
  • the present invention system and method automatically provides a chip level netlist description, a test bench, clock descriptions, test logic descriptions, simulation models, and simulation environments.
  • an integrated circuit (IC) SoC netlist builder and verification system and method is implemented in a computer system.
  • the SoC netlist builder and verification system and method includes a graphical user interface (GUI), a parameter application module, an expert system module, and a chip level netlist generation module.
  • GUI graphical user interface
  • the GUI module provides user friendly and convenient interfaces that facilitate easy entry and modification of user selections and parameters.
  • the present invention also accommodates text file entry of parameters.
  • the parameter application module analyzes information supplied by the GUI module to interpret the user selections and parameterization (e.g., creates directions (command lines) passed to other modules for execution).
  • the expert system utilizes information " derived from past experience designing, manufacturing and verifying circuit blocks to automatically provide circuit block netlist descriptions and parameters from a storage source (e.g., database, distributed resource, memory, etc.).
  • the chip level netlist generation module automatically generates a chip level netlist, including the instantiation of internal IC devices and connections between the circuit blocks for internal signals.
  • an SoC netlist builder and verification system and method also includes a verification module that automatically verifies the behavior of the modeled IC.
  • Figure 1 is a block diagram of one embodiment of an SoC netlist builder and verification computer system of the present invention.
  • Figure 2 is a block diagram illustrating a logical view of one embodiment of the software computer program elements of a present invention SoC netlist builder and verification computer system.
  • Figure 3 is a block diagram illustrating SoC netlist builder and verification program, one embodiment of an SoC netlist builder and verification program included in an SoC netlist builder and verification
  • Figure 4A is a table comprising one exemplary implementation of a
  • Figure 4B is a table comprising one exemplary implementation of
  • Figure 4C is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to append these design functions associated with a timer.
  • Figure 5 is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to perform the generation of an internal integration list associated with a timer device.
  • Figure 6A is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to perform the creation of the actual hardware description language VHDL or Verilog code utilized in creating a netlist description of a timer device and storing the netlist description in a desired memory location.
  • Figure 6B is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to perform the creation of the signal declarations.
  • Figure 6C is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to generate HDL assignment statements.
  • Figure 7 is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to perform the generation of the HDL code that will instantiate each of those components.
  • Figure 8 illustrates one embodiment of a present invention SoC netlist builder and verification main GUI.
  • Figure 9 is an illustration of SoC netlist builder and verification device GUI 900 included in one embodiment of the present invention.
  • Figure 10 is an illustration of an advanced peripheral bus (APB) GUI included in one exemplary implementation of the present invention.
  • Figure 11 is a block diagram illustration of a timer device paramaterization GUI, one embodiment of a present invention device paramaterization GUI.
  • APIB advanced peripheral bus
  • Figure 12 is a block diagram illustration of detailed timer paramaterization GUI, one embodiment of a present invention detailed device paramaterization GUI.
  • Figure 13 is a block diagram illustration of one embodiment of an external pin GUI of the present invention.
  • Figure 14 is a block diagram illustration of sample input/output report produced by one embodiment of the present invention.
  • Figure 15 is a block diagram of an ARM ASIC system architecture, one embodiment of system architecture schematic generated by the present invention.
  • Figure 16 is a flow chart of one embodiment of a present invention SoC netlist builder and verification computer method .
  • Figure 17 is a flow chart of an SoC netlist builder and verification computer method, one embodiment of the present invention.
  • a procedure, logic block, process, etc. is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result.
  • the steps are those requiring physical manipulations of physical quantities.
  • these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, " and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
  • the present invention permits a designer to efficiently and effectively create and modify system on a chip (SoC) designs.
  • SoC system on a chip
  • the system and method of the present invention facilitates SoC design and verification by providing significant automation of a number of operations in ⁇ luding circuit block integration, parameter assignment, addition of architecture features, verification testing and production test support.
  • the present system and method enables a user to convey information conveniently in a manner that minimizes the amount of data a user has to enter manually while adequately describing features of the circuit being designed or analyzed.
  • the present invention also includes automated expert system features that facilitate SoC design and testing.
  • the expert system features facilitates the automated provision of design features based upon prior experience associated with actual SoC hardware manufacturing. It allows a user to easily create and modify design features with reduced manual data entry associated with creating netlist files and performing verification functions.
  • the present invention facilitates the automated creation of netlist description files and logical verification environments including chip models and system level models for testing operations.
  • FIG. 1 is a block diagram of SoC netlist builder and verification computer system 100, one embodiment of the present invention.
  • computer system 100 comprises a central processing unit (CPU) 101, a main memory 102, graphics controller 103, mass storage device 105, input/output (IO) device 108, communication port 109, database 150 and display monitor 110, all of which are coupled to bus 107.
  • CPU 101 handles most of the control and data processing, including processes associated with automatic generation of an IC netlist and verification models in accordance with instructions included in an SoC netlist builder and verification program of the present invention.
  • Main memory 102 provides a convenient means for storing data for quick retrieval by CPU 101.
  • Graphics controller 103 processes image data in pipelined stages.
  • Mass storage device 105 is a computer readable medium that stores data associated with multiple images and applications, including information utilized by an SoC netlist builder and verification system of the present invention.
  • IO device 108 operates as an input or output device (e.g., a keyboard, mouse, voice recognition microphone, etc.).
  • Communication port 109 provides a communication port for a variety of devices. In one exemplary implementation of the present invention, communications port 109 provides a communication port to a network (e.g., the Internet) of devices (not shown).
  • Display monitor 110 displays graphical images including convenient and user friendly graphical user interfaces (GUIs) to facilitate circuit block selection and parameterization.
  • Database 150 stores information arranged in files, including data comprising circuit block description files, associated parameters and expert system prior SoC manufacturing information.
  • Bus 107 provides a communication path between components of computer system 100.
  • FIG. 2 is a block diagram illustrating a logical view of one embodiment of the software computer program elements of SoC netlist builder and verification computer system 100.
  • An operating system 210 e.g., DOS, UNIX, etc.
  • operating system 210 includes input/output (I/O) services 211 and memory " management service 212.
  • I/O services 211 facilitate access to I/O devices.
  • Memory management service 212 provides management of allocation and deallocation of memory in SoC netlist builder and verification computer system 100, including virtual memory addressing or static memory addressing.
  • SoC netlist builder and verification program 230 is an application running on SoC netlist builder and verification computer system 100 and utilizes the other system services (e.g., operating system 210). SoC netlist builder and verification program 230 comprises processing procedures performed by SoC netlist builder and verification computer system 100.
  • the different levels of programming shown in Figure 2 typically reside on a computer readable memory (e.g., a main memory 102, mass storage device 105, database 150, etc.) and include instructions for CPU 101.
  • FIG. 3 is a block diagram illustrating SoC netlist builder and verification program 300, one embodiment of a SoC netlist builder and verification program included in SoC netlist builder and verification computer system 100.
  • SoC netlist builder and verification program 300 comprises user interface module 310, parameter application module 320, expert system module 330, chip level netlist generation module 340 and verification module 350.
  • User module 310 provides user friendly and convenient interfaces that facilitate easy entry and modification of user selections and parameters.
  • Parameter application module 320 interprets information supplied by user module 310 and expert system module 330 and creates directions (e.g., command lines) passed to other modules for execution.
  • Expert system module 330 analyzes information and automatically provides SoC building and verification data including automated addition of default architectural features, automated insertion of default parameters, and automated input of information to verification module 350.
  • Chip level netlist generation module 340 automatically generates a chip level netlist, including the instantiation of internal IC devices and connections between the circuit blocks for internal signals.
  • Verification module 350 automatically generates a test bench and a logical verification environment including simulation models (e.g., a chip model and a system level model).
  • SoC netlist builder and verification program 300 also includes a synthesis module (not shown).
  • the synthesis module automatically translates design description from a textual level abstraction to a structural level (e.g., a schematic of logic gates and electronic circuits).
  • the synthesis module also perform optimization of the design (e.g., technology specific transformations to make area/speed trade-offs necessary to meet design goals).
  • SoC netlist files and verification information (e.g. a standardized directory structure for IC designs, a test bench, simulation models, tests, etc.) is an iterative process involving automated functions performed by a present invention SoC netlist builder and verification computer system with facilitated inputs from a user. Based upon a high level configuration indication provided by a user, a SoC netlist builder and verification computer system expert system retrieves appropriate design and test verification information from other sources such as a database library or information folders. The SoC netlist builder and verification computer system then processes the information and generates a detailed description of a circuit and appropriate verification information for the circuit.
  • SoC netlist builder and verification computer system Based upon a high level configuration indication provided by a user, a SoC netlist builder and verification computer system expert system retrieves appropriate design and test verification information from other sources such as a database library or information folders. The SoC netlist builder and verification computer system then processes the information and generates a detailed description of a circuit and appropriate verification information for the circuit.
  • user interface module 310 enables a user to communicate expediently and efficiently with a present invention SoC netlist builder and verification computer system.
  • user interface module 310 comprises software code that instructs SoC netlist builder and verification computer system 100 to generate an interactive graphical user interface (GUI).
  • GUI graphical user interface
  • User interface module 310 conveys information between a user and other components of SoC netlist builder and verification computer system 100 in a convenient format that is easier to read and modify relative to a complex simulation tool formatted input text.
  • a user interface module generates user friendly GUIs to facilitate selection of standardized circuit blocks and parameterization of the selected circuit blocks.
  • user interface module 310 interprets batch code text rather than relying on GUI input.
  • Parameter application module 320 provides instructions for the SoC netlist builder and verification computer system to retrieve block descriptions and assign parameters based upon input from user interface module 310 and expert system module 330.
  • parameter application module 320 performs initialization of circuit block characteristics (e.g., device characteristics), updates circuit block characteristics, creates design lists and retrieves circuit block descriptions.
  • circuit block characteristics e.g., device characteristics
  • updates circuit block characteristics e.g., creates design lists and retrieves circuit block descriptions.
  • the following table 1 includes pseudo code utilized in one exemplary implementation of a present invention computer instruction parameter application module.
  • initialize_hdli_design_parameterjist () ; for (device_number in 1to number_of_devices) ⁇ make_hdli_design_parameterJist_copy () ; initialize_device_gate_count () ; initialize_device_port_interface () ; initialize_device_signal_requirements () ; initialize_device_external_pin_interface () ; initialize_device_signal_initialization () ; / * Device options are specified by the user either via the GUI or by loading a configuration file */ for (device_option from 1 to number_of_device_options) ⁇
  • update_hdli_design_parameter_list_copy () ; update_device_gate_count () ; update_device_port_interfaceJist () ; update_device_extemal_pin_interface () ; update_device_signal_requirements () ; update_device_signal_initialization () ; update_interrupt_source_list () ;
  • add_device_to_device_list () ; add_device_to_reset_destination_list () ; add_device_to_clock_destination_list () ; add_device_gate_count_to_gate_count_list () ; add_device_port_interface_to_port_interface_list () ; add_device_extemal_pin_interface_to_extemaLpin_interface_list () ; add_device_signal_requirements_to_signal_requirements_list
  • ⁇ Parameter application module 320 is flexibly adaptable to a variety of implementations and applicable to a number of functions including creating an underlying structure list, initializing a command line string, updating a copy of the command line string with parameters, generating an internal circuit block integration list, and extracting circuit block descriptions from a storage location based upon the applied parameter information.
  • parameter application module 320 creates an underlying structure list based upon information supplied by a user via user interface module 310 and information provided by expert system module 330. Parameter application module 320 interprets the information and performs complex iterations required to generate an underlying structure list. In one embodiment of the present invention, parameter application module 320 initializes a corresponding command line string for a circuit block descriptions (e.g., a timer description) forwarded by expert system module 330.
  • a circuit block descriptions e.g., a timer description
  • a parameterizable command line string required to generate the selected block circuit (e.g., a timer) from a hardware description language (e.g., reuse library) is initialized and the operations for each block circuit (e.g., a timer) the user has requested are processed.
  • Parameter application module 320 then makes an instance specific copy of the parameterizable command line string.
  • Figure 4A is a table comprising one exemplary implementation of parameter application module 320 instructions for directing SoC netlist builder and verification computer system 100 to perform these design functions associated with the inclusion of a timer device in a desired design.
  • Parameter application module 320 (shown in Figure 3) then directs a SoC netlist builder and verification computer system to update the specific copy of the parameterizable command line string with the actual user indicated parameters received from user interface module 310 and expert system module 330 for that particular instance.
  • Figure 4B is a table comprising one exemplary implementation of instructions for directing SoC netlist builder and verification computer system 100 to perform an update of a specific copy of a parameterizable command line string associated with a timer.
  • Parameter application module 320 then appends the circuit block attributes to other files.
  • a circuit block In one exemplary implementation, a circuit block
  • FIG. 4C is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification computer system of the present invention to append these design
  • parameter application module 320 then generates an internal integration list associated with the circuit block.
  • the internal integration list is utilized in the processing of other routines included in an SoC netlist builder and verification computer system of the present invention.
  • an internal integration list includes internal signal definitions (e.g., sgnl_name), clocks the device is coupled to (e.g., clk_dst_name), any assignments or initializations performed for proper circuit operation (e.g., assign_list), how the device is instantiated and connected in the chip level netlist (e.g., info), interrupts the device is coupled to (e.g., intr_src), and resets the device is coupled to (e.g., rst_dst_name).
  • sgnl_name internal signal definitions
  • clocks the device is coupled to e.g., clk_dst_name
  • any assignments or initializations performed for proper circuit operation e.g., assign_list
  • Figure 5 is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification computer system of the present invention to perform the generation of an internal integration list associated with a timer device.
  • Parameter application module 320 also provides the SoC netlist builder and verification computer system with instructions on the extraction of circuit block descriptions from a storage location based upon the parameterized information.
  • an SoC netlist builder and verification computer system includes a hardware data base comprising parameterizable circuit block descriptions and a circuit block description (e.g., a timer description) is extracted utilizing a parameterized command line string.
  • the circuit block information is extracted from a database comprising circuit block descriptions of previously utilized and tested circuit blocks (e.g., verified in silicon).
  • One exemplary implementation of instructions for directing a SoC netlist builder and verification computer system to perform the extraction comprises the following directions: gen_hdli_block $ : : CHIP_DSGN_DIR $ ⁇ Devicename ⁇ $DSGN_PARAM_COPY incr I ⁇ where CHIP_DSGN_DIR is a physical directory in which the HDL for the
  • extraction module 330 provides hooks and handles to facilitate the inclusion of circuit block descriptions custom designed by a user for a specific application.
  • a user provides user interface module 310 with information regarding the storage location of description files for custom designed circuit blocks and SoC netlist builder and
  • verification system 100 incorporates them in the design.
  • expert system module 330 facilitates SoC netlist construction and verification.
  • Expert system module 330 instructions for the automatic provision of numerous circuit block descriptions included in a SoC based upon a given architecture or configuration specified by a user via user module 310.
  • Expert system module 330 utilizes extensive information associated with a given architecture and expert system algorithms that apply probabilities associated with certain features of a SoC to determine circuit block descriptions and parameters included in a design.
  • the expert system module 330 relieves a user from performing certain tasks including cognitively recalling circuit block descriptions, expending intellectual ingenuity to develop circuit block designs, and manually entering input data associated with the circuit block descriptions.
  • expert system module 330 retrieves the circuit block descriptions and parameter information from an expert system data base.
  • the expert system data base includes information associated with previous experience building a SoC that is used by SoC netlist builder and verification computer system 100 to determine the circuit block descriptions included in the configuration and to provide parameters associated with the circuit block descriptions.
  • expert system module 330 includes programming instructions derived from extensive experience associated with actually building a wide variety of SoC implementations.
  • Expert system 330 continues to automatically provide iterative updates of revised circuit block descriptions and parameters based upon further user input.
  • a user is not required to enter all the parameters manually, expert system module 330 provides numerous parameter definitions in accordance with data base information derived from numerous previous design applications.
  • system 330 retrieves circuit block descriptions and parameters associated with a reduced instruction set computer (RISC) included in an advanced RISC machine (ARM) architecture.
  • Expert system module 330 automatically retrieves a variety of circuit block descriptions and parameters associated with an ARM architecture system. For example, expert system 330 retrieves circuit block descriptions of an ARM processor capable of performing the requisite functions, an advanced system bus (ASB) circuit block description, an ASB arbiter circuit block description, a memory circuit block description, a static device controller (SDC) circuit block description, clock logic circuit block descriptions and external ASIC input/output circuit block descriptions.
  • Expert system module 330 also automatically assigns parameters to the ARM circuit block descriptions.
  • chip level netlist generation module 340 creates an IC core level netlist based on data structures that were populated in other routines of an SoC netlist builder and verification computer system and
  • Chip level netlist generation module 340 creates a netlist file in the desired location.
  • chip level netlist generation module 340 creates the hardware description language (e.g., VHDL or Verilog) code that provides instructions for automatic performance of coupling circuit block descriptions together.
  • the following table 2 includes pseudo code utilized in one exemplary implementation of a present invention computer instruction parameter application module.
  • Padring Compiler will create the top level with the pads and the core instantiated based on the external pin interface list * / invoke_padring_compiler_using_external_pin_interface_list () ; / * Create chip core module/entity section * / generate_hdl_specific_chipcore_module_declaration () ;
  • Core netlist generation module 340 is flexibly adaptable to a variety of implementations.
  • the VHDL or Verilog code is based upon a signal name list (e.g., sgnl_name list) comprising the internal signals that are generated to achieve proper connectivity.
  • Figure 6A is a table comprising one exemplary implementation of instructions for directing SoC netlist builder and verification computer system 100 to perform the creation of the actual hardware description language VHDL or Verilog code utilized in creating a netlist description of a timer device and storing the netlist description in a desired memory location.
  • chip level netlist generation module 340 performs signal declarations.
  • Chip level netlist generation module 340 generates required HDL assign statements in accordance with an assignment list (e.g., assign_list) and an instantiation list (e.g., inst_list).
  • Figure 6B is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification computer system of the present invention to perform the creation of the signal declarations.
  • Figure 6C is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification computer system to generate HDL assignment statements.
  • Chip level netlist generation module 340 provides instructions on the generation of the HDL code that instantiated each of the components.
  • an instantiation list includes directions on the way each of the devices should be instantiated and connected.
  • Figure 7 is a table comprising one exemplary implementation of instructions for directing a SoC netlist builder and verification computer system to perform the generation of the HDL code that instantiates each of the components.
  • verification module 350 automatically provides test bench stimuli information used to verify the functionality of a design.
  • the verification module 350 automatically creates a declaration of a device under test (DUT) including a definition of the internal signals, a component declaration of the DUT with constant definitions (e.g., a clock period duration), values for DUT input ports, and models of external components for functional environmental testing.
  • DUT device under test
  • constant definitions e.g., a clock period duration
  • values for DUT input ports e.g., a clock period duration
  • values for DUT input ports e.g., a clock period duration
  • models of external components for functional environmental testing e.g., a clock period duration
  • the present invention facilitates the automated creation of logical verification environments including chip models and system level models for testing operations.
  • a user interface module In one embodiment of the present invention, a user interface module
  • SoC netlist builder and verification system and method presents the user with an SoC netlist builder and verification main GUI.
  • the display presented by the SoC netlist builder and verification main GUI is based upon information provided by an expert system module (e.g., expert system module 330).
  • the expert system module retrieves information from previous manufacturing and verification operations associated with similar designs for presentation to the user via the main GUI. Presenting the user with this information facilitates the reduction of manual data entry and provides expertise information from prior manufacturing operations.
  • an SoC netlist builder and verification system and method utilizes the SoC netlist builder and verification main GUI as an initial GUI when the application is initiated.
  • the SoC netlist builder and verification main GUI comprises several sections identifying relatively high level descriptions of devices and characteristics of an architecture provided by an expert system module based upon a high level configuration indication provided by the user in the initial GUI.
  • a user indicates if they wish to select or modify devices or characteristics included in a particular high level description section (e.g., a user click on an edit button in a ASB device section).
  • the user instructs the SoC netlist builder and verification system and method to perform compile operations and evaluation operations.
  • the SoC netlist builder and verification system and method automatically develops a SoC netlist description of the desired SoC, a
  • Figure 8 illustrates SoC netlist builder and verification main GUI 800, one embodiment of a present invention GUI.
  • the GUI is presented to a user in a dialogue box format utilizing a main GUI 800 comprising control buttons, SoC builder sections, tabs and dialogue boxes.
  • the control buttons of main GUI 800 comprise file dropdown button 811, edit dropdown button 812, help dropdown button 813, compile button 851, evaluate button 852 and close button 853.
  • the tabs of SoC netlist builder and verification main GUI 800 comprises edit buttons 841 through 845.
  • SoC builder sections available in one embodiment of SoC netlist builder and verification main GUI 800 comprise general categories provided by an expert system module, including ASB devices 820, APB Devices 821, System Resources 822, Deliverables Options 823, User IOs, 824 and Component Name /Output File 825.
  • the control buttons permit a user to direct commands from the GUI to other parts of the computer system, and the tabs permit a user to access subwindows by clicking (e.g. with a cursor directing device) on a different tab to move between subwindows.
  • a popup box or help balloon appears to provide further options with respect to the edit tab.
  • a help balloon 871 comprising the text 'parameterize ASB devices" appears when a cursor points at edit tab 841.
  • FIG. 9 is an illustration of SoC netlist builder and verification device GUI 900 included in one embodiment of the present invention.
  • an SoC netlist builder and verification device GUI 900 facilitates user input associated with an external SoC interface design (e.g., for an external SDRAM device) for an ASB device.
  • SoC netlist builder and verification ASB device GUI 900 comprises descriptions and parameters supplied by an expert system module, including external SDRAM Interface selection section 920 and address range selection section 940.
  • External SDRAM Interface selection section 920 and address range selection section 940 comprise features supplied by an expert system module. The automatically provided features are based upon extensive experience in design, manufacture and testing of a SoC interface design for an external SDRAM device.
  • External SDRAM Interface selection section 920 enables a user to select whether a design includes an external SDRAM interface and the width of the external SDRAM interface.
  • Address range section 940 enables a user to define if a selected SDRAM interface services a static or dynamic device and a starting and ending address of the external SDRAM device.
  • FIG. 10 is an illustration of advanced peripheral bus (APB) GUI 1000 included in one exemplary implementation of the present invention.
  • Advanced peripheral bus (APB) GUI 1000 comprises a list of APF device sections in easy to use format to facilitate user selection.
  • the list of APB devices are automatically identified by a present invention expert system module as devices included in an APB system, including input/ output circuit blocks, controller circuit blocks, clock circuit blocks, memory circuit blocks, interface circuit blocks and configuration circuit blocks.
  • advanced peripheral bus (APB) GUI 1000 comprises APB based Watchdog Timer Parameters Section 1010, APB Based Timer Parameters Section 1011, APB Based UART/IrDA Parameters Section 1012, APB Based I2C Parameters Section 1013, APB Based USB Device Parameters Section 1014, APB Based GPIO Parameters Section 1015, APB
  • a device parameterization subwindow includes a device paramaterization GUI.
  • Figure 11 is a block diagram illustration of timer device paramaterization GUI 1100, one embodiment of a present invention device paramaterization GUI.
  • Timer device paramaterization GUI 1100 comprises title section 1110, timer device identification section 1120, edit button 1131, delete button 1132, new button 1133 and help button 1132.
  • Timer device identification section 1120 comprises an identification of possible timers included in a design.
  • Delete button 1132 permits a user to delete a timer and new button 1133 permits a user to add a new timer. If a user clicks on edit button 1131 a detailed device paramaterization GUI is presented to the user.
  • Figure 12 is a block diagram illustration of detailed timer paramaterization GUI 1200, one embodiment of a present invention detailed device paramaterization GUI.
  • Detailed timer paramaterization GUI 1200 comprises title section 1210, number of capture registers section 1231, number of match registers section, match registers generate interrupt section 1233, close button 1240 and help button 1241.
  • a SoC netlist builder and verification computer system and method includes an external pin GUI.
  • An external pin GUI facilitates user input of information associated with an external pin.
  • an external pin GUI facilitates modification of general purpose input/output (GPIO) parameterization and pin muxing features.
  • the present invention does not perform automated design of external pin mulitplexing.
  • the present invention does permit user definition of external pin multiplexing status.
  • Figure 13 is a block diagram illustration of external pin GUI 1300.
  • External pin GUI 1300 comprises title section 1310, GPI section 1320, external interrupt section 1330, pin muxing section 1340, close button 1351 and help button 1352.
  • a user indicates if the design includes a GPIO device by selecting yes button 1322 and indicates it does not include a GPIO device by clicking no button 1321 of GPI section 1320. If a design includes a GPIO device the present invention external pin GUI further facilitates easy parameterization by providing dialogue box 1323 for the number of input only GPIO bits, dialogue box 1324 for the number of bi-directional GPIO bits, and dialogue box 1325 for the number of output only GPIO bits.
  • a user indicates if a design includes an external interrupt by clicking yes button 1332 and indicates a design does not include an external interrupt by clicking no button 1331. If a design includes an external interrupt the present invention external pin GUI further facilitates easy parameterization by providing dialogue box 1333 for the number of external inputs.
  • Pin muxing section 1340 facilities user selection of external pin muxing by offering a selection of dropdown choice of three selection in dialogue box 1341.
  • the preceding discussion of GUI's provided by a SoC netlist builder and verification computer system illustrates the extensive automation provided an expert system module of the present invention provides.
  • the expert system module automatically provides a significant amount of information associated with circuit block descriptions and parameters.
  • the SoC netlist builder and verification computer system automatically provides progressively more detailed information.
  • the expert system module of the SoC netlist builder and verification computer system also automatically supplies a significant amount of appropriate parameters.
  • An SoC netlist builder and verification system and method of the present invention provides a variety of deliverables including a standardized directory structure, a simulatable chip level model, environment model, hard macros, test bench deliverables, documentation (e.g., in MIF and TXT format), and C-Shell scripts.
  • the standardized directory structure includes directories for chip designs, test bench, simulation models, tests etc.
  • a simulatable chip level model includes block level RTLs generated from a design repository, block level synthesis scripts, chip core connectivity, top level RTL for the chip, top level synthesis scripts and top level timing analysis scripts.
  • the top level RTL for the chip includes IOs generated via a do ring compiler.
  • SoC netlist builder and verification system and method Based on parameterization of IOs, a present invention SoC netlist builder and verification system and method also automatically inserts boundary scan features and a test access port (TAP) controller.
  • TAP test access port
  • Top level scripts for scan insertion and scan simulation are also generated.
  • external interfaces are pinned out and it is left to the user to perform any desired multiplexing of the interfaces.
  • the test bench deliverables include, a test bench based on the parameterized choice of interfaces, responder models based on the parameterization, C-code tests to test the interfaces and connectivity based on the parameterized address map, interface to a design integrator (simulation and synthesis ready), hierarchical and recursive "Makefiles" for compilation for RTL and gate level models, and scripts to help generation of new tests.
  • the documentation includes documentation on chip IOs, parameterized feature list, parameterized address map, parameterized block diagrams, estimated gate counts, interface to a die size estimator tool, C-Shell scripts, C- shell scripts to regenerate blocks from reuse library, C-shell scripts to compile each of the blocks from the top level for simulations, "Makefiles" for compiling the entire design for simulation, and C-shell scripts to perform a bottom up synthesis for all the blocks and then for the top level to create a layout ready netlist.
  • Figure 14 is a block diagram illustration of sample input/output report 1400 produced by one embodiment of the present invention.
  • Sample input/output report 1400 comprises a title section 1410, reporting section 1421, Chip IOs button 1422, Close button 1423, Name column 1431, Type Column 1432, Width Column 1434, Multiplexing Column 1435 and comment column 1436.
  • Name column 1431 includes the identifying name of an IO.
  • Type Column 1432 includes a description of an IO type.
  • Width Column 1434 indicates an IO width.
  • Multiplexing Column 1435 indicates if an IO is multiplexed. Comment column 1436 provides additional information associated with an IO.
  • sample input/ output report 1400 includes IO summarizing information (e.g., total ins, total outs, total inouts, total IOs, total powers (pwrs), total pins, etc.).
  • sample input/output report 1400 is exportable to MS Excel.
  • SoC netlist builder and verification computer system 100 generates a system architecture schematic for an IC.
  • SoC netlist builder and verification computer system 100 generates an advanced RISC machine (ARM) ASIC that operates in accordance with a reduced instruction set computer architecture (RISC).
  • RISC reduced instruction set computer architecture
  • user interface module generates a GUI display of the 310 system architecture schematic for an IC.
  • FIG. 15 is a block diagram of ARM ASIC system architecture 1500, one embodiment of system architecture schematic generated by the present invention.
  • ARM ASIC system architecture 1500 comprises advanced system bus (ASB) circuit blocks “connected” to ASB bus 1571, advanced peripheral bus (APB) circuit blocks “connected” to APB bus 1572 and miscellaneous control circuit blocks.
  • ASB advanced system bus
  • APIB advanced peripheral bus
  • the ASB circuit blocks include ARM Processor (e.g., ARM7CS8) circuit block 1511, user ASB circuit block 1512, static device controller (SDC) circuit block 1513, external bus interface unit (EBIU) circuit block 1514, advanced system bus to peripheral component interconnect (ASB2PCI) bridge circuit block 1515, synchronous dynamic random access memory SDRAM controller (SDRAMC) circuit block 1527, internal static random access memory (ISRAM) circuit block 1521, internal static read only memory (ISROM) circuit block 1523, address decoder (adec) circuit block 1524, and arbiter circuit block 1525.
  • ARM Processor e.g., ARM7CS8
  • SDC static device controller
  • EBIU external bus interface unit
  • ASB2PCI advanced system bus to peripheral component interconnect
  • SDRAMC synchronous dynamic random access memory SDRAM controller
  • ISRAM internal static random access memory
  • ISROM internal static read only memory
  • address decoder (adec) circuit block 1524 address decoder circuit block 1524
  • the advanced peripheral bus (APB) circuit blocks include general peripheral input output (GPIO) circuit block 1541, watch dog circuit block 1542, interrupt controller (INTC) circuit block 1543, real time clock (RTC) circuit block 1544, battery backed random access memory (BBRAM) circuit block 1545, timer circuit block 1551, universal asynchronous receiver transmitter (UART) 1552, i2c interface 1553, universal serial bus (USB) 1554 - phase lock loop (PLL) 1555, and user APB device 1558.
  • GPIO general peripheral input output
  • watch dog circuit block 1542 includes interrupt controller (INTC) circuit block 1543, real time clock (RTC) circuit block 1544, battery backed random access memory (BBRAM) circuit block 1545, timer circuit block 1551, universal asynchronous receiver transmitter (UART) 1552, i2c interface 1553, universal serial bus (USB) 1554 - phase lock loop (PLL) 1555, and user APB device 1558.
  • GPIO general peripheral input output
  • RTC real time
  • Miscellaneous control circuit blocks comprise clock logic circuit block 1571, reset logic circuit block 1572, phase lock loop (PPL) circuit block 1573, clock tree circuit block 1574, APB configuration circuit block 1558, user configuration circuit block 1557 and ASIC IOs 1581 through 1594.
  • PPL phase lock loop
  • FIG 16 is a flow chart of SoC netlist builder and verification computer method 1600, one embodiment of the present invention.
  • SoC netlist builder and verification computer method 1600 is a computer implemented method that facilitates SoC design and verification by providing significant automation of a number of operations including circuit block integration, parameter assignment, addition of architecture features, verification testing and production test support.
  • SoC netlist builder and verification computer method 1600 enables a user to convey information conveniently in a manner that minimizes the amount of data a user has to enter manually while adequately describing features of the circuit being designed or analyzed.
  • SoC netlist builder and verification computer method 1600 facilitates the automated provision of design features based upon prior experience associated with actual SoC hardware design, manufacturing and verification.
  • the present invention facilitates the automated creation of netlist description files and logical verification environments including chip models and system level models for testing operations.
  • a user friendly GUI is provided (e.g., by user interface module 310) to assist the easy entry and modification of user selections and parameters.
  • the GUI presents SoC netlist building and verification information in a convenient and easy to use manner.
  • standardized circuit blocks and parameterization options are presented (e.g., by a GUI).
  • batch code text is interpreted by SoC netlist builder and verification computer method 1600.
  • a parameter application process is performed.
  • an underlying structure list is created based upon information supplied by a user via the GUI provided in step 1610.
  • a parameter application process initializes a corresponding string for each selected circuit block (e.g., a timer). For example, a parameter application command line string required to generate the selected block circuit (e.g., a timer) from a hardware description language (e.g., HDLi) is initialized and operations for a circuit block (e.g., a timer) that a user selected are processed. An instance specific copy of the parameterizable command line string is made.
  • a hardware description language e.g., HDLi
  • a parameter application process then updates the specific copy of the parameterizable command line string with parameters received for that particular instance.
  • the parameter application process then appends the circuit block attributes to other files.
  • a circuit block e.g., a clock
  • a list of libraries e.g., libraries
  • categorized devices e.g., APB devices.
  • the gate count of a circuit block is added to the list of gate counts for the IC.
  • an internal integration list is utilized in the processing of other routines included in SoC netlist builder and verification computer method 1600.
  • an internal integration list includes internal signals definitions (e.g., sgnl_name), any assignments or initializations that must be performed for proper circuit operation (e.g., assign_list), clocks (e.g., clk_dst_name), interrupts (e.g., intr_src) and resets (e.g., rst_dst_name) coupled to the device, and how the device is instantiated and coupled in the chip level netlist (e.g., info).
  • sgnl_name any assignments or initializations that must be performed for proper circuit operation
  • clocks e.g., clk_dst_name
  • interrupts e.g., intr_src
  • resets e.g., rst_dst_name
  • SoC netlist builder and verification computer method 1600 also executes an extraction process in step 1620.
  • the extraction process extracts circuit block descriptions from a storage location based upon the parameterized information received from the parameter application process.
  • an SoC netlist builder and verification method utilizes a hardware description language (e.g., HDLi) tool to extract a circuit block (e.g., a timer) using a parameterized command line string provided by the parameter application process.
  • circuit block information is extracted from a database comprising circuit block descriptions of previously utilized and tested circuit blocks (e.g., verified in silicon).
  • an extraction process also facilitates incorporation of non standard custom designed circuit block.
  • SoC netlist builder and verification computer method 1600 provides hooks and handles for a user to assist incorporation of specially designed circuit blocks into a design.
  • an expert process is performed that facilitates SoC netlist construction and verification.
  • the expert process includes receiving high level configuration information from step 1610, determining circuit block descriptions included in the indicated configuration, and providing parameters associated with the circuit block descriptions.
  • the expert process utilizes extensive information associated with a given architecture and expert system algorithms that apply probabilities associated with certain features of a SoC to determine circuit block descriptions and parameters included in a design.
  • the expert system module In one exemplary implementation the expert process retrieves the circuit block descriptions and parameter information from a storage medium (e.g., a data base). In one embodiment of the present invention, the expert process relies upon information associated with previous experience building a SoC to determine circuit block descriptions included in the configuration and to provide parameters associated with the circuit block descriptions.
  • SoC netlist builder and verification computer method 1600 implements a chip level netlist generation process.
  • a chip level netlist generation process creates an IC core level netlist in a desired location based on data structures that were populated in other routines of an SoC netlist builder and verification computer method 1600 of the present invention.
  • chip level netlist generation process creates hardware description language VHDL or Verilog code that will automatically perform the task of "connecting" circuit blocks together.
  • the VHDL or Verilog code is based upon a signal name list (e.g., sgnl_name list) comprising a list of internal signals that are generated by SoC netlist builder and verification computer method 1600 to achieve proper connectivity.
  • chip level netlist generation process provides signal declarations.
  • the chip level netlist generation process generates required HDL continuous assignment statements in accordance with an assignment list (e.g., assign_list) and based upon an instantiation list (e.g., inst_list) chip level netlist generation process generates the HDL code that wilHnstantiate each of those components.
  • an instantiation list includes directions on the way a device is instantiated and connected.
  • Step 1650 a SoC design is verified.
  • Step 11650 includes a verification process that automatically generates a test bench and a logical verification environment including simulation models (e.g., a chip model and a system level model).
  • the verification process automatically provides test bench stimuli information used to verify the functionality of a design.
  • manufacturing testing information is also supplied.
  • the verification process creates a declaration of a device under test (DUT) including a definition of the internal signals, a component declaration of the DUT with constant definitions (e.g., a clock period duration), values for DUT input ports, and models of external components for functional environmental testing.
  • DUT device under test
  • constant definitions e.g., a clock period duration
  • FIG 17 is a flow chart of SoC netlist builder and verification computer method 1700, one embodiment of the present invention.
  • SoC netlist builder and verification computer method 1700 also facilitates generation of an IC netlist and associated files (e.g. a standardized directory structure for IC designs, test bench, simulation models, tests, etc.).
  • SoC netlist builder and verification computer method 1700 is an iterative process involving functions performed by a present invention integrated circuit (IC) SoC netlist builder and verification system and method based upon inputs from a user.
  • IC integrated circuit
  • a present invention SoC netlist builder and verification system and method facilitates communications between a user and an SoC netlist builder and verification system and method.
  • step 1710 system specification information is received.
  • system specification information is received via a present invention GUI.
  • a user begins by defining a design at a high level and setting forth some basic parameters which are received in step
  • step 1720 standardized circuit block information is reused. Based upon the information provided by a user in step 1710, SoC netlist builder and verification system method 1700 retrieves appropriate information from
  • standardized circuit block information is included in a
  • step 1730 information associated with custom designed circuit blocks is received.
  • test bench integration is performed.
  • SoC netlist builder and verification method 1700 processes the information and generates a detailed description of a circuit or system being designed and verified.
  • test are automatically written.
  • the tests are based upon user supplied information associated with the chip configuration coupled with tests that are reconfigured.
  • the test comprises test models that include stimuli in a work station environment.
  • step 1760 a determination is made if a proposed circuit design passes a test.
  • step 1770 the circuit blocks are synthesized and top level netlist is created.
  • the textual descriptions generated by SoC netlist builder and verification computer method 1700 are utilized in a synthesis process that turns the conceptual textual description of the design into a "logical gate” description.
  • a register transfer level (RTL) functional description file with an implied architecture is translated into a gate level description.
  • RTL register transfer level
  • the present invention approach of having a centralized SoC building and verification environment provides numerous advantages. For example, the present invention facilitates much faster time to market and reduction of manual errors associated connecting circuit blocks, creating IOs, test benches etc.
  • the present invention assists standardized chip building methodology and abstraction of a circuit block behavior so that the user does not have to be buried in the myriad of details associate with a description of a device.
  • the present invention facilitates and automate creation of specifications and allows the user to easily experiment with different architectures for gate counts, die sizes, and power estimates for different chip architectures.
  • the present invention provides a method to save time, effort, and the risk of associated with introducing human errors in putting a IC chip together.
  • the present invention is a system and method that facilitates efficient and effective creation and modification of electrical circuit designs utilizing existing circuit block designs.
  • the integrated circuit (IC) SoC netlist builder and verification system and method of the present invention automates numersous design and verification operations including automated provision of circuit block descriptions and application of parameters, automated development of test benches and test environments and reduction of data a user has to enter manually to adequately describe features of the circuit being designed or analyzed.
  • the present invention system and method also facilitates modification of IC design features and economically generates circuit description files that assist IC design and analysis.

Abstract

The present invention facilitates automation of system on a chip (SoC) design, manufacture and verification in a convenient and efficient manner. In one embodiment, a SoC netlist builder and verification computer system of the present invention includes a user interface module, a parameter application module, an expert system module and a chip level netlist generation module. The user interface module provides user friendly and convenient interfaces that facilitate easy entry and modification of user selections and parameters. The parameter application module interprets information supplied by the user module and the expert system module and creates directions (e.g., command lines) passed to other modules for execution. The expert system module analyzes information and automatically provides SoC building and verification data including automated addition of default architectural features, automated insertion of default parameters, and automated input of information to the verification module. The chip level netlist generation module automatically generates a chip level netlist, including the instantiation of internal IC devices and connections between the circuit blocks for internal signals. The verification module automatically generates a test bench and a logical verification environment including simulation models (e.g., a chip model and a system level model).

Description

SYSTEM AND METHOD RELATING TO VERIFICATION OF INTEGRATED CIRCUIT DESIGN
FIELD
The present disclosure relates to the field of automated integrated circuit (IC) design. More particularly, the present disclosure relates to systems on a chip design and a verification system an method that constructs IC hardware description files of systems on a chip from functional building block circuits while concurrently taking into account numerous chip level design aspects along wi the generation of a simulation environment for design verification. The disclosure teaches a computer system and method to dynamically generate system on a chip description files and verification information.
BACKGROUND
Electronic technologies such as digital computers, calculators, audio devices, video equipment and telephone systems have facilitated increased productivity and reduced costs in a number of activities, including the analysis and communication of data, ideas and trends in most areas of business, science, education, and entertainment. There are a number of different complex electronic Application Specific Integrated Circuits (ASICs) that have contributed to the realization of these benefits. Design of ASICs often involves the design of various building block circuits that make up the ASIC. Significant resources are usually expended performing the design tasks associated with designing connection between building block circuits and adding the necessary support logic to complete a system on a chip (SoC), such as adding input/output (I/O) cells, clock distribution and test logic. After a
design is complete, even more resources are typically expended verifying the operation via simulation.
Designing complex electronic systems and circuits requires arduous analysis of numerous electrical characteristics, including the performance of extensive calculations and manipulation of complicated electrical principles of physics. Typically an analysis becomes even more complex when designers attempt to integrate numerous electronic components on a single integrated circuit chip, giving rise to a variety of factors requiring careful review and
attention. Engineers regularly rely on computer aided engineering (CAE) design tools to assist with many of the complicated manipulations, computations and analyses that are required to design electronic circuits, especially when a large part of the design is included in an integrated chip.
Circuits being designed or analyzed usually include resistors, capacitors, inductors, voltage and current sources, switches, uniform distributed RC
lines, and common semiconductor devices such as bipolar junction transistors (BJT), junction field effect transistors (JFET), metal oxide surface field effect transistors (MOSFET), etc. A good analysis typically involves a review of numerous electrical characteristics associated with each component. Many CAE tools utilize netlists of hardware description language (HDL) files to describe the architectural and functional characteristics of a design. HDL files are usually textual descriptions of the logical functions a
circuit performs. The textual descriptions are utilized in a synthesis process that turns the conceptual textual description of the design into a "logical gate" description. For example register transfer level (RTL) functional description file with an implied architecture is translated into a gate level description. Even after a CAE design is completed significant resources are expended verifying the design in silicon.
IC chips typically include various functional circuit blocks that are coupled together and to Input/Output (IO) cells. Through design reuse, significant advantages are usually achieved through "reuse" of basic building block circuits that have been previously verified in silicon. Although the internal design of the previously verified building block circuits does not significantly change, they usually are required to exhibit different behavior in different applications and typically have significantly distinct interfaces from one application to another. Coupling the HDL descriptions of different functional circuit blocks together, generating HDL descriptions of inputs and
outputs (IOs) based on the choice of interfaces, adding system level logic for clocking and testing, generating a test bench and the tests to verify the functionality and connectivity of an IC are typically tedious tasks consuming significant resources. In addition, these design and test activities associated with coupling the different HDL descriptions of functional circuit blocks together are error prone, especially when manual intervention or complex coordination is required.
Valuable experience and information associated with previous design and actual manufacturing of electronic systems is often not available to new design teams. Typically new designs are generated by teams of engineers that do not include engineers that participated in the original design of a circuit block. The new teams of engineers often do not know the circuit block was previously designed, manufactured, tested and debugged and perform these tasks them selves. Even if the new team includes engineers with experience designing and manufacturing a circuit block, remembering previous designs and circuit block descriptions is often difficult.
Accordingly, what is required is a system and method that facilitates efficient creation of IC netlist designs utilizing existing circuit block information. The system and method should assist a designer to design an IC netlist in a convenient manner and facilitate incorporation of building block circuits previously tested in silicon. The system and method should reduce the amount of data a user has to enter manually to adequately describe features of the circuit being designed or analyzed. SUMMARY OF THE INVENTION
The present invention is a system and method that facilitates efficient and effective creation, modification and verification of electrical" circuit designs utilizing existing circuit block designs. The system on a chip (SoC) netlist builder and verification system and method of the present invention assists a designer to design an integrated circuit (IC) in a convenient manner and facilitates incorporation of building block circuits that have been previously verified and tested in silicon. The SoC netlist builder and verification system and method minimizes the amount of data a user has to enter manually to adequately describe features of the circuit being designed or verified. The present invention system and method automatically provides a chip level netlist description, a test bench, clock descriptions, test logic descriptions, simulation models, and simulation environments.
In one embodiment of the present invention, an integrated circuit (IC) SoC netlist builder and verification system and method is implemented in a computer system. The SoC netlist builder and verification system and method includes a graphical user interface (GUI), a parameter application module, an expert system module, and a chip level netlist generation module. The GUI module provides user friendly and convenient interfaces that facilitate easy entry and modification of user selections and parameters. In one embodiment the present invention also accommodates text file entry of parameters. The parameter application module analyzes information supplied by the GUI module to interpret the user selections and parameterization (e.g., creates directions (command lines) passed to other modules for execution). The expert system utilizes information" derived from past experience designing, manufacturing and verifying circuit blocks to automatically provide circuit block netlist descriptions and parameters from a storage source (e.g., database, distributed resource, memory, etc.). The chip level netlist generation module automatically generates a chip level netlist, including the instantiation of internal IC devices and connections between the circuit blocks for internal signals. In one embodiment of the present invention, an SoC netlist builder and verification system and method also includes a verification module that automatically verifies the behavior of the modeled IC.
DESCRIPTION OF THE DRAWINGS
The accompanying drawings which are incorporated in and form a part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention:
Figure 1 is a block diagram of one embodiment of an SoC netlist builder and verification computer system of the present invention.
Figure 2 is a block diagram illustrating a logical view of one embodiment of the software computer program elements of a present invention SoC netlist builder and verification computer system.
Figure 3 is a block diagram illustrating SoC netlist builder and verification program, one embodiment of an SoC netlist builder and verification program included in an SoC netlist builder and verification
computer system of the present invention.
Figure 4A is a table comprising one exemplary implementation of a
present invention parameter application module.
Figure 4B is a table comprising one exemplary implementation of
instructions for directing an SoC netlist builder and verification system and method of the present invention to perform an update of a specific copy of a parameterizable command line string associated with a timer.
Figure 4C is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to append these design functions associated with a timer.
Figure 5 is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to perform the generation of an internal integration list associated with a timer device.
Figure 6A is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to perform the creation of the actual hardware description language VHDL or Verilog code utilized in creating a netlist description of a timer device and storing the netlist description in a desired memory location.
Figure 6B is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to perform the creation of the signal declarations.
Figure 6C is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to generate HDL assignment statements.
Figure 7 is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification system and method of the present invention to perform the generation of the HDL code that will instantiate each of those components.
Figure 8 illustrates one embodiment of a present invention SoC netlist builder and verification main GUI.
Figure 9 is an illustration of SoC netlist builder and verification device GUI 900 included in one embodiment of the present invention.
Figure 10 is an illustration of an advanced peripheral bus (APB) GUI included in one exemplary implementation of the present invention. Figure 11 is a block diagram illustration of a timer device paramaterization GUI, one embodiment of a present invention device paramaterization GUI.
Figure 12 is a block diagram illustration of detailed timer paramaterization GUI, one embodiment of a present invention detailed device paramaterization GUI.
Figure 13 is a block diagram illustration of one embodiment of an external pin GUI of the present invention.
Figure 14 is a block diagram illustration of sample input/output report produced by one embodiment of the present invention.
Figure 15 is a block diagram of an ARM ASIC system architecture, one embodiment of system architecture schematic generated by the present invention.
Figure 16 is a flow chart of one embodiment of a present invention SoC netlist builder and verification computer method .
Figure 17 is a flow chart of an SoC netlist builder and verification computer method, one embodiment of the present invention. BEST MODE FOR CARRYING OUT THE INVENTION
Reference will now be made in detail to the preferred embodiments of the invention, an IC netlist building system and method, examples of which are illustrated in the accompanying drawings. While the invention will be
described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications, and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention,
numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one ordinarily skilled in the art that the present invention may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the current invention.
Some portions of the detailed descriptions which follow are presented in terms of procedures, logic blocks, processing, and other symbolic representations
of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to
most effectively convey the substance of their work to- others skilled in the art. A procedure, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared," and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present invention permits a designer to efficiently and effectively create and modify system on a chip (SoC) designs. The system and method of the present invention facilitates SoC design and verification by providing significant automation of a number of operations inςluding circuit block integration, parameter assignment, addition of architecture features, verification testing and production test support. The present system and method enables a user to convey information conveniently in a manner that minimizes the amount of data a user has to enter manually while adequately describing features of the circuit being designed or analyzed. The present invention also includes automated expert system features that facilitate SoC design and testing. The expert system features facilitates the automated provision of design features based upon prior experience associated with actual SoC hardware manufacturing. It allows a user to easily create and modify design features with reduced manual data entry associated with creating netlist files and performing verification functions. The present invention facilitates the automated creation of netlist description files and logical verification environments including chip models and system level models for testing operations.
Figure 1 is a block diagram of SoC netlist builder and verification computer system 100, one embodiment of the present invention. In general, computer system 100 comprises a central processing unit (CPU) 101, a main memory 102, graphics controller 103, mass storage device 105, input/output (IO) device 108, communication port 109, database 150 and display monitor 110, all of which are coupled to bus 107. CPU 101 handles most of the control and data processing, including processes associated with automatic generation of an IC netlist and verification models in accordance with instructions included in an SoC netlist builder and verification program of the present invention. Main memory 102 provides a convenient means for storing data for quick retrieval by CPU 101. Graphics controller 103 processes image data in pipelined stages. Mass storage device 105 is a computer readable medium that stores data associated with multiple images and applications, including information utilized by an SoC netlist builder and verification system of the present invention. IO device 108 operates as an input or output device (e.g., a keyboard, mouse, voice recognition microphone, etc.). Communication port 109 provides a communication port for a variety of devices. In one exemplary implementation of the present invention, communications port 109 provides a communication port to a network (e.g., the Internet) of devices (not shown). Display monitor 110 displays graphical images including convenient and user friendly graphical user interfaces (GUIs) to facilitate circuit block selection and parameterization. Database 150 stores information arranged in files, including data comprising circuit block description files, associated parameters and expert system prior SoC manufacturing information. Bus 107 provides a communication path between components of computer system 100.
Figure 2 is a block diagram illustrating a logical view of one embodiment of the software computer program elements of SoC netlist builder and verification computer system 100. An operating system 210 (e.g., DOS, UNIX, etc.) provides various system services to other programs executing on the computer system. In one exemplary embodiment, operating system 210 includes input/output (I/O) services 211 and memory " management service 212. I/O services 211 facilitate access to I/O devices. Memory management service 212 provides management of allocation and deallocation of memory in SoC netlist builder and verification computer system 100, including virtual memory addressing or static memory addressing. Also shown are programming language compilers, software tool/utilities and their runtime libraries included in block 220 for application execution. SoC netlist builder and verification program 230 is an application running on SoC netlist builder and verification computer system 100 and utilizes the other system services (e.g., operating system 210). SoC netlist builder and verification program 230 comprises processing procedures performed by SoC netlist builder and verification computer system 100. The different levels of programming shown in Figure 2 typically reside on a computer readable memory (e.g., a main memory 102, mass storage device 105, database 150, etc.) and include instructions for CPU 101.
Figure 3 is a block diagram illustrating SoC netlist builder and verification program 300, one embodiment of a SoC netlist builder and verification program included in SoC netlist builder and verification computer system 100. SoC netlist builder and verification program 300 comprises user interface module 310, parameter application module 320, expert system module 330, chip level netlist generation module 340 and verification module 350. User module 310 provides user friendly and convenient interfaces that facilitate easy entry and modification of user selections and parameters. Parameter application module 320 interprets information supplied by user module 310 and expert system module 330 and creates directions (e.g., command lines) passed to other modules for execution. Expert system module 330 analyzes information and automatically provides SoC building and verification data including automated addition of default architectural features, automated insertion of default parameters, and automated input of information to verification module 350. Chip level netlist generation module 340 automatically generates a chip level netlist, including the instantiation of internal IC devices and connections between the circuit blocks for internal signals. Verification module 350 automatically generates a test bench and a logical verification environment including simulation models (e.g., a chip model and a system level model).
In one embodiment of the present invention, SoC netlist builder and verification program 300 also includes a synthesis module (not shown). The synthesis module automatically translates design description from a textual level abstraction to a structural level (e.g., a schematic of logic gates and electronic circuits). In one exemplary implementation of the present invention, the synthesis module also perform optimization of the design (e.g., technology specific transformations to make area/speed trade-offs necessary to meet design goals).
Generating SoC netlist files and verification information (e.g. a standardized directory structure for IC designs, a test bench, simulation models, tests, etc.) is an iterative process involving automated functions performed by a present invention SoC netlist builder and verification computer system with facilitated inputs from a user. Based upon a high level configuration indication provided by a user, a SoC netlist builder and verification computer system expert system retrieves appropriate design and test verification information from other sources such as a database library or information folders. The SoC netlist builder and verification computer system then processes the information and generates a detailed description of a circuit and appropriate verification information for the circuit. There are points in the process at which a user has opportunities to provide additional information or modify the information assembled and arranged by a present invention SoC netlist builder and verification computer system. When a user is satisfied that appropriate information has been incorporated to perform a design analysis, present invention SoC netlist builder and verification computer system automatically generates a netlist and verification test benches. Referring to Figure 3, user interface module 310 enables a user to communicate expediently and efficiently with a present invention SoC netlist builder and verification computer system. In one embodiment of the present invention, user interface module 310 comprises software code that instructs SoC netlist builder and verification computer system 100 to generate an interactive graphical user interface (GUI). The GUI presents information regarding operations of SoC netlist builder and verification computer system 100 to the user. User interface module 310 conveys information between a user and other components of SoC netlist builder and verification computer system 100 in a convenient format that is easier to read and modify relative to a complex simulation tool formatted input text. In one embodiment of a present invention, a user interface module generates user friendly GUIs to facilitate selection of standardized circuit blocks and parameterization of the selected circuit blocks. In another embodiment, user interface module 310 interprets batch code text rather than relying on GUI input.
Parameter application module 320 provides instructions for the SoC netlist builder and verification computer system to retrieve block descriptions and assign parameters based upon input from user interface module 310 and expert system module 330. In one embodiment of the present invention, parameter application module 320 performs initialization of circuit block characteristics (e.g., device characteristics), updates circuit block characteristics, creates design lists and retrieves circuit block descriptions. The following table 1 includes pseudo code utilized in one exemplary implementation of a present invention computer instruction parameter application module.
Table 1 process_device() { if ( number_of_devices > 0 )
{ initialize_hdli_design_parameterjist () ; for (device_number in 1to number_of_devices) { make_hdli_design_parameterJist_copy () ; initialize_device_gate_count () ; initialize_device_port_interface () ; initialize_device_signal_requirements () ; initialize_device_external_pin_interface () ; initialize_device_signal_initialization () ; /* Device options are specified by the user either via the GUI or by loading a configuration file */ for (device_option from 1 to number_of_device_options) {
/* Based on the device option update the following 7 update_hdli_design_parameter_list_copy () ; update_device_gate_count () ; update_device_port_interfaceJist () ; update_device_extemal_pin_interface () ; update_device_signal_requirements () ; update_device_signal_initialization () ; update_interrupt_source_list () ;
} add_device_to_device_list () ; add_device_to_reset_destination_list () ; add_device_to_clock_destination_list () ; add_device_gate_count_to_gate_count_list () ; add_device_port_interface_to_port_interface_list () ; add_device_extemal_pin_interface_to_extemaLpin_interface_list () ; add_device_signal_requirements_to_signal_requirements_list
0 ; add_device_signaUnitialization_to_signal_initializationJist () ; /* Call HDLi with the device parameter list */ create_directory_structure_for_device () ; create_hdli_block_using_design_parameter_list_copy () ;
} Parameter application module 320 is flexibly adaptable to a variety of implementations and applicable to a number of functions including creating an underlying structure list, initializing a command line string, updating a copy of the command line string with parameters, generating an internal circuit block integration list, and extracting circuit block descriptions from a storage location based upon the applied parameter information.
In one embodiment of the present invention, parameter application module 320 creates an underlying structure list based upon information supplied by a user via user interface module 310 and information provided by expert system module 330. Parameter application module 320 interprets the information and performs complex iterations required to generate an underlying structure list. In one embodiment of the present invention, parameter application module 320 initializes a corresponding command line string for a circuit block descriptions (e.g., a timer description) forwarded by expert system module 330. For example, a parameterizable command line string required to generate the selected block circuit (e.g., a timer) from a hardware description language (e.g., reuse library) is initialized and the operations for each block circuit (e.g., a timer) the user has requested are processed. Parameter application module 320 then makes an instance specific copy of the parameterizable command line string. Figure 4A is a table comprising one exemplary implementation of parameter application module 320 instructions for directing SoC netlist builder and verification computer system 100 to perform these design functions associated with the inclusion of a timer device in a desired design.
Parameter application module 320 (shown in Figure 3) then directs a SoC netlist builder and verification computer system to update the specific copy of the parameterizable command line string with the actual user indicated parameters received from user interface module 310 and expert system module 330 for that particular instance. Figure 4B is a table comprising one exemplary implementation of instructions for directing SoC netlist builder and verification computer system 100 to perform an update of a specific copy of a parameterizable command line string associated with a timer. Parameter application module 320 then appends the circuit block attributes to other files. In one exemplary implementation, a circuit block
(e.g., a clock ) directory is appended to a list of libraries and also appended to a list of categorized devices (e.g., APB devices). In one embodiment of the present invention, the gate count of a circuit block is added to the list of gate counts for the IC. Figure 4C is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification computer system of the present invention to append these design
functions associated with a timer.
Referring again to Figure 3, parameter application module 320 then generates an internal integration list associated with the circuit block. The internal integration list is utilized in the processing of other routines included in an SoC netlist builder and verification computer system of the present invention. In one exemplary implementation, an internal integration list includes internal signal definitions (e.g., sgnl_name), clocks the device is coupled to (e.g., clk_dst_name), any assignments or initializations performed for proper circuit operation (e.g., assign_list), how the device is instantiated and connected in the chip level netlist (e.g., info), interrupts the device is coupled to (e.g., intr_src), and resets the device is coupled to (e.g., rst_dst_name). The generation of these lists is based on the user parameterization of the device in the user interface module and parameters automatically provided by the expert system module 330. Figure 5 is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification computer system of the present invention to perform the generation of an internal integration list associated with a timer device.
Parameter application module 320 (see Figure 3) also provides the SoC netlist builder and verification computer system with instructions on the extraction of circuit block descriptions from a storage location based upon the parameterized information. In one embodiment of the present invention, an SoC netlist builder and verification computer system includes a hardware data base comprising parameterizable circuit block descriptions and a circuit block description (e.g., a timer description) is extracted utilizing a parameterized command line string. In one embodiment of the present invention, the circuit block information is extracted from a database comprising circuit block descriptions of previously utilized and tested circuit blocks (e.g., verified in silicon).
One exemplary implementation of instructions for directing a SoC netlist builder and verification computer system to perform the extraction comprises the following directions: gen_hdli_block $ : : CHIP_DSGN_DIR $ {Devicename} $DSGN_PARAM_COPY incr I } where CHIP_DSGN_DIR is a physical directory in which the HDL for the
device is stored and the DSGN_PARAM_COPY is the command line string of the parameters for the block. In one embodiment of the present invention, extraction module 330 provides hooks and handles to facilitate the inclusion of circuit block descriptions custom designed by a user for a specific application. In one embodiment of the present invention, a user provides user interface module 310 with information regarding the storage location of description files for custom designed circuit blocks and SoC netlist builder and
verification system 100 incorporates them in the design.
Referring still to Figure 3, expert system module 330 facilitates SoC netlist construction and verification. Expert system module 330 instructions for the automatic provision of numerous circuit block descriptions included in a SoC based upon a given architecture or configuration specified by a user via user module 310. Expert system module 330 utilizes extensive information associated with a given architecture and expert system algorithms that apply probabilities associated with certain features of a SoC to determine circuit block descriptions and parameters included in a design. The expert system module 330 relieves a user from performing certain tasks including cognitively recalling circuit block descriptions, expending intellectual ingenuity to develop circuit block designs, and manually entering input data associated with the circuit block descriptions.
In one embodiment of the present invention, expert system module 330 retrieves the circuit block descriptions and parameter information from an expert system data base. The expert system data base includes information associated with previous experience building a SoC that is used by SoC netlist builder and verification computer system 100 to determine the circuit block descriptions included in the configuration and to provide parameters associated with the circuit block descriptions. For example, expert system module 330 includes programming instructions derived from extensive experience associated with actually building a wide variety of SoC implementations. Expert system 330 continues to automatically provide iterative updates of revised circuit block descriptions and parameters based upon further user input. In one embodiment of the present invention, a user is not required to enter all the parameters manually, expert system module 330 provides numerous parameter definitions in accordance with data base information derived from numerous previous design applications.
In one exemplary implementation of the present invention, expert
system 330 retrieves circuit block descriptions and parameters associated with a reduced instruction set computer (RISC) included in an advanced RISC machine (ARM) architecture. Expert system module 330 automatically retrieves a variety of circuit block descriptions and parameters associated with an ARM architecture system. For example, expert system 330 retrieves circuit block descriptions of an ARM processor capable of performing the requisite functions, an advanced system bus (ASB) circuit block description, an ASB arbiter circuit block description, a memory circuit block description, a static device controller (SDC) circuit block description, clock logic circuit block descriptions and external ASIC input/output circuit block descriptions. Expert system module 330 also automatically assigns parameters to the ARM circuit block descriptions.
Referring again to Figure 3, chip level netlist generation module 340 creates an IC core level netlist based on data structures that were populated in other routines of an SoC netlist builder and verification computer system and
method of the present invention. Chip level netlist generation module 340 creates a netlist file in the desired location. In one embodiment of the present invention, chip level netlist generation module 340 creates the hardware description language (e.g., VHDL or Verilog) code that provides instructions for automatic performance of coupling circuit block descriptions together. The following table 2 includes pseudo code utilized in one exemplary implementation of a present invention computer instruction parameter application module.
Table 2
create_chipcore()
{ open_hdl_file_for_writing () ;
/* Padring Compiler will create the top level with the pads and the core instantiated based on the external pin interface list */ invoke_padring_compiler_using_external_pin_interface_list () ; /* Create chip core module/entity section */ generate_hdl_specific_chipcore_module_declaration () ;
/ * Create the signal declarations * / for (signal_name in signal_requirements_list)
{ if (signal_width = = 1) print_hdl_specific_signal_declaration () ; else print_hdl_specific_bussed_signal_declaration () ;
} for (reset_name in reset_destination_list and clock_destination_list) { print_hdl_specific_bussed_signal_declaration () ;
} / * Create the signal initializations * / for (signal_name in signal_initialization_list) { print_hdl_specific_signal)initialization() ;
} / * Instantiate all the devices in the chip core * / for (device in devicejist) { print_hdl_specific_device_instantiation_statement () ; for (port_element in device_port_interface)
{ print hdl_specific_port_mapping () ; }
} / * Instantiate the reset and clock modules * / generate_reset_module_based_on_reset_destinationJist () ; instantiate_reset_module () ; generate_clock_module_based_on_clock_destination_list () ; instantiate_clock_module () ; / * Based on the user options for external pin multiplexing create the required logic * / create_pin_multiplexing_module () ; instantiate_pin_multiplexing_module () ; / * Based on the power management requirements create the power management logic * / create_power_management_module () ; instantiate_power_management_module () ; print_hdl_specific_module_terminator () ; }
Core netlist generation module 340 is flexibly adaptable to a variety of implementations.
In one exemplary implementation of the present invention, the VHDL or Verilog code is based upon a signal name list (e.g., sgnl_name list) comprising the internal signals that are generated to achieve proper connectivity. Figure 6A is a table comprising one exemplary implementation of instructions for directing SoC netlist builder and verification computer system 100 to perform the creation of the actual hardware description language VHDL or Verilog code utilized in creating a netlist description of a timer device and storing the netlist description in a desired memory location.
In one embodiment of the present invention, chip level netlist generation module 340 performs signal declarations. Chip level netlist generation module 340 generates required HDL assign statements in accordance with an assignment list (e.g., assign_list) and an instantiation list (e.g., inst_list). Figure 6B is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification computer system of the present invention to perform the creation of the signal declarations. Figure 6C is a table comprising one exemplary implementation of instructions for directing an SoC netlist builder and verification computer system to generate HDL assignment statements. Chip level netlist generation module 340 provides instructions on the generation of the HDL code that instantiated each of the components. In one embodiment of the present invention, an instantiation list includes directions on the way each of the devices should be instantiated and connected. Figure 7 is a table comprising one exemplary implementation of instructions for directing a SoC netlist builder and verification computer system to perform the generation of the HDL code that instantiates each of the components.
In one embodiment of the present invention, verification module 350 automatically provides test bench stimuli information used to verify the functionality of a design. The verification module 350 automatically creates a declaration of a device under test (DUT) including a definition of the internal signals, a component declaration of the DUT with constant definitions (e.g., a clock period duration), values for DUT input ports, and models of external components for functional environmental testing. The following table 3 includes pseudo code utilized in one exemplary implementation of a present invention computer instruction parameter application module.
Table 3
create_testbench ()
{ open_testbench_for_writing (); create_signal_declaration_based_on_external_port_interface () ; instantiate_chipcore () ; for (device in devicejist)
{ if ( responder_model_for_device_exists () )
{ instantiate_responder_model () ; } if ( parameterized_test_code_for_device_exists () )
{ / * Using the parameterized test code and the device options, generate the device specific test code * / generate_device_specific_test_code_based_one_device_options () ; } } instantiate_internal_bus_monitors () ; }
The present invention facilitates the automated creation of logical verification environments including chip models and system level models for testing operations.
In one embodiment of the present invention, a user interface module
(e.g., user interface module 310) includes an initial GUI that is presented to a user when an SoC netlist builder and verification application or program is initiated (e.g., booted up). The initial GUI requests the user to enter some high level architectural information. In one exemplary implementation the user enters information regarding the general processing environment (e.g., pentium, ARM, etc.) or primary buses (e.g., PCI, ASB, etc.). Depending upon the information entered in the initial GUI, the present invention SoC netlist builder and verification system and method presents the user with an SoC netlist builder and verification main GUI. The display presented by the SoC netlist builder and verification main GUI is based upon information provided by an expert system module (e.g., expert system module 330). The expert system module retrieves information from previous manufacturing and verification operations associated with similar designs for presentation to the user via the main GUI. Presenting the user with this information facilitates the reduction of manual data entry and provides expertise information from prior manufacturing operations.
In one embodiment of the present invention, an SoC netlist builder and verification system and method utilizes the SoC netlist builder and verification main GUI as an initial GUI when the application is initiated. The SoC netlist builder and verification main GUI comprises several sections identifying relatively high level descriptions of devices and characteristics of an architecture provided by an expert system module based upon a high level configuration indication provided by the user in the initial GUI. A user indicates if they wish to select or modify devices or characteristics included in a particular high level description section (e.g., a user click on an edit button in a ASB device section). After users confirm they are satisfied with the configuration, circuit blocks and parameters supplied by the expert system module, the user instructs the SoC netlist builder and verification system and method to perform compile operations and evaluation operations. The SoC netlist builder and verification system and method automatically develops a SoC netlist description of the desired SoC, a
Figure 8 illustrates SoC netlist builder and verification main GUI 800, one embodiment of a present invention GUI. The GUI is presented to a user in a dialogue box format utilizing a main GUI 800 comprising control buttons, SoC builder sections, tabs and dialogue boxes. The control buttons of main GUI 800 comprise file dropdown button 811, edit dropdown button 812, help dropdown button 813, compile button 851, evaluate button 852 and close button 853. The tabs of SoC netlist builder and verification main GUI 800 comprises edit buttons 841 through 845. The SoC builder sections available in one embodiment of SoC netlist builder and verification main GUI 800 comprise general categories provided by an expert system module, including ASB devices 820, APB Devices 821, System Resources 822, Deliverables Options 823, User IOs, 824 and Component Name /Output File 825. The control buttons permit a user to direct commands from the GUI to other parts of the computer system, and the tabs permit a user to access subwindows by clicking (e.g. with a cursor directing device) on a different tab to move between subwindows. In one embodiment a popup box or help balloon appears to provide further options with respect to the edit tab. In one exemplary implementation, a help balloon 871 comprising the text 'parameterize ASB devices" appears when a cursor points at edit tab 841.
Figure 9 is an illustration of SoC netlist builder and verification device GUI 900 included in one embodiment of the present invention. In one exemplary implementation, an SoC netlist builder and verification device GUI 900 facilitates user input associated with an external SoC interface design (e.g., for an external SDRAM device) for an ASB device. SoC netlist builder and verification ASB device GUI 900 comprises descriptions and parameters supplied by an expert system module, including external SDRAM Interface selection section 920 and address range selection section 940. External SDRAM Interface selection section 920 and address range selection section 940 comprise features supplied by an expert system module. The automatically provided features are based upon extensive experience in design, manufacture and testing of a SoC interface design for an external SDRAM device. External SDRAM Interface selection section 920 enables a user to select whether a design includes an external SDRAM interface and the width of the external SDRAM interface. Address range section 940 enables a user to define if a selected SDRAM interface services a static or dynamic device and a starting and ending address of the external SDRAM device.
One embodiment of the present invention includes GUIs with predefined content supplied by an expert system module and organized to facilitate user input (e.g., architecture configuration, parameter selections, etc.). Figure 10 is an illustration of advanced peripheral bus (APB) GUI 1000 included in one exemplary implementation of the present invention. Advanced peripheral bus (APB) GUI 1000 comprises a list of APF device sections in easy to use format to facilitate user selection. The list of APB devices are automatically identified by a present invention expert system module as devices included in an APB system, including input/ output circuit blocks, controller circuit blocks, clock circuit blocks, memory circuit blocks, interface circuit blocks and configuration circuit blocks.
In one exemplary implementation, advanced peripheral bus (APB) GUI 1000 comprises APB based Watchdog Timer Parameters Section 1010, APB Based Timer Parameters Section 1011, APB Based UART/IrDA Parameters Section 1012, APB Based I2C Parameters Section 1013, APB Based USB Device Parameters Section 1014, APB Based GPIO Parameters Section 1015, APB
Based RTC Parameters Section 1016, APB Based BBRAM Parameters Section 1017, APB Based Interrupt Controller Parameters Section 1018, Security Blocks Section 1019, User Defined Config Register Groups Section 1020, and APB Based User Block Interface Parameters Section 1022. Each of the sections includes an edit button. If a user selects an edit button a device parameterization subwindow appears. One embodiment of advanced peripheral bus (APB) GUI 1000 also includes title section 1005, close button 1022 and help button 1023. In one embodiment of the present invention a device parameterization subwindow includes a device paramaterization GUI. Figure 11 is a block diagram illustration of timer device paramaterization GUI 1100, one embodiment of a present invention device paramaterization GUI. Timer device paramaterization GUI 1100 comprises title section 1110, timer device identification section 1120, edit button 1131, delete button 1132, new button 1133 and help button 1132. Timer device identification section 1120 comprises an identification of possible timers included in a design. Delete button 1132 permits a user to delete a timer and new button 1133 permits a user to add a new timer. If a user clicks on edit button 1131 a detailed device paramaterization GUI is presented to the user. Figure 12 is a block diagram illustration of detailed timer paramaterization GUI 1200, one embodiment of a present invention detailed device paramaterization GUI. Detailed timer paramaterization GUI 1200 comprises title section 1210, number of capture registers section 1231, number of match registers section, match registers generate interrupt section 1233, close button 1240 and help button 1241. A user clicks on edit button 1251 to change the number of capture registers and edit button 1252 to change the number of match registers 1232. A user clicks on No button 1253 or Yes button 1254 to indicate if a match register generates and interrupt. In one embodiment of the present invention a SoC netlist builder and verification computer system and method includes an external pin GUI. An external pin GUI facilitates user input of information associated with an external pin. In one exemplary implementation of the present invention an external pin GUI facilitates modification of general purpose input/output (GPIO) parameterization and pin muxing features. The present invention does not perform automated design of external pin mulitplexing. The present invention does permit user definition of external pin multiplexing status.
Figure 13 is a block diagram illustration of external pin GUI 1300. External pin GUI 1300 comprises title section 1310, GPI section 1320, external interrupt section 1330, pin muxing section 1340, close button 1351 and help button 1352. A user indicates if the design includes a GPIO device by selecting yes button 1322 and indicates it does not include a GPIO device by clicking no button 1321 of GPI section 1320. If a design includes a GPIO device the present invention external pin GUI further facilitates easy parameterization by providing dialogue box 1323 for the number of input only GPIO bits, dialogue box 1324 for the number of bi-directional GPIO bits, and dialogue box 1325 for the number of output only GPIO bits. A user indicates if a design includes an external interrupt by clicking yes button 1332 and indicates a design does not include an external interrupt by clicking no button 1331. If a design includes an external interrupt the present invention external pin GUI further facilitates easy parameterization by providing dialogue box 1333 for the number of external inputs. Pin muxing section 1340 facilities user selection of external pin muxing by offering a selection of dropdown choice of three selection in dialogue box 1341.
The preceding discussion of GUI's provided by a SoC netlist builder and verification computer system illustrates the extensive automation provided an expert system module of the present invention provides. The expert system module automatically provides a significant amount of information associated with circuit block descriptions and parameters. With each progressive delve into the design layers (e.g., from SoC netlist builder and verification main GUI 800 to SoC netlist builder and verification device GUI 900 to advanced peripheral bus (APB) GUI 1000, etc.) the SoC netlist builder and verification computer system automatically provides progressively more detailed information. The expert system module of the SoC netlist builder and verification computer system also automatically supplies a significant amount of appropriate parameters. Thus, a user is automatically prompted with a significant amount of previously designed, manufactured and verified design information in an easy to use point and click format without having to remember or expend cognitive intellectual energy developing the design details. An SoC netlist builder and verification system and method of the present invention provides a variety of deliverables including a standardized directory structure, a simulatable chip level model, environment model, hard macros, test bench deliverables, documentation (e.g., in MIF and TXT format), and C-Shell scripts. In one exemplary implementation, the standardized directory structure includes directories for chip designs, test bench, simulation models, tests etc. A simulatable chip level model includes block level RTLs generated from a design repository, block level synthesis scripts, chip core connectivity, top level RTL for the chip, top level synthesis scripts and top level timing analysis scripts. The top level RTL for the chip includes IOs generated via a do ring compiler. Based on parameterization of IOs, a present invention SoC netlist builder and verification system and method also automatically inserts boundary scan features and a test access port (TAP) controller. Top level scripts for scan insertion and scan simulation are also generated. In one exemplary implementation of the present invention, external interfaces are pinned out and it is left to the user to perform any desired multiplexing of the interfaces.
The test bench deliverables include, a test bench based on the parameterized choice of interfaces, responder models based on the parameterization, C-code tests to test the interfaces and connectivity based on the parameterized address map, interface to a design integrator (simulation and synthesis ready), hierarchical and recursive "Makefiles" for compilation for RTL and gate level models, and scripts to help generation of new tests. The documentation includes documentation on chip IOs, parameterized feature list, parameterized address map, parameterized block diagrams, estimated gate counts, interface to a die size estimator tool, C-Shell scripts, C- shell scripts to regenerate blocks from reuse library, C-shell scripts to compile each of the blocks from the top level for simulations, "Makefiles" for compiling the entire design for simulation, and C-shell scripts to perform a bottom up synthesis for all the blocks and then for the top level to create a layout ready netlist.
Figure 14 is a block diagram illustration of sample input/output report 1400 produced by one embodiment of the present invention. Sample input/output report 1400 comprises a title section 1410, reporting section 1421, Chip IOs button 1422, Close button 1423, Name column 1431, Type Column 1432, Width Column 1434, Multiplexing Column 1435 and comment column 1436. Name column 1431 includes the identifying name of an IO. Type Column 1432 includes a description of an IO type. Width Column 1434 indicates an IO width. Multiplexing Column 1435 indicates if an IO is multiplexed. Comment column 1436 provides additional information associated with an IO. One exemplary implementation of sample input/ output report 1400 includes IO summarizing information (e.g., total ins, total outs, total inouts, total IOs, total powers (pwrs), total pins, etc.). In one embodiment of the present invention, sample input/output report 1400 is exportable to MS Excel.
In one embodiment of the present invention, SoC netlist builder and verification computer system 100 generates a system architecture schematic for an IC. In one exemplary implementation SoC netlist builder and verification computer system 100 generates an advanced RISC machine (ARM) ASIC that operates in accordance with a reduced instruction set computer architecture (RISC). In one exemplary implementation, user interface module generates a GUI display of the 310 system architecture schematic for an IC.
Figure 15 is a block diagram of ARM ASIC system architecture 1500, one embodiment of system architecture schematic generated by the present invention. ARM ASIC system architecture 1500 comprises advanced system bus (ASB) circuit blocks "connected" to ASB bus 1571, advanced peripheral bus (APB) circuit blocks "connected" to APB bus 1572 and miscellaneous control circuit blocks. The ASB circuit blocks include ARM Processor (e.g., ARM7CS8) circuit block 1511, user ASB circuit block 1512, static device controller (SDC) circuit block 1513, external bus interface unit (EBIU) circuit block 1514, advanced system bus to peripheral component interconnect (ASB2PCI) bridge circuit block 1515, synchronous dynamic random access memory SDRAM controller (SDRAMC) circuit block 1527, internal static random access memory (ISRAM) circuit block 1521, internal static read only memory (ISROM) circuit block 1523, address decoder (adec) circuit block 1524, and arbiter circuit block 1525. The advanced peripheral bus (APB) circuit blocks include general peripheral input output (GPIO) circuit block 1541, watch dog circuit block 1542, interrupt controller (INTC) circuit block 1543, real time clock (RTC) circuit block 1544, battery backed random access memory (BBRAM) circuit block 1545, timer circuit block 1551, universal asynchronous receiver transmitter (UART) 1552, i2c interface 1553, universal serial bus (USB) 1554 - phase lock loop (PLL) 1555, and user APB device 1558. Miscellaneous control circuit blocks comprise clock logic circuit block 1571, reset logic circuit block 1572, phase lock loop (PPL) circuit block 1573, clock tree circuit block 1574, APB configuration circuit block 1558, user configuration circuit block 1557 and ASIC IOs 1581 through 1594.
Figure 16 is a flow chart of SoC netlist builder and verification computer method 1600, one embodiment of the present invention. SoC netlist builder and verification computer method 1600 is a computer implemented method that facilitates SoC design and verification by providing significant automation of a number of operations including circuit block integration, parameter assignment, addition of architecture features, verification testing and production test support. SoC netlist builder and verification computer method 1600 enables a user to convey information conveniently in a manner that minimizes the amount of data a user has to enter manually while adequately describing features of the circuit being designed or analyzed. SoC netlist builder and verification computer method 1600 facilitates the automated provision of design features based upon prior experience associated with actual SoC hardware design, manufacturing and verification. The present invention facilitates the automated creation of netlist description files and logical verification environments including chip models and system level models for testing operations.
In Step 1610 a user friendly GUI is provided (e.g., by user interface module 310) to assist the easy entry and modification of user selections and parameters. The GUI presents SoC netlist building and verification information in a convenient and easy to use manner. In one embodiment of a present invention, standardized circuit blocks and parameterization options are presented (e.g., by a GUI). In another embodiment, batch code text is interpreted by SoC netlist builder and verification computer method 1600.
In step 1620 a parameter application process is performed. In one embodiment of the present invention, an underlying structure list is created based upon information supplied by a user via the GUI provided in step 1610. In one embodiment of the present invention, a parameter application process initializes a corresponding string for each selected circuit block (e.g., a timer). For example, a parameter application command line string required to generate the selected block circuit (e.g., a timer) from a hardware description language (e.g., HDLi) is initialized and operations for a circuit block (e.g., a timer) that a user selected are processed. An instance specific copy of the parameterizable command line string is made. A parameter application process then updates the specific copy of the parameterizable command line string with parameters received for that particular instance. The parameter application process then appends the circuit block attributes to other files. In one exemplary implementation, a circuit block (e.g., a clock) directory is appended to a list of libraries and also appended to a list of categorized devices (e.g., APB devices). In one embodiment of the present invention, the gate count of a circuit block is added to the list of gate counts for the IC.
In one embodiment of the present invention, the parameter application process generates an internal integration list associated with the circuit block. The internal integration list is utilized in the processing of other routines included in SoC netlist builder and verification computer method 1600. In one exemplary implementation, an internal integration list includes internal signals definitions (e.g., sgnl_name), any assignments or initializations that must be performed for proper circuit operation (e.g., assign_list), clocks (e.g., clk_dst_name), interrupts (e.g., intr_src) and resets (e.g., rst_dst_name) coupled to the device, and how the device is instantiated and coupled in the chip level netlist (e.g., info). The generation of these lists is based on the user parameterization of the device. In one embodiment of the present invention, SoC netlist builder and verification computer method 1600 also executes an extraction process in step 1620. The extraction process extracts circuit block descriptions from a storage location based upon the parameterized information received from the parameter application process. In one embodiment of the present invention, an SoC netlist builder and verification method utilizes a hardware description language (e.g., HDLi) tool to extract a circuit block (e.g., a timer) using a parameterized command line string provided by the parameter application process. In one embodiment of the present invention, circuit block information is extracted from a database comprising circuit block descriptions of previously utilized and tested circuit blocks (e.g., verified in silicon). In one embodiment of the present invention, an extraction process also facilitates incorporation of non standard custom designed circuit block. For example, SoC netlist builder and verification computer method 1600 provides hooks and handles for a user to assist incorporation of specially designed circuit blocks into a design.
In step 1630, an expert process is performed that facilitates SoC netlist construction and verification. The expert process includes receiving high level configuration information from step 1610, determining circuit block descriptions included in the indicated configuration, and providing parameters associated with the circuit block descriptions. The expert process utilizes extensive information associated with a given architecture and expert system algorithms that apply probabilities associated with certain features of a SoC to determine circuit block descriptions and parameters included in a design. The expert system module In one exemplary implementation the expert process retrieves the circuit block descriptions and parameter information from a storage medium (e.g., a data base). In one embodiment of the present invention, the expert process relies upon information associated with previous experience building a SoC to determine circuit block descriptions included in the configuration and to provide parameters associated with the circuit block descriptions.
In step 1640, SoC netlist builder and verification computer method 1600 implements a chip level netlist generation process. A chip level netlist generation process creates an IC core level netlist in a desired location based on data structures that were populated in other routines of an SoC netlist builder and verification computer method 1600 of the present invention. In one embodiment of the present invention, chip level netlist generation process creates hardware description language VHDL or Verilog code that will automatically perform the task of "connecting" circuit blocks together. In one exemplary implementation of the present invention, the VHDL or Verilog code is based upon a signal name list (e.g., sgnl_name list) comprising a list of internal signals that are generated by SoC netlist builder and verification computer method 1600 to achieve proper connectivity. In one embodiment of the present invention, chip level netlist generation process provides signal declarations. The chip level netlist generation process generates required HDL continuous assignment statements in accordance with an assignment list (e.g., assign_list) and based upon an instantiation list (e.g., inst_list) chip level netlist generation process generates the HDL code that wilHnstantiate each of those components. In one embodiment of the present invention an instantiation list includes directions on the way a device is instantiated and connected.
In step 1650, a SoC design is verified. Step 11650 includes a verification process that automatically generates a test bench and a logical verification environment including simulation models (e.g., a chip model and a system level model). In one embodiment of the present invention, the verification process automatically provides test bench stimuli information used to verify the functionality of a design. In one embodiment of the present invention, manufacturing testing information is also supplied. For example the verification process creates a declaration of a device under test (DUT) including a definition of the internal signals, a component declaration of the DUT with constant definitions (e.g., a clock period duration), values for DUT input ports, and models of external components for functional environmental testing.
Figure 17 is a flow chart of SoC netlist builder and verification computer method 1700, one embodiment of the present invention. SoC netlist builder and verification computer method 1700 also facilitates generation of an IC netlist and associated files (e.g. a standardized directory structure for IC designs, test bench, simulation models, tests, etc.). SoC netlist builder and verification computer method 1700 is an iterative process involving functions performed by a present invention integrated circuit (IC) SoC netlist builder and verification system and method based upon inputs from a user. A present invention SoC netlist builder and verification system and method facilitates communications between a user and an SoC netlist builder and verification system and method.
In step 1710, system specification information is received. In one embodiment of the present invention system specification information is received via a present invention GUI. A user begins by defining a design at a high level and setting forth some basic parameters which are received in step
1710.
In step 1720 standardized circuit block information is reused. Based upon the information provided by a user in step 1710, SoC netlist builder and verification system method 1700 retrieves appropriate information from
storage sources such as library or information folders. In one embodiment of the present invention standardized circuit block information is included in a
database of silicon verified circuit block descriptions. In step 1730 information associated with custom designed circuit blocks is received.
In step 1740 test bench integration is performed. SoC netlist builder and verification method 1700 processes the information and generates a detailed description of a circuit or system being designed and verified.
In step 1750, tests are automatically written. The tests are based upon user supplied information associated with the chip configuration coupled with tests that are reconfigured. In one embodiment of the present invention the test comprises test models that include stimuli in a work station environment.
In step 1760 a determination is made if a proposed circuit design passes a test.
In step 1770 the circuit blocks are synthesized and top level netlist is created. The textual descriptions generated by SoC netlist builder and verification computer method 1700 are utilized in a synthesis process that turns the conceptual textual description of the design into a "logical gate" description. For example, a register transfer level (RTL) functional description file with an implied architecture is translated into a gate level description. The present invention approach of having a centralized SoC building and verification environment provides numerous advantages. For example, the present invention facilitates much faster time to market and reduction of manual errors associated connecting circuit blocks, creating IOs, test benches etc. The present invention assists standardized chip building methodology and abstraction of a circuit block behavior so that the user does not have to be buried in the myriad of details associate with a description of a device. The present invention facilitates and automate creation of specifications and allows the user to easily experiment with different architectures for gate counts, die sizes, and power estimates for different chip architectures.
Thus, the present invention provides a method to save time, effort, and the risk of associated with introducing human errors in putting a IC chip together. The present invention is a system and method that facilitates efficient and effective creation and modification of electrical circuit designs utilizing existing circuit block designs. The integrated circuit (IC) SoC netlist builder and verification system and method of the present invention automates numersous design and verification operations including automated provision of circuit block descriptions and application of parameters, automated development of test benches and test environments and reduction of data a user has to enter manually to adequately describe features of the circuit being designed or analyzed. The present invention system and method also facilitates modification of IC design features and economically generates circuit description files that assist IC design and analysis.
The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents.

Claims

What is claimed is:
1 In a computer system, a system on a chip netlist builder and verification computer method for facilitating creation and modification of IC designs utilizing existing circuit block designs, said method comprising the steps of: providing a user friendly interface; performing a parameter application process; executing an expert system process; implementing a chip level netlist generation process including core netlist and
I/O pin netlists; and verifying a system on a chip design automatically.
2 The system on a chip netlist builder and verification computer method of Claim 1 further comprising the steps of: assisting easy entry and modification of user selections and parameters; presenting information regarding operations of said SoC netlist builder and verification method to a user; and facilitating selection of standardized circuit blocks and parameterization of said selected circuit blocks.
3 The system on a chip netlist builder and verification computer method of Claim 1 further comprising the steps of:
creating an underlying structure list; interpreting information and commands entered by a user; and performing iterations required to generate an underlying structure list
4 The system on a chip netlist builder and verification computer method of Claim 1 further comprising the steps of: determining which circuit block is selected by a user; initializing a corresponding string; processing operations for a circuit block a user has requested; making an instance specific copy of the parameterizable command line string; and updating a copy of the parameterizable command line string with user indicated parameters received for a particular instance.
5 The system on a chip netlist builder and verification computer method of Claim 1 further comprising the steps of: appending the circuit block attributes to other files; and adding the gate count of a circuit block to a list of gate counts for an IC.
6 The system on a chip netlist builder and verification computer method of Claim 1 further comprising the steps of: generating an internal integration list associated with the circuit block; and
utilizing said internal integration list in the processing of other routines included in an SoC netlist builder and verification computer method.
7 The system on a chip netlist builder and verification computer method of Claim 1 further comprising the step of extracting circuit block descriptions from a storage location based upon the applied parameter information.
8 The system on a chip netlist builder and verification computer method of Claim 1 further comprising the steps of: creating an IC core level netlist in a desired location based on data structures that were populated in other routines of said SoC netlist builder and verification computer method; and generating hardware description language VHDL or Verilog code that automatically performs the task of coupling circuit blocks together.
9 The system on a chip netlist builder and verification computer method of Claim 1 further comprising the steps of: providing signal declarations; producing required HDL assign statements in accordance with an assignment list; and generating the 'HDL code that will instantiate each of those components based upon an instantiation list. 10 A system on a chip netlist builder and verification computer method comprising the steps of: receiving system specification information; reusing standardized circuit block information; performing test bench integration; determining if a proposed circuit design passes a test; synthesizing circuit blocks; and creating a top level netlist.
1 1 The system on a chip netlist builder and verification computer
method of Claim 10 further comprising the step of receiving information associated with custom designed circuit blocks.
12 The system on a chip netlist builder and verification computer method of Claim 10 further comprising the step of writing a test.
13 The system on a chip netlist builder and verification computer method of Claim 10 further comprising the step of facilitating communications from a user regarding circuit block selection and parameterization.
14 The system on a chip netlist builder and verification computer method of Claim 10 in which system specification information is received via a present invention GUI.
15 The system on a chip netlist builder and verification computer method of Claim 10 further comprising the step of retrieving appropriate information from storage sources.
16 The system on a chip netlist builder and verification computer method of Claim 10 further comprising the steps of: generating hardware description language (HDL) files describing connections between building block circuit descriptions; and creating external input and output hardware description language (HDL) files.
17 A system on a chip netlist builder and verification computer system comprising: a user interface module for providing user friendly and convenient interfaces that facilitate easy entry and modification of user selections and parameters; an expert system module for analyzing information supplied by said user module and automatically providing SoC building and verification data to said parameter application module; a parameter application module for applying parameters and developing command line strings based upon information received from said user interface and said expert system; a chip level netlist generation module for automatically generating a chip level netlist based upon information received from said user interface module and said expert system module; and a verification module for generating a test bench and a logical verification environment automatically including simulation models based upon information interpreted by said parameter application module.
18 The system on a chip netlist builder and verification computer system of Claim 17 wherein said parameter application module creates directions passed to other modules for execution.
19 The system on a chip netlist builder and verification computer system of Claim 18 wherein said directions passed to other modules for execution includes command lines.
20 The system on a chip netlist builder and verification computer system of Claim 17 wherein said SoC building and verification data provided by said expert system is retrieved from a storage medium comprising a database of building block circuit description files.
21 The system on a chip netlist builder and verification computer system of Claim 17 wherein said chip level netlist generation module includes the instantiation of internal IC devices and connections between the circuit blocks for internal signals.
22 The system on a chip netlist builder and verification computer system of Claim 17 wherein said user interface module generates user friendly graphical user interfaces (GUIs) to facilitate selection of standardized circuit blocks and parameterization, of the selected circuit blocks.
PCT/US2001/019614 2000-06-23 2001-06-20 System and method relating to verification of integrated circuit design WO2002001424A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/602,422 US7100133B1 (en) 2000-06-23 2000-06-23 Computer system and method to dynamically generate system on a chip description files and verification information
US09/602,422 2000-06-23

Publications (3)

Publication Number Publication Date
WO2002001424A2 WO2002001424A2 (en) 2002-01-03
WO2002001424A9 true WO2002001424A9 (en) 2002-12-27
WO2002001424A3 WO2002001424A3 (en) 2003-03-27

Family

ID=24411284

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/019614 WO2002001424A2 (en) 2000-06-23 2001-06-20 System and method relating to verification of integrated circuit design

Country Status (2)

Country Link
US (1) US7100133B1 (en)
WO (1) WO2002001424A2 (en)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
EP1376413A1 (en) * 2002-06-25 2004-01-02 STMicroelectronics S.r.l. Test bench generator for integrated circuits, particularly memories
US7574669B1 (en) * 2002-10-08 2009-08-11 Microsoft Corporation User interface control for navigating, selecting, and organizing document pages
US7831653B2 (en) * 2002-12-13 2010-11-09 Lsi Corporation Flexible template having embedded gate array and composable memory for integrated circuits
US7676788B1 (en) * 2003-03-25 2010-03-09 Electric Cloud, Inc. Architecture and method for executing program builds
US7584437B2 (en) * 2004-05-06 2009-09-01 Lsi Corporation Assuring correct data entry to generate shells for a semiconductor platform
US7404156B2 (en) * 2004-06-03 2008-07-22 Lsi Corporation Language and templates for use in the design of semiconductor products
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US20070006038A1 (en) * 2005-06-29 2007-01-04 Zhengrong Zhou Methods and apparatus using a hierarchical test development tree to specify devices and their test setups
US7509605B2 (en) 2005-12-12 2009-03-24 International Business Machines Corporation Extending incremental verification of circuit design to encompass verification restraints
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
JP5114877B2 (en) * 2006-06-27 2013-01-09 富士通株式会社 Design data creation method, design data creation device, and design data creation program
US7669157B1 (en) 2006-09-05 2010-02-23 Altera Corporation Method and apparatus for performing incremental compilation using top-down and bottom-up design approaches
US7725524B2 (en) * 2006-10-03 2010-05-25 Electric Cloud, Inc. Process automation system and method having a hierarchical architecture with multiple tiers
US8042089B2 (en) * 2006-10-03 2011-10-18 Electric Cloud, Inc. Process automation system and method employing multi-stage report generation
WO2008109481A2 (en) * 2007-03-05 2008-09-12 Intrinsity, Inc. Generating test benches for pre-silicon validation of retimed complex ic designs against a reference design
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8040266B2 (en) * 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8788959B1 (en) 2007-04-25 2014-07-22 Cypress Semiconductor Corporation System and method for monitoring a target device
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US8065641B2 (en) * 2008-09-02 2011-11-22 International Business Machines Corporation Automatically creating manufacturing test rules pertaining to an electronic component
US20100235803A1 (en) * 2009-03-16 2010-09-16 Lara Gramark Method and Apparatus for Automatically Connecting Component Interfaces in a Model Description
US8898618B2 (en) * 2009-03-26 2014-11-25 Altera Corporation Interactive simplification of schematic diagram of integrated circuit design
US9069644B2 (en) * 2009-04-10 2015-06-30 Electric Cloud, Inc. Architecture and method for versioning registry entries in a distributed program build
US8324924B2 (en) * 2009-10-20 2012-12-04 David Scott Landoll Post-programming functional verification for programable integrated circuits
US9217772B2 (en) * 2012-07-31 2015-12-22 Infineon Technologies Ag Systems and methods for characterizing devices
US8533647B1 (en) 2012-10-05 2013-09-10 Atrenta, Inc. Method for generating an integrated and unified view of IP-cores for hierarchical analysis of a system on chip (SoC) design
CN105468797B (en) * 2014-08-22 2019-10-22 深圳市中兴微电子技术有限公司 A kind of information processing method and device
US10061577B2 (en) 2014-10-14 2018-08-28 Electric Cloud, Inc. System and method for optimizing job scheduling within program builds
US10726162B2 (en) * 2014-12-19 2020-07-28 Intel Corporation Security plugin for a system-on-a-chip platform
US10536553B1 (en) * 2015-09-04 2020-01-14 Cadence Design Systems, Inc. Method and system to transfer data between components of an emulation system
CN105653509B (en) * 2015-12-24 2019-04-26 北京经纬恒润科技有限公司 A kind of document processing method and device
CN108228965B (en) * 2017-12-06 2022-01-11 北京物芯科技有限责任公司 Simulation verification method, device and equipment for memory cell
CN110688269B (en) * 2019-09-12 2023-03-14 武汉极目智能技术有限公司 RTL code automatic verification device and method adopting AXI bus interface
CN112733490A (en) * 2021-01-07 2021-04-30 苏州浪潮智能科技有限公司 System-level verification method and system of chip and related device
CN113076710B (en) * 2021-06-07 2021-08-20 上海国微思尔芯技术股份有限公司 Clock signal global synchronization and division verification method and device, electronic equipment and storage medium
US11907634B2 (en) 2021-09-01 2024-02-20 International Business Machines Corporation Automating addition of power supply rails, fences, and level translators to a modular circuit design
US20230070516A1 (en) * 2021-09-07 2023-03-09 International Business Machines Corporation Logical clock connection in an integrated circuit design
US20230074528A1 (en) * 2021-09-07 2023-03-09 International Business Machines Corporation Iterative design of an integrated circuit design
CN114968864B (en) * 2022-07-28 2022-10-25 飞腾信息技术有限公司 Verification environment construction method, chip verification method and system
CN115470752B (en) * 2022-09-22 2023-07-14 沐曦科技(北京)有限公司 Chip function verification system based on trace file
CN115630593B (en) * 2022-11-11 2023-03-14 摩尔线程智能科技(北京)有限责任公司 Method and device for generating verification information data
CN116227393A (en) * 2023-05-06 2023-06-06 上海励驰半导体有限公司 Verification method, verification device, electronic equipment and storage medium
CN116562204B (en) * 2023-07-12 2023-09-22 英诺达(成都)电子科技有限公司 Chip verification method and device, electronic equipment and computer readable storage medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9215320D0 (en) * 1992-07-18 1992-09-02 Int Computers Ltd Configuration mechanism for a computer system
US5841663A (en) * 1995-09-14 1998-11-24 Vlsi Technology, Inc. Apparatus and method for synthesizing integrated circuits using parameterized HDL modules
US6023565A (en) * 1996-03-29 2000-02-08 Xilinx, Inc. Method for configuring circuits over a data communications link
US5903475A (en) * 1996-07-18 1999-05-11 Lsi Logic Corporation System simulation for testing integrated circuit models
GB2321322B (en) * 1996-10-28 2001-10-10 Altera Corp Remote software technical support
EP1080434A1 (en) * 1998-05-29 2001-03-07 Cadence Design Systems, Inc. Method and apparatus for selecting ip blocks
US6370493B1 (en) * 1998-09-10 2002-04-09 Lsi Logic Corporation Simulation format creation system and method
EE200100189A (en) * 1998-09-30 2002-08-15 Cadence Design Systems, Inc. Block based development methodology
US6145073A (en) * 1998-10-16 2000-11-07 Quintessence Architectures, Inc. Data flow integrated circuit architecture

Also Published As

Publication number Publication date
US7100133B1 (en) 2006-08-29
WO2002001424A2 (en) 2002-01-03
WO2002001424A3 (en) 2003-03-27

Similar Documents

Publication Publication Date Title
US7100133B1 (en) Computer system and method to dynamically generate system on a chip description files and verification information
US5933356A (en) Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
US6026226A (en) Local compilation in context within a design hierarchy
US9064068B1 (en) Debuggable opaque IP
Kundert et al. Design of mixed-signal systems-on-a-chip
US5880971A (en) Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from semantic specifications and descriptions thereof
US6292931B1 (en) RTL analysis tool
US7340693B2 (en) System for designing re-programmable digital hardware platforms
US7865350B1 (en) Partitioning a model in modeling environments
US8639487B1 (en) Method for multiple processor system-on-a-chip hardware and software cogeneration
US8296699B1 (en) Method and system for supporting both analog and digital signal traffic on a single hierarchical connection for mixed-signal verification
US8181131B2 (en) Enhanced analysis of array-based netlists via reparameterization
WO1999042930A2 (en) Method and apparatus for logic synthesis
WO2007078915A2 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
JPH11513512A (en) Method of manufacturing digital signal processor
Shahdad An overview of VHDL language and technology
Hutchings et al. Designing and debugging custom computing applications
US20100049495A1 (en) Method and apparatus for the simultaneous multi-level and/or multi-simulator design optimization of electronic circuits
Casaubieilh et al. Functional verification methodology of Chameleon processor
Große et al. Efficient Automatic Visualization of SystemC Designs.
De Micheli Hardware/software co-design: Application domains and design technologies
US20040153301A1 (en) Integrated circuit development methodology
Kartika Analysis of “SystemC” design flow for FPGA implementation
Centomo et al. Automatic generation of cycle-accurate simulink blocks from hdl ips
Belous et al. Digital IC and System-on-Chip Design Flows

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CN JP KR

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
AK Designated states

Kind code of ref document: C2

Designated state(s): CN JP KR

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

COP Corrected version of pamphlet

Free format text: PAGES 1/16-16/16, DRAWINGS, REPLACED BY NEW PAGES 1/21-21/21; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP