IEEE Solid-States Circuits Magazine - Spring 2018 - 45

expert (my word) in FPGAs, I decided
I needed to know everything there was
to know about FPGAs, so I tried to learn
everything there was to know about
simulated annealing. It turned out
there was nothing, or little, to know.
Simulated annealing is merely a fancy
technical term for describing a Monte
Carlo approach: blindly throwing darts
at a target. It is much like reordering
a deck of cards by throwing the deck
in the air and letting the cards land
on the floor. Once the cards are on
the floor, you look at the state of the
cards. If some ended up in a position
you liked, you left them the floor and
gathered up the rest of the cards and
threw them again. Sometimes you threw
them oddly, or picked them all up and
threw them again, to prevent a "local
minimum." Repeat a few million times,
and this how you placed the blocks of
an FPGA. After placement, routing fol-
lowed, but if the placement was good,
that normally wasn't an issue.

The Tools ...
I started with PALASM/ABEL/CUPL for
PALs/PLAs and still used a schematic
for FPGAs. I would combine ABEL code
with a schematic to implement state
machines. State machines would be
implemented in ABEL and the data flow
drawn in a schematic. In late 1980s,
Exemplar Logic added optimization,
essentially synthesis. Synplicity came
onto the scene in the early 1990s and
sped the process up by a factor of ten or
so. Slowly, RTL-based design took over,
and hardware engineers had to learn
how to code in the RTL languages Ver-
ilog/VHDL. Model Technology devel-
oped ModelSim, which quickly became
the go-to tool for RTL simulation, a skill
that I had to learn after years of cow-
boy-style design and debugging and
no coding training or experience. The
market for tools has always been deli-
cate for programmable logic since the
hardware vendors must supply tools
at a low cost to enable the use of the
silicon. This has limited the amount
of money a user is willing to spend on
tools. This remains a problem, reduc-
ing the market value of more capable,

general-purpose programming tools
that can used with FPGAs. As a result,
few third-party programming and
debugging solutions are available
other than what is provided by the pro-
grammable logic vendor. Regardless of
how poor a tool is, free is difficult to
compete against.
In the 2000s, FPGAs got bigger and
faster, following Moore's law and even-
tually replacing memory as the process
driver for semiconductor foundries
(fabs). As die sizes increased, hard-
wired functions were added, and more
functions were sucked in. This list
includes MACs and PCIe controllers.
Internal memory blocks were added in
2001. Processors of various ilk start-
ing with the 8051, MIPS, PowerPC, and
ARM have been attached or embedded
into FPGAs to achieve higher integra-
tion. High-speed serial inputs/outputs
were added in 2006. Multiple-stacked
dies (called 2.5D in the literature) were
added in 2012.
Moore's law is more or less dead. It
is likely that 28 nm will historically
be considered the golden node. As
the technology moves to 20 nm, 14,
10, 7, and downward (if possible), the
resulting silicon is getting denser and
consuming less power, but it is only
getting marginally faster. And the costs
are climbing dramatically. FPGAs will
remain at the grey boundary where the
lack of volume or the need for frequent
device logic upgrades doesn't justify
custom silicon.

The Future
In early 2018, both major FPGA com-
panies, Intel (Altera) and Xilinx, are
racing toward algorithmic accelera-
tion, along with several startups sell-
ing embedded FPGAs. Jamming the
maximum amount of PC-based blades
into a rack and then stuffing as many
racks as possible into a warehouse is
no longer the most optimum approach
for a data center. The limit now is
power and cooling, and this constrains
the amount of processing available in
a given space. FPGAs can help here by
accelerating some of the tasks at greatly
reduced power. Cloud providers are now

