Programming process for 3-level programming logic devices
AssigneeXilinx, Inc.
InventorsDavid A. Harrison, Abdul Malik
Life of this patent
Estimating the term…
Loading patent…
AssigneeXilinx, Inc.
InventorsDavid A. Harrison, Abdul Malik
Estimating the term…
A process of programming a programmable logic device (PLD) to carry out a specified logic function. The PLD contains three levels of logic implemented as a plurality of functional blocks, each with AND and OR planes, and a programmable interconnect matrix or logic expander carrying out AND logic. After providing such a PLD with specified size constraints and after specifying a logic function, the function is split or factored into subfunctions or factors. A Boolean factorization procedure chooses factors by replacing pairs of product terms in the first factor with their supercube and minimizing the number input terms and product terms required. Subfunctions or factors which are too large can be simplified by combining pairs of inputs in the interconnect matrix. The product terms of a subfunction or factor can be ordered according to the number of input terms they have and assigned to the functional blocks one at a time. Functional blocks which use many inputs or product terms per output can have some of their assigned subfunctions split so as to pack the PLD more densely. Split subfunctions or factors are recombined in the interconnect matrix. After assigning terms to functional blocks and the matrix, they are loaded into the PLD using a device programmer to configure the logic arrays in the PLD.
A process of programming a programmable logic device for carrying out a specified logic function, the programmable logic device to be programmed being of a type having multiple logic blocks, each logic block of said programmable logic device having input lines, output lines and successive configurable first and second arrays between said input lines and output lines for carrying out first and second levels of logic, said programmable logic device also having input pins, output pins and means, programmably combining selected output lines of said logic blocks, for carrying out a third level of logic, input lines to said logic blocks coupling to selected input pines of said programmable logic device and output lines from said means for carrying out the third level of logic coupling to selected output pins of said programmable logic device, the programming process comprising:
A process of programming a programmable logic device for carrying out a specified logic function, the programmable logic device to be programmed being of a type having multiple functional blocks, each functional block of said programmable logic device having a number of input lines, output lines and successive configurable first and second arrays between said input lines and output lines for carrying out first and second levels of logic, said programmable logic device also having input pins, output pins and a programmable interconnect matrix connected to said inputs and outputs of said functional blocks and to said input pins and output pins of said programmable logic device, said programmable interconnect matrix being configurable by means of programming so as to connect selected input pins of said programmable logic device to selected input lines of said functional blocks and to connect selected output lines of said functional blocks to selected output pins of said programmable logic device for carrying out a third level of logic, the programming process comprising:
A process of programming a programmable logic device for carrying out a specified logic function, the programmable logic device to be programmed being of a type having multiple functional blocks, each functional block having input lines, output lines and successive configurable first and second arrays between said input lines and output lines for carrying out first and second levels of logic, said programmable logic device also having input pins, output pins and a programmable interconnect matrix connected to said inputs and outputs of said functional blocks and to said input pins and output pins of said programmable logic device, said programmable interconnect matrix being configurable by means of programming so as to connect selected input pins of said programmable logic device to selected input lines of said functional blocks and to connect selected output lines of said functional blocks to selected output pins of said programmable logic device for carrying out a third level of logic, the programming process comprising:
A process of programming a programmable logic device for carrying out a specified logic function, the programmable logic device to be programmed being of a type having multiple functional blocks, each functional block having input lines, output lines and successive configurable first and second arrays between said input lines and output lines for carrying out first and second levels of logic, said programmable logic device also having input pins, output pins and a programmable interconnect matrix connected to said input lines and output lines of said functional blocks and to said input pins and output pins of said programmable logic device, said programmable interconnect matrix being configurable by means of programming so as to connect selected input pins of said programmable logic device to selected input lines of said functional blocks and to connect selected output lines of said functional blocks to selected output pins of said programmable logic device for carrying out a third level of logic, said programming process comprising:
Dependencies are inferred from the claim text.