IEEE Solid-States Circuits Magazine - Fall 2020 - 53

in an iterative fashion, facilitating early
and frequent feedback to the register-
transfer-level (RTL) design engineers
about microarchitecture tweaks to
improve the quality of the results. After
this initial prototype was completed,
features were iteratively added, ap-
-
proaching the project deadline with
a tapeout ready candidate available
at each stage of the process. As a
result, there was a lower chance of
grossly underestimating the time
required for the design, improving
our ability to effectively schedule
the project.
When moving a team to an agile
hardware design flow, many existing
software tools are available for project
management and task planning. One
of the most widely used is Atlassian's
Jira, a cross-platform agile software
development and team collaboration
tool. It helps agile teams plan and
track issues and projects so that they
can deliver on time. There are also
many free and open source alterna-
tives for agile project management,
with Github incorporating many of the
same capabilities into its platforms at
no cost. Always having a viable design
ready for tapeout necessitates auto-
mation of the toolflows triggered by
code check-ins and scheduled nightly
runs. These types of push-button
flows for running simulations, synthe-
sis, and place-and-route can be devel-
oped using continuous integration,
delivery, and deployment tools, such
as Jenkins and Bamboo, and reduce
design time overheads, significantly
improving productivity.

Higher-Abstraction
-Hardware -Design
Software systems rely on reuse that
is enabled by free and widely avail-
able libraries written in frequently
used and well-documented program-
ming languages. In contrast, most
hardware design flows depend on
infrequently employed p
- rimitive
languages to describe hardware, with
a process including many propri-
etary tools and process design kits
(PDKs), making design sharing and
reuse difficult. HDLs, such as Ver-

	

ilog, are used to describe cycleaccurate hardware, leading to a focus
on creating a single high-quality
instance of a design versus a flex-
ible, parameterizable component
that can be reused. In addition, cur-
rent long tool runtimes and develop-
ment cycles exacerbate the problem
of design space exploration by further
increasing the time from the design
capture to analyzing results.
Increasingly, common high-level
languages are being used as HDLs to
improve design productivity by clos-
ing the gap between software devel-
opment and circuit design. High-level
language approaches are often split
into two categories: HLS and hardware
generation [11]. HLS involves writing
untimed or loosely timed programs
in a high-level language, such as C++,
which are automatically synthesized
to a cycle-accurate specification in
an HDL, such as Verilog or VHDL,
given a set of design constraints. This
contrasts with hardware generation
approaches, where a hardware-ori-
ented description is written in a highlevel language and this description is
translated directly into an HDL. An
example of the latter is the Chisel lan-
guage developed at the University of
California, Berkeley.
The inference accelerator pre-
sented here employed an HLS flow
to model and design all on-chip digi-
tal logic. A commercial HLS tool used
loosely timed and untimed C/C++
architectural models to generate a syn-
thesizable Verilog RTL for application in
standard VLSI flows. Given a functional
description, finding a suitable microar-
chitecture is not a simple task, and dis-
covering an optimal one with respect to
designer constraints is even more chal-
lenging. HLS takes what was previously
a manual task and automates the pro-
cess of microarchitectural searching. It
can derive from a single piece of source
code a variety of microarchitectures
with different area and performance
characteristics, enabling rapid design
space exploration.
Figure 6 presents a typical HLS
flow for generating and verifying
the RTL used in the design of the

inference accelerator. Designs, test
benches, and reusable libraries
are implemented in a high-level C++
model and verified for functionality
and performance in C++ simulation.
Port and channel primitives from
the MatchLib library were used to
implement LI interfaces for all parti-
tions. LI interfacing reduces design
and verification effort by introduc-
ing a correct-by-construction design
strategy, wherein individual modules
are patient and capable of tolerating
arbitrary latencies at their inputs and
outputs while still producing a func-
tionally correct result [12]. LI design
also enables the decoupling of compu-
tation and communication to provide
flexibility in the physical implemen-
tation and reduce the timing closure
effort, as internal changes to an LIinterfaced module do not impact sys-
tem-level timing. This LI design model
complements HLS where the latencies
of individual units are determined
by design constraints and not fixed
within the high-level source.
Beyond developing methodologies
that improve circuit design modularity
and reuse, there are additional bene-
fits to increasing the level of abstrac-
tion of the hardware model. Moving
hardware description to a higher level
provided an opportunity for faster
simulation using free C++ compilation
and " simulation " using the GCC tool-
chain. Simulation speedup gains for
designs used in the inference accel-
erator are given in Figure 7. Across a
regression, 3-14× speedups are
achieved compared to a state-of-theart commercial HDL simulator. These
speedups, combined with the lack
of tool license overheads, provide an
opportunity for more run paralleliza-
tion and faster regressions, reducing
the feedback loop time for verification.
Even if a higher-level language is not
directly used for the design, there are
examples of HDLs being converted to
higher-level languages solely for the
simulation speedup benefits they offer,
such as Tesla's design flow, which uses
Verilator to convert the RTL to C++ for
up to a 30× speedup compared to a
commercial RTL simulator [13].

	 IEEE SOLID-STATE CIRCUITS MAGAZINE	

