IP Library Granted Patent US 7,210,116
Granted Patent B2
US 7,210,116 · App. 10/604,156 · Granted Apr 24, 2007

Method and apparatus for synthesizing a hardware system from a software description

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,210,116
App. No.
10/604,156
Granted
Apr 24, 2007
Kind
B2
Abstract

A method and an apparatus take software source code to synthesize a hardware platform for running the software. The method determines which processor is suitable for running the code and meeting the performance parameters determined by the user. The method also determines which hardware devices are accessed by software. If the hardware target is a semiconductor chip, the invention selects the appropriate IP and creates an HDL description of the chip. If the hardware target is a printed circuit board, the invention creates a schematic or netlist that includes the appropriate microprocessor, the various semiconductor chips, and the necessary interconnections.

Claims (80)

1. A method for selecting a processor for a system, using a description of system requirements and system desires, said method comprising:

a) reading a list of processors and their attributes from a processor attribute table,

b) reading processor requirements from a processor specification list,

c) eliminating all processors from said processor attribute table that do not meet said processor requirements,

d) reading processor desires from a processor specification list,

e) assigning a value of 0 to each remaining processor in said processor attribute table,

f) adding 1 to the value of each processor in said processor attribute table for each processor desire that is an attribute of said processor in said processor attribute table, and

f) ranking according to the assigned values, highest to lowest, all processors; and

h) presenting the ranked processors for selection that have not been eliminated from said processor attribute table.

2. A method for selecting a processor for a system, using a description of system requirements and system desires, said method comprising:

a) reading a list of processors and their attributes from a processor attribute table,

b) reading processor requirements from a processor specification list,

c) eliminating all processors from said processor attribute table that do not meet said processor requirements,

d) reading processor desires and corresponding values for each desire from a processor specification list,

e) assigning a value of 0 to each remaining processor in said processor attribute table,

f) adding the value of each processor desire to the value of each processor in said processor attribute table for each processor desire that is an attribute of said processor in said processor attribute table, and

g) ranking according to the assigned values, highest to lowest, all; and

h) presenting the ranked processors for selection processors that have not been eliminated from said processor attribute table.

3. A method of creating a description of a hardware system, said method comprising:

a) selecting a processor for a system, using a description of system requirements and system desires, said selecting comprising:

i) reading a list of processors and their attributes from a processor attribute table,

ii) reading processor requirements from a processor specification list,

iii) eliminating all processors from said processor attribute table that do not meet said processor requirements,

iv) reading processor desires from a processor specification list,

v) assigning a value of 0 to each remaining processor in said processor attribute table,

vi) adding 1 to the value of each processor in said processor attribute table for each processor desire that is an attribute of said processor in said processor attribute table,

vii) selecting the processor with the highest assigned value from said processor attribute table, and

viii) selecting hardware representation of said selected processor from a list of hardware representations of processors,

b) determining the corresponding hardware device for a given hardware driver software source code routine, said determining comprising:

i) searching for descriptions in each header of each hardware driver software source code routine,

ii) finding each corresponding hardware device that is named in said description in the header of each hardware driver software source code routine, and

iii) selecting an hardware representation of each corresponding hardware device from a list of hardware representations of hardware devices, and

c) combining said hardware representation of said selected processor with said hardware representation of each selected hardware device into a single hardware representation of an entire system.

4. The method of claim 3 wherein said hardware representation comprises a hardware description (HDL) language description.

5. The method of claim 3 wherein said hardware representation comprises a physical layout.

6. The method of claim 3 wherein said hardware representation comprises a circuit schematic.

7. The method of claim 3 wherein said hardware representation comprises a circuit netlist.

8. An apparatus for selecting a processor for a system, using a description of system requirements and system desires, comprising

a computer; and

a processor selection program on said computer, wherein said processor selection program comprises:

a) means for reading a list of processors and their attributes from a processor attribute table, and

b) means for reading processor requirements from a processor specification list,

c) means for eliminating all processors from said processor attribute table that do not meet said processor requirements,

d) means for reading processor desires and corresponding values for each desire from a processor specification list,

e) means for assigning a value of 0 to each remaining processor in said processor attribute table,

f) means for adding 1 to the value of each processor in said processor attribute table for each processor desire that is an attribute of said processor in said processor attribute table,

g) means for ranking according to the assigned values, highest to lowest, all processors that have not been eliminated from said processor attribute table; and

h) presenting the ranked processors for selection.

9. An apparatus for selecting a processor for a system, using a description of system requirements and system desires, comprising

a computer; and

a processor selection program on said computer, wherein said processor selection program comprises:

a) means for reading a list of processors and their attributes from a processor attribute table, and

b) means for reading processor requirements from a processor specification list,

c) means for eliminating all processors from said processor attribute table that do not meet said processor requirements,

d) means for reading processor desires and corresponding values for each desire from a processor specification list,

e) means for assigning a value of 0 to each remaining processor in said processor attribute table,

f) means for adding the value of each processor desire to the value of each processor in said processor attribute table for each processor desire that is an attribute of said processor in said processor attribute table,

g) means for ranking according to the assigned values, highest to lowest, all processors that have not been eliminated from said processor attribute table; and

means for presenting the ranked processors for selection.

10. An apparatus for creating a hardware description of a hardware system, comprising

a computer;

a hardware description creation program on said computer, wherein said hardware description creation program comprises:

a) means for selecting a processor for a system, using a description of system requirements and system desires, said means for selecting comprising:

i) means for reading a list of processors and their attributes from a processor attribute table,

ii) means for reading processor requirements from a processor specification list,

iii) means for eliminating all processors from said processor attribute table that do not meet said processor requirements,

iv) means for reading processor desires from a processor specification list,

v) means for assigning a value of 0 to each remaining processor in said processor attribute table,

vi) means for adding 1 to the value of each processor in said processor attribute table for each processor desire that is an attribute of said processor in said processor attribute table,

vii) means for selecting the processor with the highest assigned value from said processor attribute table, and

viii) means for selecting a hardware representation of said selected processor from a list of hardware representations of processors,

b) means for determining the corresponding hardware device for given hardware driver software source code routine, said means for determining comprising:

i) means for searching for a description in each header of each hardware driver software source code routine,

ii) means for finding each device that is named in said description, and

iii) means for selecting a hardware representation of each corresponding hardware device from a list of hardware representations of hardware devices, and

c) means for combining said hardware representation of said selected processor with said physical representation of each selected hardware device into a single physical representation of an entire system.

11. The apparatus of claim 10 wherein said hardware representation comprises a hardware description language (HDL) description.

12. The apparatus of claim 10 wherein said hardware representation comprises a physical layout.

13. The apparatus of claim 10 wherein said hardware representation comprises a circuit schematic.

14. The apparatus of claim 10 wherein said hardware representation comprises a circuit netlist.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2025
From: ZT IP, LLC
To: ZT IP II LLC
Reel/Frame 071668/0650 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2022
From: ZEIDMAN TECHNOLOGIES INC
To: ZT IP, LLC
Reel/Frame 059388/0196 →