Platform Based Behavior Level and System
Platform Based Behavior Level and System
SYSTEM-LEVEL SYNTHESIS
Jason Cong, Yiping Fan, Guoling Han, Wei Jiang, Zhiru Zhang
University of California, Los Angeles
Email: {cong, fanyp, leohgl, wjiang, zhiruz}@cs.ucla.edu
Abstract— With the rapid increase of complexity in System- been widely identified as the next productivity boost for the
on-a-Chip (SoC) design, the electronic design automation (EDA) semiconductor industry. However, despite some recent success
community is moving from RTL (Register Transfer Level) in ESL simulation, the transition to ESL design will not be
synthesis to behavioral-level and system-level synthesis. The
needs of system-level verification and software/hardware co- as well accepted as the transition to RTL without robust and
design also prefer behavior-level executable specifications, such efficient behavior-level and system-level synthesis technolo-
as C or SystemC. In this paper we present the platform-based gies that automatically synthesize high-level functional de-
synthesis system, named xPilot, being developed at UCLA. The scriptions into optimized software/hardware implementations.
first objective of xPilot is to provide novel behavioral synthesis We believe that behavior-level and system-level synthesis and
capability for automatically generating efficient RTL code from
a C or SystemC description for a given system platform and optimizations are becoming imperative steps in EDA design
optimizing the logic, interconnects, performance, and power flows. They provide the following combined advantages:
simultaneously. The second objective of xPilot is to provide a Better complexity management: Design abstraction is one
platform-based system-level synthesis capability, including both of the most effective methods for controlling rising complexity
synthesis for application-specific configurable processors and and improving design productivity. For example, a recent
heterogeneous multi-core systems. Preliminary experiments on
FPGAs demonstrate the efficacy of our approach on a wide range study from NEC [8] shows that the code density (in terms
of applications and its value in exploring various design tradeoffs. of line counts) can be improved by nearly 10X when moved
to the behavior level. In addition, behavior-level and system-
I. M OTIVATION level synthesis have the added value of allowing efficient
The relentless tracking of Moore’s curve by the entire reuse of soft functional/behavioral IPs, which are technology-
semiconductor industry has showcased the exponential scaling independent and can be synthesized for different requirements.
of the transistor feature size by a factor of 0.7 reduction every Shorter verification/simulation cycle: System-level syn-
three years. This leads to exponentially increasing transistor thesis and optimizations allow the designers to start with a
counts and results in an explosive growth in functionality and specification in a high-level programming language (HPL)
the amount of computing power available on a single chip. such as C or SystemC that is directly executable and simulat-
Today it is perfectly feasible to design a System-on-a-Chip able with high speed (up to 1000X faster than RT-level simula-
(SoC) with one billion transistors [7], and it is generally tion according to [8]). More importantly, behavioral synthesis
believed that industry will continue to overcome technical automatically compiles the input descriptions into RTL code
hurdles to sustain this trend for another decade. However, through a series of formal constructive transformations. This
the cost of developing these chips and providing production avoids the slow and error-prone manual process and simplifies
facilities is also growing at a very fast pace. For instance, the design verification and debugging effort.
the total development cost of a single complex, high-density Rapid system exploration: With the coexistence of micro-
SoC at today’s 90-nm technology can easily be in the $20 processors, DSPs, memories and custom logic on a single
to $30 million range. The ITRS 2005 edition [7] has also chip, more software elements are involved in the process of
emphasized that the cost of design remains the greatest threat designing a modern embedded system. One of the fundamental
to continuation of the semiconductor roadmap. challenges of system-level design is the hardware/software
Unfortunately, the progress of design technologies lags partitioning, a task that is too complex to be feasible at the RT
behind that of process manufacturing technologies. The con- level. HPL-based design methodologies (especially C-based
stantly improving CAD tools can help to mitigate the problem designs) offer a promising solution to this problem. With
by delivering faster simulation, higher capacity formal ver- the aid of behavior-level synthesis, the software programming
ification, and better logic synthesis coupled with place-and- languages can also be used to specify functionality in hard-
route. However, these improvements fail to close the design ware. In this flow, designers can quickly experiment with
productivity gap, i.e., the number of available transistors grows different hardware/software boundaries by co-simulating the
faster than the ability to meaningfully design them. HPL descriptions and the automatically synthesized HDLs.
It is commonly acknowledged that the ultimate solution Higher quality of results: VLSI designs in current semi-
is to move to the next level of abstraction beyond RTL, conductor technologies are limited by interconnect in both
and Electronic system-level (ESL) design automation has delay and power. However, since the interconnects are deter-
Platform Description &
SystemC/C
Constraints each process uses a control data flow graph (CDFG) to cap-
ture its behavior. Each process interacts with other processes
xPilot xPilot front end through ports and channels. Each channel implements one or
Profiling more interfaces to capture certain communication protocols.
SSDM
Analysis
Altogether, an SSDM defines a process network to model
(System Synthesis the concurrent behavior of a complex system. On top of this
Data Model) Mapping powerful data model, various analysis, simulation and profiling
passes can be performed.
Processor &
Architecture Interface Behavioral We currently rely on the designers to manually partition
Synthesis Synthesis Synthesis
the application into software and hardware based on the
Processor Cores Drivers + Glue Logic
performance analysis. Once the hardware/software partitioning
+ Executables Custom Logic
is available, we invoke the xPilot behavioral synthesis engine
SoC
to compile the hardware portion of the design to the custom
logics. Specifically, xPilot performs platform-based synthesis
Fig. 1. xPilot system-level synthesis framework. and optimizations during scheduling and resource binding;
these construct an optimized state transition diagram (STG)
and an associated datapath model. At the back end, xPilot
mined by downstream physical design tools, it is very difficult generates RT-level VHDL together with the associated con-
for designers to make accurate estimation at the RT level. To straint files (e.g., multicycle path constraints, physical location
achieve timing and power closure, designers have to adjust constraints, etc.) to leverage the existing logic synthesis and
the initial RTL in an ad hoc manner and iterate over the time- physical design toolset. Additionally, xPilot also generates
consuming synthesis and layout process. We believe that by RT-level SystemC code for fast co-simulation with other
integrating automatic high-level optimizations together with software/hardware modules specified in SystemC.
physical planning, we can optimize the logic and interconnects Since the original design specification is written in a C-
simultaneously and achieve higher quality of results (QoR). based language, it is relatively straightforward to generate the
In this paper we present the xPilot synthesis system being software code for embedded processors. During the software
developed at UCLA. The goal of xPilot is to provide novel code generation step, we also generate the application-specific
platform-based synthesis technologies to simultaneously opti- instruction set for the extensible microprocessors. A pattern
mize the logic, interconnects, performance, and power (which generation, selection, and covering algorithm has been devel-
becomes much more difficult for human designers), so that we oped [3] to automatically identify and generate the custom in-
can improve both design productivity and quality of results. structions. We are also developing an microprocessor-network
The reminder of this paper is organized as follows: Sec- synthesis and mapping algorithm for homogeneous and/or
tion II presents an overview of the xPilot infrastructure and the heterogeneous multiprocessor systems to exploit task-level
main features of current xPilot implementation. Section III and parallelism and further speed up the software implementation.
Section IV briefly discuss the system front end and highlight In order to integrate the microprocessors and custom logics
the behavioral synthesis engine, respectively. The preliminary together, an interface synthesis module is being developed to
experimental results are reported in Section V. generate the software drivers and glue logics.