|
^
v |
^
v |
^
v |
^
v |
^
v |
^
v |
^
v |
^
v |
|
<-> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
L |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
<-> |
|
^
v |
^
v |
^
v |
^
v |
^
v |
^
v |
^
v |
^
v |
|
|
This architecture uses a
2-dimensional array of logic cells as islands in a sea of
routing resources. Routing is more complex than it is
for CPLDs.
FPGAs are typically programmed in languages like Verilog
or VHDL. These are high-level languages, because manual
lower level design becomes impractical as designs become
large.
Using our programming language analogy, Verilog has
been compared with C and
VHDL with ADA. Both have strong and weak points, and both
are popular.
VHDL is said to be strongly typed, and Verilog to be less
so. Verilog allows things that VHDL might not, and allows
more low-level design control. VHDL on the other hand
allows greater high-level design control.
A rough look at the job adverts and projects in
newsgroups seems to indicate VHDL is used more often, but
skills learnt in Verilog are largely useable in VHDL.
Xilinx were the first big player in FPGAs, using
RAM-based logic cells. Altera have since become a major
player.
|