System for compiling algorithmic language source code for implementation in programmable hardware
First Claim
1. A configurable hardware module comprising:
- a first and a second programmable logic device (PLD), each said PLD comprising a plurality of programmable pins for connection to one or more devices and also comprising internal programmable interconnect and configurable logic, at least one of said programmable pins connectible through said programmable interconnect to said configurable logic;
a configurable bus directly connecting said first PLD and said second PLD, said configurable bus comprising a plurality of configurable bus lines, each of said configurable bus lines comprising a connection between a programmable pin on said first PLD and a corresponding programmable pin on said second PLD;
a private hardware resource directly connectible to said second PLD but not to said first PLD; and
a means for configuring said first PLD and said second PLD,whereby at least one of said configurable bus lines can be connected at a first time for communication between first configurable logic in said first PLD and first configurable logic in said second PLD to communicate a first signal andconnected at a second time for communication between second configurable logic in said first PLD and second configurable logic in said second PLD to communicate a second signal,where at least one of said first signal and said second signal or said first and second configurable logic in said first PLD or said first and second configurable logic in said second PLD are not the same.
6 Assignments
0 Petitions
Accused Products
Abstract
A configurable hardware system for implementing an algorithmic language program, including at least two programmable logic devices (PLD), a private hardware resource connectible to one PLD, and a programmable connection between PLDs, all of which may be configured as a module or distributed processing units (DPU). The private hardware resource may include a serial processing device such as a DSP, a PLD, a memory device, or a CPU. An extensible processing unit (EPU) can be built out of multiple DPUs, each connected to other modules by one or more of several buses. An N-bus (neighbor bus) connects a module to its nearest neighbor, an M-bus (module bus) connects a group of modules, and an H-bus (host bus) connects a module to a host CPU. The invention also includes a method of translating source code in an algorithmic language into a configuration file for implementation on one or more DPUs. The method includes four sequential phases of translation, a tokenizing phase, a logical mapping phase, a logic optimization phase, and a device specific mapping phase.
-
Citations
19 Claims
-
1. A configurable hardware module comprising:
-
a first and a second programmable logic device (PLD), each said PLD comprising a plurality of programmable pins for connection to one or more devices and also comprising internal programmable interconnect and configurable logic, at least one of said programmable pins connectible through said programmable interconnect to said configurable logic; a configurable bus directly connecting said first PLD and said second PLD, said configurable bus comprising a plurality of configurable bus lines, each of said configurable bus lines comprising a connection between a programmable pin on said first PLD and a corresponding programmable pin on said second PLD; a private hardware resource directly connectible to said second PLD but not to said first PLD; and a means for configuring said first PLD and said second PLD, whereby at least one of said configurable bus lines can be connected at a first time for communication between first configurable logic in said first PLD and first configurable logic in said second PLD to communicate a first signal and connected at a second time for communication between second configurable logic in said first PLD and second configurable logic in said second PLD to communicate a second signal, where at least one of said first signal and said second signal or said first and second configurable logic in said first PLD or said first and second configurable logic in said second PLD are not the same. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An extensible processing unit comprising:
-
a plurality of interconnected modules, a first and a second of said modules each comprising; a first and a second programmable logic device (PLD), each said PLD comprising a plurality of programmable pins for connection to one or more external devices and also comprising internal programmable interconnect and configurable logic, each of said programmable pins connectable through said programmable interconnect to said configurable logic; a configurable bus connecting said first PLD and said second PLD, said configurable bus comprising a plurality of configurable bus lines, each of said configurable bus lines comprising a connection between a programmable pin on said first PLD and a corresponding programmable pin on said second PLD; a private hardware resource directly connectible to said second PLD but not to said first PLD; and a means for configuring said first PLD and said second PLD; a second configurable bus comprising at least one configurable bus line connecting a programmable pin of a selected one of said first and said second PLDs of said first module to a programmable pin of a selected one of said first and said second PLDs of said second module, to allow communication between said PLDs; whereby a said configurable bus line can be connected at a first time for communication between first configurable logic in a first connected PLD and first configurable logic in a second connected PLD to communicate a first signal and connected at a second time for communication between second configurable logic in said first connected PLD and second configurable logic in said second connected PLD to communicate a second signal, where at least one of said first signal and said second signal or said first and second configurable logic in said first connected PLD or said first and second configurable logic in said second connected PLD are not the same. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method of translating source code comprising the steps of:
-
providing source code in an algorithmic language; and compiling said source code into a configuration file for implemenation on a processing device which supports in place; wherein said processing device is a programmable logic device (PLD) and is one of a plurality of PLDs connectable through a programmable I/O connection, said PLD having connected private storage means for operators and connected private storage means for data storage, plus a programmable I/O connection to another PLD; and wherein said private storage means for operators is a device, connectable to said PLD but to no other PLD, selected from the group consisting of a CPU, a serial computing device and a memory device; and wherein said private storage means for data storage is a device, connectable to said PLD but to no other PLD, selected from the group consisting of a CPU, a serial computing device and a memory device. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification