FPGA and other programmable logic ICs
FPGA is an integrated circuit that contains many (64 to over 10,000)
identical logic cells that can be viewed as standard components. Each logic cell
can independently take on any one of a limited set of personalities. The
individual cells are interconnected by a matrix of wires and programmable
switches. A user's design is implemented by specifying the simple logic function
for each cell and selectively closing the switches in the interconnect matrix.
Complex designs are created by combining these basic blocks to create the
desired circuit.
Field Programmable means that the FPGA's function is defined by a user's
program rather than by the manufacturer of the device. Depending on the
particular device, the program is either 'burned' in permanently or
semi-permanently as part of a board assembly process, or is loaded from an
external memory each time the device is powered up.
FPGA links
Information on Field Programmable Gate Array chips and related techniques.
General information
- EDA
tools bridge the system-on-programmable-chip design gap - Once relegated
to low-cost, low-capability products, EDA tools for PLD development are
becoming more complex to keep up with the increased capacity of the devices.
- EDN
Programmable-logic directory - The second annual EDN PLD directory
highlights the architectures available for your next design. Find out what's
new, what's obsolete, and what's evolved in PALs, PLDs, and FPGAs.
- Field-programmable
devices - field-programmable devices come in a variety of fruity flavors,
and more are arriving all the time
- FPGA Basics
- FPGA related WWW
Links - large general link collection
- FPGAs:
a matter of cores - portable logic blocks, or cores, have become an
accepted part of ASIC design but using cores in FPGAs presents a new set of
challenges
- FPGAs and ASICs - This web site is
dedicated to the design and use of programmable and quick-turn technologies
for space flight applications
- FPGAs
"DiSP"lay their processing prowess - Does the performance-power-price
product of your software-centric approach no longer compute? Do you need a
nimbler platform than a hard-wired ASIC can provide? Programmable logic may be
your answer, but carefully calculate the trade-offs to correctly solve your
problem.
- FPGA
Vendors
- General Comparison of
Programmable Logic Architectures - CPLDs vs. FPGAs
- PLD-design
methods migrate existing designs to high-capacity devices - moving to
newer higher capacity programmable devices can give you higher density and
better performance
- Programmable
logic: Beat the heat on power consumption - Higher performanceand gate
countsincrease programmable-logic powerconsumption. Wise device selection and
design techniques can significantly improve your chances of coming in under
the powerbudget.
- Reconfigurable
logic: built-in adaptability
- Reconfigurable
logic: hardware speed with software flexibility - reconfigurable logic
lets you dynamically alter hardware in real time, blurring the boundary
between hardware and software
- DN's
Third Annual Programmable-Logic Directory - EDN's PAL, PLD, and FPGA
directory highlights the architectures available for your next design. Find
out what's new, what's obsolete, and what's evolved in PALs, PLDs, and FPGAs.
- Emacs Modes for Hardware
Languages - This page provides links to existing Emacs modes for languages
used in hardware design.
- Opencores.org - This is a good
site containing free (GPL) tested Verilog/VHDL models.
- SOCworks - Site to explore and
simulate your System-On-Chip (SOC) ideas and architectures using real vendor
IP.
General
- Bringing
Parallel Processing to FPGA Designs
- CPLDs
readily replace precious µP resources - using CPLDs to offload your CPU
lets you create a device that hits an effective performance and cost balance
between the conflicting attributes of standard and custom parts
- Detailed
model shows FPGAs' true costs - an analysis of all the variables
affecting IC development shows that FPGAs are extremely cost-effective at
surprisingly high production volumes
- FPGA
makes simple FIFO - FPGA-based, synchronous FIFO that uses the same
clock for read and write operations
- General
Cooking Guidelines for "cooking" up designs with the Spartan-II Family of
FPGAs
- Moving
beyond programmable logic: if, when, how? - decision to migrate from
PLDs and FPGAs to lower cost ASICs seems easy at first glance but may be
more complicated than you think, do a little research and analysis before
you proceed, and carefully choose which migration path to follow
- Navigating
Through FPGA Designs - The FPGA design process is not as seamless as one
might like. However, powerful synthesis, simulation, and programming tools
are here to help.
- Navigating
Through FPGA Design - FPGA design process is not as seamless as one
might like
- PLD
code reveals pc-board revisions - The PLD code described in this article
implements a pc-board-level revision-detection system that detects whether
PLD pins are shorted together on a pc board. It is often advantageous to
field a single PLD programming file that works for several generations of
physical hardware. The PLD needs to understand what the board revision is,
so that it can enable or disable functions, pins, or both to external
circuitry.
- Schmitt
Trigger - an idea for cleaning up a noisy clock without resorting to an
additional external gate or using an additional internal clock, uses one
extra pin and two resistors
- Sequence Control
using Programmable Logic - A conceptual level approach, available in
modern design tools is used to simplify the task.
- Supply-Voltage
Migration, 5V to 3.3V - general notes how it affects FPGA base designs
- The
best (or worst?) of both worlds -programmable-logic devices deliver
design, manufacturing, and after-sale-service flexibility that ASICs can't
match, but CPLDs and FPGAs also run more slowly, burn more power, and cost
more per gate, there is emerging one-chip ASIC/programmable-logic hybrid
solutions
- Your
core, my design, our problem - Integrating third-party cores into a
design requires more than just reading a data sheet. Virtual components can
greatly enhance design productivity or doom a project to failure, and many
factors determine the final outcome. To ensure success, the core provider
must become a trusted member of the design team.
Arimethics using FPGAs
- A Survey of CORDIC
Algorithms for FPGAs - this paper describes the CORDIC algorithm in
layman's terms, and discusses implementation issues specific to FPGAs,
working copy in pdf format
- Distributed Arithmetic
- powerful technique for reducing the size of a parallel hardware
multiply-accumulate that is well suited to FPGA designs
- Multiplication in
FPGAs - multiplication is basically a shift add operation, but there are
variations how to do it, this document is a brief tutorial on multiplication
hardware
- The CORDIC Algorithm -
class of shift-add algorithms for rotating vectors in a plane
Counters
- PLD
code creates PWM generators - This PLD (programmable-logic-device) code
creates arbitrary-resolution, pulse-width-modulated (PWM) generators. PWM
generators are useful as low-bandwidth D/A converters in hardware of
microprocessor-based systems. When you pass it through a simple RC lowpass
filter, a PWM waveform becomes a voltage that's approximately equal to the
PWM duty cycle times the supply voltage. This code is written for Altera's
devices, but you can quite easily translate the design structure and flow
into VHDL or Verilog.
- Preprocessor
for rotary encoder uses PAL - Rotary encoders usually provide quadrature
pulses that indicate both the amount of rotation and the direction. This
application idea helps keeping accurate track of rotary encoder position.
- XAPP052: Efficient
Shift Registers, LFSR Counters and Long Pseudo-Random Sequence
Generators - FPGA application note from Xilinx in pdf format
Oscillator
- VCO
uses programmable logic - A VCO (voltage-controlled oscillator) is an
analog circuit, so you cannot find it in the libraries for the design of
digital programmable chips. When you need such a circuit for synchronization
or clock multiplication, you need to find a circuit that works with the
standard digital functions, such as AND and NAND. Several possibilities
exist for building variable-frequency oscillators. This design modifies a
two-NOR-gate RC oscillator to function as a VCO.
Signal processing using FPGAs
Digital signal processing has traditionally been done using enhanced
microprocessors but recent increases in Field Programmable Gate Array
performance and size offer a new hardware acceleration opportunity.
System and design testing and programming
Clock generation and division
Circuit design around FPGA chip
Computer interfacing
Telecommunication applications
Other tips
Hardware description languages are essential tools for handling the
increasing complexity of the hardware designs. Information on VHDL hardware
description language that is used for designing logic circuits implemented with
FPGA or ASIC technologies.
VHDL is a way of describing the desired operation of a logic device. Although
it is a standard, vendors all choose different parts to implement and add their
own quirks. In VHDL synthesis, we describe a program that would have the same
behavior as the circuit we wish to create. This program is used by the synthesis
tools to create the configuration file that will configure the specific FPGA or
PLD into a correct circuit. The syntax is very similar to Ada.
General
- Design and Reuse Web
site
- Getting
a handle on HDLs - Programmable-logic chips and designs are growing more
complex. As a result, you’ll sooner or later need to add HDL expertise to
your skills if you want to keep hitting those project deadlines. For this
Hands-On Project, I learn VHDL, complete a mixed logic and embedded-memory
design in an FPGA, and share observations along the way.
- Interfacing
HDLs with conventional programming languages - programming languages
that interface with HDL models facilitate hardware/software codesign
VHDL
Verilog
Other languages
- CynApps
Cynlib - C++ based hardware description language
- LavaLogic - Java-based synthesis
tool
- SpecC
- Superlog - superset of Verilog,
borrows features from VHDL and C++
- SystemC - modeling platform that
enables, promotes and accelarates system-level co-design and IP exchange
Organizations