delivering access to FPGAs in their offer-
ings, or they are using them internally for
such applications as genomics, search
acceleration, and data analytics.
When algorithms such as those are
analyzed for acceleration in FPGAs,
several variables come into play: latency
versus size of the memories, floating
point versus integer or fixed-point
math. A big problem is getting the
data to the FPGA. Often, that sets the
upper limit of possible acceleration.
The best candidate algorithms are
streaming types of applications that
operate on sequential data, which is
why genomics, video, and network
processing can work well. These algo-
rithms also take advantage of non-
standard bit widths (for example,
4-bit and 17-bit word sizes) to save
resources and allow a larger number
of parallel operations.
Algorithms tend to be complica-
ted things that need to get stuffed
into gates and FFs. Automated tools
and various abstraction layers don't
do this well, forcing engineers to
manually analyze and implement, a
tedious task requiring quite a bit of
specialized talent and skill. Software
compilers and optimizers can help
with this, just like they have since
the beginning of programmable logic
devices in the 1980s, but getting a
working, efficient design in an FPGA
still requires a deep level of hardware
knowledge. This limits the applica-
bility of FPGAs to a narrow subset
of algorithms: those worth the effort
needed to program them. Also, any-
thing that can be done in an FPGA can
be handled better in an ASIC, assum-
ing the application does not change
frequently. The only question is when
the volumes get large enough and the
application is stable enough to justify
custom silicon.

About the Author
Mike Dini (mdini@dinigroup.com) is
president of the Dini Group, based
in La Jolla, California. He has been a
specialist in the design and applica-
tion of FPGAs for the last 30 years.

IEEE SOLID-STATE CIRCUITS MAGAZINE

s p r I n g 2 0 18

45



Table of Contents for the Digital Edition of IEEE Solid-States Circuits Magazine - Spring 2018