FA L L 2 0 2 0	

53



IEEE Solid-States Circuits Magazine - Fall 2020

Table of Contents for the Digital Edition of IEEE Solid-States Circuits Magazine - Fall 2020

Contents
IEEE Solid-States Circuits Magazine - Fall 2020 - Cover1
IEEE Solid-States Circuits Magazine - Fall 2020 - Cover2
IEEE Solid-States Circuits Magazine - Fall 2020 - Contents
IEEE Solid-States Circuits Magazine - Fall 2020 - 2
IEEE Solid-States Circuits Magazine - Fall 2020 - 3
IEEE Solid-States Circuits Magazine - Fall 2020 - 4
IEEE Solid-States Circuits Magazine - Fall 2020 - 5
IEEE Solid-States Circuits Magazine - Fall 2020 - 6
IEEE Solid-States Circuits Magazine - Fall 2020 - 7
IEEE Solid-States Circuits Magazine - Fall 2020 - 8
IEEE Solid-States Circuits Magazine - Fall 2020 - 9
IEEE Solid-States Circuits Magazine - Fall 2020 - 10
IEEE Solid-States Circuits Magazine - Fall 2020 - 11
IEEE Solid-States Circuits Magazine - Fall 2020 - 12
IEEE Solid-States Circuits Magazine - Fall 2020 - 13
IEEE Solid-States Circuits Magazine - Fall 2020 - 14
IEEE Solid-States Circuits Magazine - Fall 2020 - 15
IEEE Solid-States Circuits Magazine - Fall 2020 - 16
IEEE Solid-States Circuits Magazine - Fall 2020 - 17
IEEE Solid-States Circuits Magazine - Fall 2020 - 18
IEEE Solid-States Circuits Magazine - Fall 2020 - 19
IEEE Solid-States Circuits Magazine - Fall 2020 - 20
IEEE Solid-States Circuits Magazine - Fall 2020 - 21
IEEE Solid-States Circuits Magazine - Fall 2020 - 22
IEEE Solid-States Circuits Magazine - Fall 2020 - 23
IEEE Solid-States Circuits Magazine - Fall 2020 - 24
IEEE Solid-States Circuits Magazine - Fall 2020 - 25
IEEE Solid-States Circuits Magazine - Fall 2020 - 26
IEEE Solid-States Circuits Magazine - Fall 2020 - 27
IEEE Solid-States Circuits Magazine - Fall 2020 - 28
IEEE Solid-States Circuits Magazine - Fall 2020 - 29
IEEE Solid-States Circuits Magazine - Fall 2020 - 30
IEEE Solid-States Circuits Magazine - Fall 2020 - 31
IEEE Solid-States Circuits Magazine - Fall 2020 - 32
IEEE Solid-States Circuits Magazine - Fall 2020 - 33
IEEE Solid-States Circuits Magazine - Fall 2020 - 34
IEEE Solid-States Circuits Magazine - Fall 2020 - 35
IEEE Solid-States Circuits Magazine - Fall 2020 - 36
IEEE Solid-States Circuits Magazine - Fall 2020 - 37
IEEE Solid-States Circuits Magazine - Fall 2020 - 38
IEEE Solid-States Circuits Magazine - Fall 2020 - 39
IEEE Solid-States Circuits Magazine - Fall 2020 - 40
IEEE Solid-States Circuits Magazine - Fall 2020 - 41
IEEE Solid-States Circuits Magazine - Fall 2020 - 42
IEEE Solid-States Circuits Magazine - Fall 2020 - 43
IEEE Solid-States Circuits Magazine - Fall 2020 - 44
IEEE Solid-States Circuits Magazine - Fall 2020 - 45
IEEE Solid-States Circuits Magazine - Fall 2020 - 46
IEEE Solid-States Circuits Magazine - Fall 2020 - 47
IEEE Solid-States Circuits Magazine - Fall 2020 - 48
IEEE Solid-States Circuits Magazine - Fall 2020 - 49
IEEE Solid-States Circuits Magazine - Fall 2020 - 50
IEEE Solid-States Circuits Magazine - Fall 2020 - 51
IEEE Solid-States Circuits Magazine - Fall 2020 - 52
IEEE Solid-States Circuits Magazine - Fall 2020 - 53
IEEE Solid-States Circuits Magazine - Fall 2020 - 54
IEEE Solid-States Circuits Magazine - Fall 2020 - 55
IEEE Solid-States Circuits Magazine - Fall 2020 - 56
IEEE Solid-States Circuits Magazine - Fall 2020 - 57
IEEE Solid-States Circuits Magazine - Fall 2020 - 58
IEEE Solid-States Circuits Magazine - Fall 2020 - 59
IEEE Solid-States Circuits Magazine - Fall 2020 - 60
IEEE Solid-States Circuits Magazine - Fall 2020 - 61
IEEE Solid-States Circuits Magazine - Fall 2020 - 62
IEEE Solid-States Circuits Magazine - Fall 2020 - 63
IEEE Solid-States Circuits Magazine - Fall 2020 - 64
IEEE Solid-States Circuits Magazine - Fall 2020 - 65
IEEE Solid-States Circuits Magazine - Fall 2020 - 66
IEEE Solid-States Circuits Magazine - Fall 2020 - 67
IEEE Solid-States Circuits Magazine - Fall 2020 - 68
IEEE Solid-States Circuits Magazine - Fall 2020 - 69
IEEE Solid-States Circuits Magazine - Fall 2020 - 70
IEEE Solid-States Circuits Magazine - Fall 2020 - 71
IEEE Solid-States Circuits Magazine - Fall 2020 - 72
IEEE Solid-States Circuits Magazine - Fall 2020 - 73
IEEE Solid-States Circuits Magazine - Fall 2020 - 74
IEEE Solid-States Circuits Magazine - Fall 2020 - 75
IEEE Solid-States Circuits Magazine - Fall 2020 - 76
IEEE Solid-States Circuits Magazine - Fall 2020 - 77
IEEE Solid-States Circuits Magazine - Fall 2020 - 78
IEEE Solid-States Circuits Magazine - Fall 2020 - 79
IEEE Solid-States Circuits Magazine - Fall 2020 - 80
IEEE Solid-States Circuits Magazine - Fall 2020 - 81
IEEE Solid-States Circuits Magazine - Fall 2020 - 82
IEEE Solid-States Circuits Magazine - Fall 2020 - 83
IEEE Solid-States Circuits Magazine - Fall 2020 - 84
IEEE Solid-States Circuits Magazine - Fall 2020 - 85
IEEE Solid-States Circuits Magazine - Fall 2020 - 86
IEEE Solid-States Circuits Magazine - Fall 2020 - 87
IEEE Solid-States Circuits Magazine - Fall 2020 - 88
IEEE Solid-States Circuits Magazine - Fall 2020 - 89
IEEE Solid-States Circuits Magazine - Fall 2020 - 90
IEEE Solid-States Circuits Magazine - Fall 2020 - 91
IEEE Solid-States Circuits Magazine - Fall 2020 - 92
IEEE Solid-States Circuits Magazine - Fall 2020 - 93
IEEE Solid-States Circuits Magazine - Fall 2020 - 94
IEEE Solid-States Circuits Magazine - Fall 2020 - 95
IEEE Solid-States Circuits Magazine - Fall 2020 - 96
IEEE Solid-States Circuits Magazine - Fall 2020 - 97
IEEE Solid-States Circuits Magazine - Fall 2020 - 98
IEEE Solid-States Circuits Magazine - Fall 2020 - 99
IEEE Solid-States Circuits Magazine - Fall 2020 - 100
IEEE Solid-States Circuits Magazine - Fall 2020 - 101
IEEE Solid-States Circuits Magazine - Fall 2020 - 102
IEEE Solid-States Circuits Magazine - Fall 2020 - 103
IEEE Solid-States Circuits Magazine - Fall 2020 - 104
IEEE Solid-States Circuits Magazine - Fall 2020 - 105
IEEE Solid-States Circuits Magazine - Fall 2020 - 106
IEEE Solid-States Circuits Magazine - Fall 2020 - 107
IEEE Solid-States Circuits Magazine - Fall 2020 - 108
IEEE Solid-States Circuits Magazine - Fall 2020 - 109
IEEE Solid-States Circuits Magazine - Fall 2020 - 110
IEEE Solid-States Circuits Magazine - Fall 2020 - 111
IEEE Solid-States Circuits Magazine - Fall 2020 - 112
IEEE Solid-States Circuits Magazine - Fall 2020 - 113
IEEE Solid-States Circuits Magazine - Fall 2020 - 114
IEEE Solid-States Circuits Magazine - Fall 2020 - 115
IEEE Solid-States Circuits Magazine - Fall 2020 - 116
IEEE Solid-States Circuits Magazine - Fall 2020 - 117
IEEE Solid-States Circuits Magazine - Fall 2020 - 118
IEEE Solid-States Circuits Magazine - Fall 2020 - 119
IEEE Solid-States Circuits Magazine - Fall 2020 - 120
IEEE Solid-States Circuits Magazine - Fall 2020 - 121
IEEE Solid-States Circuits Magazine - Fall 2020 - 122
IEEE Solid-States Circuits Magazine - Fall 2020 - 123
IEEE Solid-States Circuits Magazine - Fall 2020 - 124
IEEE Solid-States Circuits Magazine - Fall 2020 - 125
IEEE Solid-States Circuits Magazine - Fall 2020 - 126
IEEE Solid-States Circuits Magazine - Fall 2020 - 127
IEEE Solid-States Circuits Magazine - Fall 2020 - 128
IEEE Solid-States Circuits Magazine - Fall 2020 - Cover3
IEEE Solid-States Circuits Magazine - Fall 2020 - 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