This website uses cookies. By using this site, you consent to the use of cookies. For more information, please take a look at our Privacy Policy.
Home > FPGA Technical Tutorials > FPGAs: World Class Designs > FPGA Architectures > LOGIC BLOCKS

TABLE OF CONTENTS

Xilinx FPGA FPGA Forum

LOGIC BLOCKS

FONT SIZE : AAA

There are two fundamental incarnations of the programmable logic blocks  used to form the medium-grained architectures referenced in the previous section: MUX (multiplexer) based and LUT (lookup table) based.

MUX-based

As an example of a MUX-based approach, consider one way in which the  3-input function y = ( a & b ) | c could be implemented using a block containing only multiplexers ( Figure 2-2 ).

MUX-based logic blockpng

The device can be programmed such that each input to the block is p resented  with a logic 0, a logic 1, or the true or inverse version of a signal ( a , b ,  or c in this case) coming from another block or from a primary input to the  device. This allows each block to be configured in myriad ways to implement  a plethora of possible functions. (The x shown on the input to the central multiplexer in Figure 2-2 indicates that we don’t care whether this input is connected to a 0 or a 1.)

LUT-based

The underlying concept behind a LUT is relatively simple. A group of input signals is used as an index (pointer) to a lookup table. The contents of this table are  arranged such that the cell pointed to by each input combination contains the  desired value. For example, let’s assume that we wish to implement the function:

y= (a & b)/c 

This can be achieved by loading a 3-input LUT with the appropriate values.  For the purposes of the following examples, we shall assume that the LUT is  formed from SRAM cells (but it could be formed using antifuses, E2PROM,  or FLASH cells, as discussed earlier in this chapter). A commonly used technique is to use the inputs to select the desired SRAM cell using a cascade of  transmission gates as shown in Figure 2-3 . (Note that the SRAM cells will also be connected together in a chain for configuration purposes—that is, to load  them with the required values—but these connections have been omitted from  this illustration to keep things simple.)

A transmission gate-based LUT.png

If a transmission gate is enabled (active), it passes the signal seen on its  input through to its output. If the gate is disabled, its output is electrically disconnected from the wire it is driving.

The transmission gate symbols shown with a small circle (called a “ bobble ” or  a “ bubble ” ) indicate that these gates will be activated by a logic 0 on their control  input. By comparison, symbols without bobbles indicate that these gates will be  activated by a logic 1. Based on this understanding, it’s easy to see how different  input combinations can be used to select the contents of the various SRAM cells.

—Technology Trade-offs—

● If you take a group of logic gates several layers deep, then a LUT approach  can be very efficient in terms of resource utilization and input-to-output  delays. (In this context, “ deep ” refers to the number of logic gates between  the inputs and the outputs. Thus, the function illustrated in Figure 2-4 would  be said to be two layers deep.) However, one downside to a LUT-based  architecture is that if you only want to implement a small function—such  as a 2-input AND gate—somewhere in your design, you’ll end up using an  entire LUT to do so. In addition to being wasteful in terms of resources, the  resulting delays are high for such a simple function.

Required function and associated truth tablepng

● By comparison, in the case of MUX-based architectures containing a   mixture of MUXes and logic gates, it’s often possible to gain access to intermediate values from the signals linking the logic gates and the MUXes.  In this case, each logic block can be broken down into smaller fragments,  each of which can be used to implement a simple function. Thus, these  architectures may offer advantages in terms of performance and silicon utilization for designs containing large numbers of independent simple logic  functions.

● It is said that MUX-based architectures have an advantage when it comes  to implementing control logic along the lines of “ if this input is true and  this input is false , then make that output true … ” However, some of these  architectures don’t provide high speed carry logic chains, in which case  their LUT-based counterparts are left as the leaders in anything to do with  arithmetic processing.

Insider Info

In the past, some devices were created using a mixture of different LUT sizes, such  as 3-input and 4-input LUTs, because this offered the promise of optimal device  utilization. However, one of the main tools in the design engineer’s treasure chest  is logic synthesis, and uniformity and regularity are what a synthesis tool likes best.  Thus, all the really successful architectures are currently based only on the use of  4-input LUTs. (This is not to say that mixed-size LUT architectures won’t reemerge  in the future as design software continues to increase in sophistication.)





  • XC18V02PC44I

    Manufacturer:Xilinx

  • PROM Parallel/Serial 2M-bit 3.3V 44-Pin PLCC
  • Product Categories: Memory - Configuration Proms for FPGA's

    Lifecycle:Obsolete -

    RoHS: No RoHS

  • XC4VLX60-10FF668C

    Manufacturer:Xilinx

  • FPGA Virtex-4 LX Family 59904 Cells 90nm Technology 1.2V 668-Pin FCBGA
  • Product Categories: FPGAs

    Lifecycle:Active Active

    RoHS: No RoHS

  • XC4VLX60-11FF1148C

    Manufacturer:Xilinx

  • FPGA Virtex-4 LX Family 59904 Cells 90nm Technology 1.2V 1148-Pin FCBGA
  • Product Categories: FPGAs

    Lifecycle:Active Active

    RoHS: No RoHS

  • XC18V02VQ44I

    Manufacturer:Xilinx

  • PROM Parallel/Serial 2M-bit 3.3V 44-Pin VQFP
  • Product Categories: Memory - Configuration Proms for FPGA's

    Lifecycle:Obsolete -

    RoHS: No RoHS

  • XC2S30-5VQG100I

    Manufacturer:Xilinx

  • FPGA Spartan-II Family 30K Gates 972 Cells 263MHz 0.18um Technology 2.5V 100-Pin VTQFP
  • Product Categories: FPGAs

    Lifecycle:Active Active

    RoHS:

Need Help?

Support

If you have any questions about the product and related issues, Please contact us.