Contents
IEEE Solid-States Circuits Magazine - Spring 2018 - Cover1
IEEE Solid-States Circuits Magazine - Spring 2018 - Cover2
IEEE Solid-States Circuits Magazine - Spring 2018 - Contents
IEEE Solid-States Circuits Magazine - Spring 2018 - 2
IEEE Solid-States Circuits Magazine - Spring 2018 - 3
IEEE Solid-States Circuits Magazine - Spring 2018 - 4
IEEE Solid-States Circuits Magazine - Spring 2018 - 5
IEEE Solid-States Circuits Magazine - Spring 2018 - 6
IEEE Solid-States Circuits Magazine - Spring 2018 - 7
IEEE Solid-States Circuits Magazine - Spring 2018 - 8
IEEE Solid-States Circuits Magazine - Spring 2018 - 9
IEEE Solid-States Circuits Magazine - Spring 2018 - 10
IEEE Solid-States Circuits Magazine - Spring 2018 - 11
IEEE Solid-States Circuits Magazine - Spring 2018 - 12
IEEE Solid-States Circuits Magazine - Spring 2018 - 13
IEEE Solid-States Circuits Magazine - Spring 2018 - 14
IEEE Solid-States Circuits Magazine - Spring 2018 - 15
IEEE Solid-States Circuits Magazine - Spring 2018 - 16
IEEE Solid-States Circuits Magazine - Spring 2018 - 17
IEEE Solid-States Circuits Magazine - Spring 2018 - 18
IEEE Solid-States Circuits Magazine - Spring 2018 - 19
IEEE Solid-States Circuits Magazine - Spring 2018 - 20
IEEE Solid-States Circuits Magazine - Spring 2018 - 21
IEEE Solid-States Circuits Magazine - Spring 2018 - 22
IEEE Solid-States Circuits Magazine - Spring 2018 - 23
IEEE Solid-States Circuits Magazine - Spring 2018 - 24
IEEE Solid-States Circuits Magazine - Spring 2018 - 25
IEEE Solid-States Circuits Magazine - Spring 2018 - 26
IEEE Solid-States Circuits Magazine - Spring 2018 - 27
IEEE Solid-States Circuits Magazine - Spring 2018 - 28
IEEE Solid-States Circuits Magazine - Spring 2018 - 29
IEEE Solid-States Circuits Magazine - Spring 2018 - 30
IEEE Solid-States Circuits Magazine - Spring 2018 - 31
IEEE Solid-States Circuits Magazine - Spring 2018 - 32
IEEE Solid-States Circuits Magazine - Spring 2018 - 33
IEEE Solid-States Circuits Magazine - Spring 2018 - 34
IEEE Solid-States Circuits Magazine - Spring 2018 - 35
IEEE Solid-States Circuits Magazine - Spring 2018 - 36
IEEE Solid-States Circuits Magazine - Spring 2018 - 37
IEEE Solid-States Circuits Magazine - Spring 2018 - 38
IEEE Solid-States Circuits Magazine - Spring 2018 - 39
IEEE Solid-States Circuits Magazine - Spring 2018 - 40
IEEE Solid-States Circuits Magazine - Spring 2018 - 41
IEEE Solid-States Circuits Magazine - Spring 2018 - 42
IEEE Solid-States Circuits Magazine - Spring 2018 - 43
IEEE Solid-States Circuits Magazine - Spring 2018 - 44
IEEE Solid-States Circuits Magazine - Spring 2018 - 45
IEEE Solid-States Circuits Magazine - Spring 2018 - 46
IEEE Solid-States Circuits Magazine - Spring 2018 - 47
IEEE Solid-States Circuits Magazine - Spring 2018 - 48
IEEE Solid-States Circuits Magazine - Spring 2018 - 49
IEEE Solid-States Circuits Magazine - Spring 2018 - 50
IEEE Solid-States Circuits Magazine - Spring 2018 - 51
IEEE Solid-States Circuits Magazine - Spring 2018 - 52
IEEE Solid-States Circuits Magazine - Spring 2018 - 53
IEEE Solid-States Circuits Magazine - Spring 2018 - 54
IEEE Solid-States Circuits Magazine - Spring 2018 - 55
IEEE Solid-States Circuits Magazine - Spring 2018 - 56
IEEE Solid-States Circuits Magazine - Spring 2018 - 57
IEEE Solid-States Circuits Magazine - Spring 2018 - 58
IEEE Solid-States Circuits Magazine - Spring 2018 - 59
IEEE Solid-States Circuits Magazine - Spring 2018 - 60
IEEE Solid-States Circuits Magazine - Spring 2018 - 61
IEEE Solid-States Circuits Magazine - Spring 2018 - 62
IEEE Solid-States Circuits Magazine - Spring 2018 - 63
IEEE Solid-States Circuits Magazine - Spring 2018 - 64
IEEE Solid-States Circuits Magazine - Spring 2018 - 65
IEEE Solid-States Circuits Magazine - Spring 2018 - 66
IEEE Solid-States Circuits Magazine - Spring 2018 - 67
IEEE Solid-States Circuits Magazine - Spring 2018 - 68
IEEE Solid-States Circuits Magazine - Spring 2018 - 69
IEEE Solid-States Circuits Magazine - Spring 2018 - 70
IEEE Solid-States Circuits Magazine - Spring 2018 - 71
IEEE Solid-States Circuits Magazine - Spring 2018 - 72
IEEE Solid-States Circuits Magazine - Spring 2018 - 73
IEEE Solid-States Circuits Magazine - Spring 2018 - 74
IEEE Solid-States Circuits Magazine - Spring 2018 - 75
IEEE Solid-States Circuits Magazine - Spring 2018 - 76
IEEE Solid-States Circuits Magazine - Spring 2018 - 77
IEEE Solid-States Circuits Magazine - Spring 2018 - 78
IEEE Solid-States Circuits Magazine - Spring 2018 - 79
IEEE Solid-States Circuits Magazine - Spring 2018 - 80
IEEE Solid-States Circuits Magazine - Spring 2018 - 81
IEEE Solid-States Circuits Magazine - Spring 2018 - 82
IEEE Solid-States Circuits Magazine - Spring 2018 - 83
IEEE Solid-States Circuits Magazine - Spring 2018 - 84
IEEE Solid-States Circuits Magazine - Spring 2018 - 85
IEEE Solid-States Circuits Magazine - Spring 2018 - 86
IEEE Solid-States Circuits Magazine - Spring 2018 - 87
IEEE Solid-States Circuits Magazine - Spring 2018 - 88
IEEE Solid-States Circuits Magazine - Spring 2018 - 89
IEEE Solid-States Circuits Magazine - Spring 2018 - 90
IEEE Solid-States Circuits Magazine - Spring 2018 - 91
IEEE Solid-States Circuits Magazine - Spring 2018 - 92
IEEE Solid-States Circuits Magazine - Spring 2018 - 93
IEEE Solid-States Circuits Magazine - Spring 2018 - 94
IEEE Solid-States Circuits Magazine - Spring 2018 - 95
IEEE Solid-States Circuits Magazine - Spring 2018 - 96
IEEE Solid-States Circuits Magazine - Spring 2018 - 97
IEEE Solid-States Circuits Magazine - Spring 2018 - 98
IEEE Solid-States Circuits Magazine - Spring 2018 - 99
IEEE Solid-States Circuits Magazine - Spring 2018 - 100
IEEE Solid-States Circuits Magazine - Spring 2018 - 101
IEEE Solid-States Circuits Magazine - Spring 2018 - 102
IEEE Solid-States Circuits Magazine - Spring 2018 - 103
IEEE Solid-States Circuits Magazine - Spring 2018 - 104
IEEE Solid-States Circuits Magazine - Spring 2018 - 105
IEEE Solid-States Circuits Magazine - Spring 2018 - 106
IEEE Solid-States Circuits Magazine - Spring 2018 - 107
IEEE Solid-States Circuits Magazine - Spring 2018 - 108
IEEE Solid-States Circuits Magazine - Spring 2018 - 109
IEEE Solid-States Circuits Magazine - Spring 2018 - 110
IEEE Solid-States Circuits Magazine - Spring 2018 - 111
IEEE Solid-States Circuits Magazine - Spring 2018 - 112
IEEE Solid-States Circuits Magazine - Spring 2018 - 113
IEEE Solid-States Circuits Magazine - Spring 2018 - 114
IEEE Solid-States Circuits Magazine - Spring 2018 - 115
IEEE Solid-States Circuits Magazine - Spring 2018 - 116
IEEE Solid-States Circuits Magazine - Spring 2018 - 117
IEEE Solid-States Circuits Magazine - Spring 2018 - 118
IEEE Solid-States Circuits Magazine - Spring 2018 - 119
IEEE Solid-States Circuits Magazine - Spring 2018 - 120
IEEE Solid-States Circuits Magazine - Spring 2018 - 121
IEEE Solid-States Circuits Magazine - Spring 2018 - 122
IEEE Solid-States Circuits Magazine - Spring 2018 - 123
IEEE Solid-States Circuits Magazine - Spring 2018 - 124
IEEE Solid-States Circuits Magazine - Spring 2018 - Cover3
IEEE Solid-States Circuits Magazine - Spring 2018 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2023
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2023
https://www.nxtbook.com/nxtbooks/ieee/mssc_spring2023
https://www.nxtbook.com/nxtbooks/ieee/mssc_winter2023
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2022
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2022
https://www.nxtbook.com/nxtbooks/ieee/mssc_spring2022
https://www.nxtbook.com/nxtbooks/ieee/mssc_winter2022
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2021
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2021
https://www.nxtbook.com/nxtbooks/ieee/mssc_spring2021
https://www.nxtbook.com/nxtbooks/ieee/mssc_winter2021
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2020
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2020
https://www.nxtbook.com/nxtbooks/ieee/mssc_spring2020
https://www.nxtbook.com/nxtbooks/ieee/mssc_winter2020
https://www.nxtbook.com/nxtbooks/ieee/mssc_fall2019
https://www.nxtbook.com/nxtbooks/ieee/mssc_summer2019
https://www.nxtbook.com/nxtbooks/ieee/mssc_2019summer
https://www.nxtbook.com/nxtbooks/ieee/mssc_2019winter
https://www.nxtbook.com/nxtbooks/ieee/mssc_2018fall
https://www.nxtbook.com/nxtbooks/ieee/mssc_2018summer
https://www.nxtbook.com/nxtbooks/ieee/mssc_2018spring
https://www.nxtbook.com/nxtbooks/ieee/mssc_2018winter
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_winter2017
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_fall2017
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_summer2017
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_spring2017
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_winter2016
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_fall2016
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_summer2016
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_spring2016
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_winter2015
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_fall2015
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_summer2015
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_spring2015
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_winter2014
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_fall2014
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_summer2014
https://www.nxtbook.com/nxtbooks/ieee/solidstatecircuits_spring2014
https://www.nxtbookmedia.com