Automatic code generation for integrated circuit design
First Claim
1. A computer-implemented method of designing an integrated circuit, comprising the steps of:
- a) establishing a central specification for the integrated circuit, the central specification designating a plurality of cores and a plurality of interconnections between the cores;
b) establishing a set of software lance models for the cores, each software language model implementing an internal algorithm of one of the cores;
c) establishing a set of hardware description language models for the cores, each hardware description language model implementing an internal logic of one of the cores;
d) generating software language core interconnection code for interconnecting the software language models according to the central specification, to generate a software language model of the circuit; and
e) generating hardware description language core interconnection code for interconnecting the hardware description language models according to the central specification, to generate a hardware description language model of the circuit.
15 Assignments
0 Petitions
Accused Products
Abstract
An integrated circuit is designed by interconnecting pre-designed data-driven cores (intellectual property, functional blocks). Hardware description language (e.g. Verilog or VHDL) and software language (e.g. C or C++) code for interconnecting the cores is automatically generated by software tools from a central circuit specification. The central specification recites pre-designed hardware cores (intellectual property) and the interconnections between the cores. HDL and software language test benches, and timing constraints are also automatically generated from the central specification. The automatic generation of code simplifies the interconnection of pre-existing cores for the design of complex integrated circuits.
131 Citations
48 Claims
-
1. A computer-implemented method of designing an integrated circuit, comprising the steps of:
-
a) establishing a central specification for the integrated circuit, the central specification designating a plurality of cores and a plurality of interconnections between the cores; b) establishing a set of software lance models for the cores, each software language model implementing an internal algorithm of one of the cores; c) establishing a set of hardware description language models for the cores, each hardware description language model implementing an internal logic of one of the cores; d) generating software language core interconnection code for interconnecting the software language models according to the central specification, to generate a software language model of the circuit; and e) generating hardware description language core interconnection code for interconnecting the hardware description language models according to the central specification, to generate a hardware description language model of the circuit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer-implemented method of designing an integrated circuit, comprising the steps of:
-
a) establishing a central specification for the integrated circuit, the central specification designating a plurality of cores and a plurality of interconnections between the cores; b) for each core, establishing hardware description language template code for an internal logic of the core; c) for each core, establishing software language template code for an internal algorithmic functionality of the core; d) processing the central specification to generate software language core interconnection code for interconnecting the software language template code for the cores, to generate a software language model of the circuit; and e) processing the central specification to generate hardware description language core interconnection code for interconnecting the hardware description language template code for the cores, to generate a hardware description language model of the circuit. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33)
-
-
34. A computer-implemented method of designing an integrated circuit, comprising the steps of:
-
a) establishing a central specification for the integrated circuit, the central specification designating a plurality of cores and a plurality of dedicated interconnections between the cores; b) generating a software language, functional model of the integrated circuit from the central specification and from a set of software language, functional models of the cores; c) generating a hardware description language model of the integrated circuit from the central specification and from a set of hardware description language models of the cores, the hardware description language model of the integrated circuit designating a set of intercore handshake connections and a set of corresponding intercore data connections; d) generating a test bench for the circuit from the hardware description language model and the software language model, for comparing a result of a software simulation of the circuit to a result of a hardware simulation of the circuit; and e) generating a set of logic synthesis constraints for the circuit from the central specification, for constraining a logic synthesis of the circuit. - View Dependent Claims (35, 36)
-
-
37. A computer-implemented method of designing an integrated circuit, comprising the steps of:
-
a) establishing a central specification for the integrated circuit, the central specification designating a plurality of cores and a plurality of interconnections between the cores; b) generating a software language, functional model of the integrated circuit from the central specification and from a set of software language, functional models of the cores; and c) generating a hardware description language model of the integrated circuit from the central specification and from a set of hardware description language models of the cores. - View Dependent Claims (38, 39)
-
-
40. A computer system programmed to perform the steps of:
-
a) establishing a central specification for the integrated circuit, the central specification designating a plurality of cores and a plurality of interconnections between the cores; b) generating a software language, functional model of the integrated circuit from the central specification and from a set of software language, functional models of the cores; and c) generating a hardware description language model of the integrated circuit from the central specification and from a set of hardware description language models of the cores. - View Dependent Claims (41, 42)
-
-
43. A computer-readable medium encoding instructions to perform the steps of:
-
a) establishing a central specification for the integrated circuit, the central specification designating a plurality of cores and a plurality of interconnections between the cores; b) generating a software language, functional model of the integrated circuit from the central specification and from a set of software language, functional models of the cores; and c) generating a hardware description language model of the integrated circuit from the central specification and from a set of hardware description language models of the cores. - View Dependent Claims (44, 45)
-
-
46. A circuit design apparatus comprising:
-
a) a storage device for establishing a central specification for the integrated circuit, the central specification designating a plurality of cores and a plurality of interconnections between the cores; b) software interconnection means for generating a software language, functional model of the integrated circuit from the central specification and from a set of software language, functional models of the cores; and c) hardware description language interconnection means for generating a hardware description language model of the integrated circuit from the central specification and from a set of hardware description language models of the cores. - View Dependent Claims (47, 48)
-
Specification