What is an FPGA?
"A field-programmable
gate array (FPGA) is a semiconductor device that can be
configured by the customer or designer after manufacturing—hence the name
"field-programmable".
FPGAs are programmed using a logic circuit diagram or a source code in a hardware description
language (HDL) to specify how the chip will work. They can
be used to implement any logical function that an application-specific
integrated circuit (ASIC) could perform, but the ability
to update the functionality after shipping offers advantages for many
applications.
FPGAs
contain programmable logic components
called "logic blocks", and a hierarchy of reconfigurable
interconnects that allow the blocks to be "wired
together"—somewhat like a one-chip programmablebreadboard. Logic blocks can be
configured to perform complex combinational functions,
or merely simple logic gates like AND and XOR. In most FPGAs, the logic blocks also include memory
elements, which may be simple flip-flops or more
complete blocks of memory." (From Wikipedia)
|
Some FPGA contains hardwired sections such as:
- Low
voltage data signaling serial input output (LVDS)
- Serializer
and deserializer (SERDES)
- Phase
lock loop (PLL)
- Delay
lock loop (DLL)
- Digital
signal processing (DSP) block such as multiplier and wide accumulator.
- Memory
interface such as DDR.
- Bus
interface such as PCI.
- CPU
core.
- Some
have analog functions such as voltage supervisor.
- Block
of RAM
- FIFO,
dual port RAM.
- Many
IO types such as CMOS, TTL, differential.
|
|
What can do an FPGA?
An FPGA can do a lot. In fact an FPGA can do all sort of digital
circuit. It can do combinatorial logic such as complex circuit composed of
AND, OR and NOT. As example CPU and peripheral glue logic. Since there are registers such as flip-flop in FPGA, FPGA can do
sequential finite state machine such as Mealy and Moore machine. As example a
traffic light controller or a dynamic random access memory (DRAM) controller.
As DSP chip, FPGA can be used for digital signal processing such as
waveform generation, demodulation, filtering, spectral analysis, etc. FPGA
will be favour in place of DSP chip in application where the sampling rate is
very high such as above million of sample per seconds and where DSP chip
cannot sustain the required number of million of instruction per second
(MIPS). One serious advantage of FPGA in regard with DSP function is that
FPGA can operate many multipliers and data accumulators in parallel, where
most DSP chip are limited to one or two.
How to work with FPGA?
FPGA are mostly developed using special coding languages such as VHDL
(Very High speed Design Language) and Verilog. Using one of these languages
you specify the logic circuit in a similar way as you write software, but be
aware the code is not sequential as is software. A simple VHDL code excerpt
is shown below:
|
CounterP: process(N_RESET,
DSP_CLK_PIN, DSP_NCS_PIN, StateCount)
begin
if (DSP_NCS_PIN = '1' OR N_RESET = '0') then --async
reset.
Count <= "0000000";
elsif (DSP_CLK_PIN='1' and DSP_CLK_PIN'event) then
--sync increment.
Count <= Count + 1;
end if;
end process CounterP;
|
The process is quite straightforward:
- Specify
what you need.
- Draft
your architecture.
- Look
for intellectual property (IP) available. Using IP save a lot of time in
development.
- Develop
your code.
- Simulate
your design.
- Integrate
the final FPGA within the product doing final code adjustment and testing.
At sysacom we have a written procedure we follow to develop FPGA, that
procedure establish the documentation content as well as the coding style.
Who sell FPGA?
There are mostly four companies selling FPGA: Xilinx, Altera, Lattice
and Actel. Up to now we have worked with three of them, each times we were
quite satisfied.
Who develop FPGA content?
Sysacom will work with you developing your FPGA circuit. We will develop
FPGA VHDL or Verilog code but we can do a lot more such as selecting the FPGA,
developing the schematic, the printed circuit board layout, we will provide
you with some prototypes and we will perform the test and the integration.