Title: Hardware Compilation Pie In The Sky or The Next Big Thing?
1Hardware CompilationPie In The Sky or The Next
Big Thing?
- Mike Roberts
- mroberts_at_altera.com
- mbr_at_compsoc.net
- Oxford University Computer Society - 2nd February
2000
2Agenda
- Semiconductors Overview
- Digital Design Overview
- Hardware Compilation
- Conclusions
3Semiconductors Overview
4In the Beginning...
- Originally all digital designs implemented using
individual transistors - Then using small Integrated Circuits (ICs) with 3
or 4 simple gates per chip - Still hundreds of chips required for each design!
5Time Passed...
- The 1980s - Application Specific Integrated
Circuits (ASICs) - Either Gate Arrays or Full Custom
- Produced much better implementations, but slow
and expensive to develop - 1990s - cell based ASICs and a compromise of the
two technologies - But also...
6A New Dawn!
- Programmable Logic - an alternative to custom
chips - Chips themselves are standard, but their
behaviour is defined by the designer by selecting
a configuration for the device. - Known as PLDs or FPGAs
7ASICs vs. PLDs
- Leading edge PLDs cannot be used for designs as
large or fast as leading edge ASIC designs. - But are still adequate for many tasks!
- Faster time-to-market
- Cheaper for small to medium volumes.
- Possibilities of in-field reconfiguration
8PLD Density Roadmap
10,000
Beyond APEX
1,000
APEX
FLEX 10K
Usable Gates (K)
100
10
FLEX 8000 FLEX 6000
Classic MAX
1
'90
'91
'92
'93
'94
'95
'96
'97
'98
'99
'00
'01
'02
'03
'04
9Intellectual Property in PLDs
R5000-Class RISC Processor
MPEG-2 Encoder
8-Port, 622-MHz ATM Switch
PCI Interface
40
43
45
46
40,000 Gates
400,000 Gates
2 Million Gates
4 Million Gates
10Top 10 ASIC/PLD Suppliers 1998
1,655
Lucent IBM NEC LSI Fujitsu Altera Xilinx TI Toshib
a VLSI
1,645
1,638
1,526
1,094
654 (836.6 for
1999)
629
590
546
513
Sales (M)
Ranking Includes Both Merchant Market
Intracompany Sales Source Dataquest/Altera,
preliminary April 1999
11Digital Design Overview
12Aims of Digital Design
- To create digital hardware that is
- As fast as possible
- Using as little silicon as possible
- Correct
- Under a set of environmental constraints
- Interfaces with rest of system
- power consumption
- etc.
- Made possible using CAD (or Digitial Automation)
Tools.
13Design Entry
- All designs used to be described using schematics
of gates. - Schematics still in use today (using higher level
blocks or primitives) - give a graphical way
of describing the structure of a design. - Hardware Description Languages invented to allow
textual equivalent of schematics. - More importantly, they can describe the behaviour
of the design.
14Simulation
- Simulation is critical in checking the
correctness of a design, especially when
designing for a non-programmable technology. - Modern-day simulators can take anything from a
high-level behavioural design to low-level
netlist, and apply simulation vectors to allow
the engineer to check the design is acting as
they intended.
15Synthesis
- Logic Synthesis is the task of taking a
behavioural design at the Logical level (commonly
known as the Register Transfer Level or RTL), and
producing a low-level structural view of the
design (a netlist). - Synthesis Tools use various optimisation
heuristics to try and produce the smallest and
fastest logical structure. - This is an intractable (or class NP) problem.
16Technology Mapping
- Once the design has gone through logic synthesis,
it must then be described in terms of the target
technology. - E.g. for Altera FLEX devices, the design will use
Look-up Tables for Combinatorial Logic, EABs for
RAM, etc. - Again we try and optimise for most efficient use
of hardware in terms of space and speed, and this
is another intractable problem.
17Place Route
- Finally the design must be given geometry
- Each small part of the design must be placed on
the chip and must be routed in an optimal way to
everything it is connected to in the design. - We can no-longer make the design any smaller,
however we need to make the design as fast as
possible, under the constraint that there are not
infinite routing resources. - Another intractable problem!
18Summary of Design Flow
Write RTL hardware design
Write fully behavioural test-bench
Final Design
19Limits of Synthesis
- Synthesis Tools are the state of the art in
Digital Design, but are not perfect. - RTL still a comparatively low abstraction level.
- Very long design Cycle due to complexity of
design that must be given. - System Design Models (e.g. Hardware / Software
Co-design systems) cannot be directly synthesised.
20Hardware Compilation
21What is Hardware Compilation?
- Hardware Compilation is bringing software
compiler concepts to the design flow of digital
hardware.
22The Benefits of HC
- Raises the Design Entry abstraction level
- Shortens the Design Cycle due to lower complexity
of original design. - Allows the System Model to become an
implementation in itself. - Allows software engineers to design hardware!
23The Challenges
- What language to use?
- Use HDLs like software languages.
- Use C/C and extend where necessary.
- Is using a software language a feasible entry
point for hardware design? - How do we interface with existing hardware
designs? - Behavioural and Architectural Synthesis
incorporate more NP problems
24Language choice using HDLs
- HDLs were originally invented as simulation
languages. - Their software features are limited to telling
the simulator what to do. - HDLs could be extended to be provide better
implementable high-level features. - Could lead to a very confused language.
- But hardware engineers may be able to use such a
language better than they could a software based
language.
25Language choice using C
- C is quite a small language, and so in theory
could be used fairly simply. - Known by a very large number of hardware and
software engineers. - Contains higher-level constructs than allowed in
RTL HDLs - But has no concept of parallelism, communication
or other hardware features. - Incorporation of extra features could get messy!
26Language choice using C / Java
- C based Object Oriented languages are used by a
large subset of C-speaking engineers. - Both have concepts of parallelism ranging from
implied (distinct classes in a system) to
explicit (as in Java) - Class Hierarchies could be built up expressing
the features of hardware. - But both languages are huge - how do you define
what is and isnt supported? - Expressing Instruction Level Parallelism is hard.
27Capturing the behavioural model
- The first stages in compiling hardware would be
similar to those of compiling software and would
result in an Abstract Syntax Tree representing
the original source code. - We then need to generate a behavioural model from
this code tree. One such model is a sequencing
graph, which is itself a hierarchy of data-flow
graphs.
28High-level Synthesis
- Once we have formed a model of our design we can
apply various behavioural optimisations to it,
similar to those in software. - We then perform Architectural Synthesis to form
an RTL description of our design. - AS is performed with knowledge of the resources
available to us, and consists of 2 tasks - Scheduling
- Allocation
29Difficulties
- There are known algorithms for AS when you have a
fixed number of specific operation resources
(adders, multipliers, registers), but the task is
harder for generic hardware. - What about pipelining?
- How do we express the interactive nature of our
environment, such as bus protocols? - For co-design tools, how do we decide what should
be implemented in hardware, and what in software?
30HC Activity in Industry
- ESL - HandelC http//www.embeddedsol.com/
- C Level Design http//www.cleveldesign.com/
- System C http//www.systemc.org/
- Cynapps http//www.cynapps.com/
- Frontier Design http//www.frontierd.com/
- Superlog http//www.co-design.com/
31Conclusions (1)
- The Holy Grail of taking any program in C and
producing a hardware / software implementation
that is significantly faster than its equivalent
software-only implementation looks highly
unlikely. - However, hardware compilation could work if the
program is constrained to a specific style, or
a suitable new language. - But new languages are often never accepted!
32Conclusions (2)
- Engineering never stops where it is.
- A higher level entry route is required for
engineers because of the ever progressing size of
hardware, and the increasing importance of
time-to-market - There is now significant interest in industry in
a hardware-compilation approach. - Programmable Logic is the most suitable target
for hardware compilation, and so looks set to
keep on making inroads into the ASIC market.
33And finally
- If Hardware Compilation becomes reality then a
whole new world opens up for Programmable Logic -
Reconfigurable Computing. - Tools would need to be extended, and new
paradigms of programming may be required! - But that remains in the sky for now!