Fliptronics

FPGA Art Gallery

(Updated 8/19/2002)
Home Page Tutorials HW Products CAE/SW Products
Tips & Tricks Digital System Design Links About Fliptronics

The Gallery is a showcase of FPGA designs that Fliptronics has developed for its clients. These pictures demonstrate examples of detailed floorplanning, and some demonstrate very high utilization of large FPGAs (vintage 1997. The biggest chips available now are FAR bigger). The pictures are organized in two groups, as two different Floorplan viewers were used. The style of each viewer is described at the top of each group. You can read more about Floorplanning techniques in the tutorials section.

All the Floorplan pictures can be selected to give a larger, more detailed view.

The first Gallery section is of some smaller FPGAs. In these pictures, object that are colored light or dark green are manually Floorplanned and placed. Objects that are colored orange are Floorplanned within themselves (with RLOCs), but are not locked to a specific place on the chip. The final placement for these orange structures was chosen by the FPGA placement software. The objects that are colored blue are unstructured logic (such as state machines, or non timing critical data path), and their placement is also unguided by Floorplanning.

In these pictures, when viewing the full size pictures, the main black grid is the array of CLBs (a white square). Each CLB has its usage indicated by colored cells within the square. Colored cells on the left are the function generators, and colored cells on the right are the flip-flops. A triangle over a flip-flop indicates that its D input is from a function generator in the same CLB. A thin horizontal rectangle (always green) in the bottom left corner of a CLB square indicates that carry logic is in use.

Click for a bigger pictureCSCANNER
CSCANNER
The chip is an XC4008 FPGA. The blue stuff is an un-floorplanned state machine with over 100 states. The two columns of green on the right side are a pipelined bus interface, just to the left are 4 columns of RAM cells (also green, 8 CLBS high). The green stuff in the top middle area are some state counters and address registers. The lower left is a mix of 24 bit and 12 bit data path. Like most of my FPGA designs, the data path is carefully floorplanned (the stuff in green), and the rest (state machines and other control logic, all in blue) is left for the PPR placer to find a suitable location for it. Detailed TimeSpecs are used to describe ALL paths through the chip, and the design is fully synchronous. The design is in production, and runs at speed with reasonable extra timing margins beyond its design specification. This approach to selective floorplanning seems to result in very short design and compile times, with quite deterministic timing. Separate place and route runs result in almost identical timing.
Click for a bigger pictureCHAINER
CHAINER
This chip is mostly a 24 bit data path, with some 12 bit blocks, and a very complex state machine. Green stuff is the floor planned data path, blue stuff is the unfloorplanned statemachine. The light green stuff is the floorplanned part of the statemachine that directly drives control lines into the data path. For performance, just this part of the statemachine was floorplanned (about 20%).
Click for a bigger pictureHUB_MOD
HUB_MOD
This chip implements the Interleaver and modulator DSP for a Spread Spectrum Satellite transmitter. The I and Q portions of the DSP are the two horizontal blocks, each 9 rows high, that are in the top half of the chip, and span the full width. The bottom half of the chip implements a configurable interleaver. All the light and dark green stuff is floorplanned, the blue stuff is unfloorplanned state machine logic.

The Second Gallery section is of some more recent FPGAs.

The color coding of the following Floorplans is as follows:

  • If a square is empty, the CLB is not used
  • Within each CLB, colored squares on the left are F & G function generators, colored squares on the right are the flip-flops, and a colored rectangle in the middle represents the H function generator.
  • If a square is colored blue, then it is being used
  • If a square is colored yellow, then it is a function generator, and the carry logic is active
  • If a square is colored magenta, then it is a function generator, and it is being used for single ported RAM
  • If a square is colored red, then it is a function generator, and it is being used for dual ported RAM
  • If a square is colored green, then it is a function generator, and it is being used for ROM
  • If an I/O cell is colored red, then it is being used for a global clock buffer
  • An "X" over an I/O cell indicates an I/O cell that is not bonded to a package pin
  • An inward pointing arrow on an I/O cell indicates usage as an input
  • An outward pointing arrow on an I/O cell indicates usage as an output
  • If an I/O or CLB cell has a gray background, then it means that there was placement control used on that location
  • Click for a bigger pictureSRAMTEST
    SRAMTEST
    The chip is an XC4028EX  and implements the self test design that exercises the SRAM on the board. The Horizontal block (4 rows by 16 columns) implements 16 registers that are available to the software running on the host PC. The vertical structure on the right side is a datapath that generates and check various test patterns while the design is running. The blue stuff that is scattered around the chip is the state machine that controls everything. The vertical yellow stripes are the carry chains in various counters. The SRAM interface is on the right side, and the CPU/ISA interface are the I/Os on the bottom and left side.
    Click for a bigger pictureDRAMTEST
    DRAMTEST
    The chip is an XC4028EX  and implements the self test design that exercises the DRAM on the board. The Horizontal block (4 rows by 16 columns) implements 16 registers that are available to the software running on the host PC. The vertical structure on the right side is a datapath that generates and check various test patterns while the design is running. The blue stuff that is scattered around the chip is the state machine that controls everything. The vertical yellow stripes are the carry chains in various counters. The DRAM interface is on the right side, and the CPU/ISA interface are the I/Os on the bottom and left side.
    Click for a bigger pictureMFILT
    MFILT
    The chip is an XC4028EX that implements two 256 stage match filters for decoding a Spread Spectrum Satellite signal. The design has one 256-bit by 8 equivalent shift reg with taps every other sample. It matches against two codes being run simultaneously. This means there are two sets of everything except the shift register. The coefficients (all +1 or -1 ) are dynamically programmable by shifting in two new arguments up to 128 each. The clock rate is 32MHz. The sample rate is 8MHz. The chip rate is 4MHz. This design uses a hybrid of distributed arithmetic, serial/parallel computation, and required very careful floorplanning. The design includes ROMs, RAMs, carry logic, and a small amount of control logic. Operating at 32MHz, it performs 256 multiplies (8 bit) and 254 adds (9 to 15 bit) every 4 clock, delivering slightly over 4 billion operations per second.
    Click for a bigger pictureDVBDEMOD
    DVB_DEMOD
    The chip is an XC4062XL that implements a DVB demodulator.
    Click for a bigger pictureLINEAR
    LINEAR
    The chip is an XC4085XLA that implements a TDI Linearizer.
    Click for a bigger pictureFORMATTER
    FORMATTER
    The chip is an XC4062XLA that implements a Fibre Channel Formatter.
    Click for a bigger picturePCI_2_FC
    PCI_2_FC
    The chip is an XC4062XLA that implements a full duplex Fibre Channel to PCI-64 Interface

    Copyright © 1998, 1999, 2000, 2001, 2002  by Fliptronics. All rights reserved.
    Fliptronics, Sunnyvale, CA 94086-7629, USA
    TEL: 408-737-0295, E-mail: philip@fliptronics.com