Algorithm-to-hardware system and method for creating a digital circuit
AssigneeHewlett-Packard Development Company, L.P.
InventorRichard J. Carter
Life of this patent
Estimating the term…
Abstract
A system and method is provided for creating a digital circuit, such as a configured FPGA or a VLSI chip. User code includes algorithm specifications having precisely defined operators and variables, data representation specifications and data communication specifications. The user code is compiled to create a digital circuit. For example, the compiled user code is used to generate either a hard-wired digital circuit or the configuration instructions for configuring a re-configurable digital circuit.
Claims33
A method of converting code to a hardware realization, the method comprising steps of:
- receiving user code including at least one algorithm specification, at least one data representation specification, and at least one data communication specification;
- compiling the user code, wherein the user code is used to create a digital circuit;
- and
- wherein the at least one algorithm specification, the at least one data representation specification, and the at least one data communication specification are independent and each of these specifications are modifiable without affecting the others.
A method of converting code to a hardware realization, the method comprising steps of:
- receiving user code, wherein the user code is an expression of a design of a digital circuit;
- identifying variables used in an operation in the user code, the operation including at least one operator;
- identifying a set of assumable values for each of the identified variables;
- calculating a set of assumable values for other variables in the user code holding the results of the operation based on the identified set of assumable values;
- and
- compiling the user code.
A system operable to create a digital circuit from user code, the system comprises:
- a compiler compiling the user code, the user code including at least one algorithm specification, at least one data representation specification, and at least one data communication specification;
- wherein
- the at least one algorithm specification, the at least one data representation specification, and the at least one data communication specification are independent, such that each of these specifications are modifiable without affecting the others.
A method of using software code to design a digital circuit, the method comprising:
- receiving high level programming language code representing an expression of a design of a digital circuit, wherein the code comprises:
- at least one algorithm specification including at least one variable and at least one operator;
- at least one data representation specification identifying a type of data representation for the at least one variable in the digital circuit;
- and
- at least one data communication specification identifying a data communication implementation in the digital circuit associated with the at least one variable;
- identifying variables used in an operation in the user code, the operation including the at least one operator;
- identifying a set of assumable values for each of the identified variables;
- calculating a set of assumable values for at least one other variable in the code holding a result of the operation based on the identified set of assumable values;
- and
- compiling the code, the compiled code being used to create the digital circuit.
Computer software embedded on a computer readable medium, the computer software comprising instructions performing:
- receiving user code including at least one algorithm specification, at least one data representation specification, and at least one data communication specification, wherein the at least one algorithm specification, the at least one data representation specification, and the at least one data communication specification are independent and each of these specifications are modifiable without affecting the others;
- and
- compiling the user code, wherein the user code is used to create a digital circuit.
An apparatus comprising:
- means for receiving user code including at least one algorithm specification, at least one data representation specification, and at least one data communication specification, wherein the at least one algorithm specification, the at least one data representation specification, and the at least one data communication specification are independent and each of these specifications are modifiable without affecting the others;
- and
- means for compiling the user code, wherein the user code is used to create a digital circuit.
Dependencies are inferred from the claim text.