SOC Design - Circuits and Systems

Transcription

SOC Design - Circuits and Systems
VLSI SOC Design ET4351
Rene van Leuken
EWI/MECE/CAS
http://ens.ewi.tudelft.nl/Education/courses/et4351/index.ph
p
http://ens.ewi.tudelft.nl/Education/msc_projects.php
1
Goal
• The aim is of the course is to address important
aspects of SoC design methodology issues.
Including: 1) Algorithm to specification 2) Low
power digital design issues, 3) On-chip system
IP high level interconnect issues, 4) Hardware
<-> software interaction issues
• Synthesis based digital design from a language
description: SystemC, SystemC-AMS, C++,
VHDL, …
• Prototyping in FPGA boards
• Semi-custom VLSI design (UMC, TSMC)
2
Content
• Topics covered among other: optimization and
reduction techniques, Low power interconnect,
SoC design methodology, modelling,
specification and implementation,
communication architecture and protocols.
• Modern design starts from a C-based
description (System-C/AMS) or behaviour
description through synthesis tools to an FPGA
implementation.
3
Web Server
• All information is on:
ens.ewi.tudelft.nl/Education/courses/et4351
4
Books i
• Understanding Behavioral Synthesis, A practical
Guide to High-Level Design, John P. Elliot,
Kluwer Academic Publishers Study material ISBN: 079238542X
• Digital Systems Design with VHDL and
Synthesis: An Integrated Approach, KC Chang
ISBN: 0769500234
5
Books ii
• Low-Power Electronics Design by Christian
Piguet (Editor), ISBN: 0849319412
• Essential VHDL - RTL Synthesis Done Right, by
Sundar Rajan ISBN: 0966959000
• A SystemC Primer, J. Bhasker, ISBN 0-96503918-8
6
Schedule 2014
April 22 Tue. Introduction/content
April 25 Fri. Structured VHDL design
May 6 Tue. Communication, busses, Wishbone, NoC
May 9 Fri. SystemC, C++, Examples
May 13 Tue. SystemC TLM and SystemC AMS
May 16 Fri. Low power design, communication
May 20 Tue. ASIC flow (Cadence, Synopsys)
May 23 Fri. Introduction and division of projects
7
Basic architecture
DSP/Compute
block
processor
Instruction
program
bus
peripheral
8
Soc: Block schema
wb_SoC
IMEM
mbl1c_core
address_decoder
sys_ctrl
mst_wb_adapter
DMEM
wb_mbl1c
wb_slave
Communication: Wishbone
10
Communication: Wishbone
www.opencores.org
11
Wishbone timing
12
Projecting the future
04/10/12
Sept. 10, 2009
13
PATMOS 2009
13
3D stack of MPSoc and NoC's
TSV 3D chips
15
3D Stacking
IBM 2012
Circuits and Systems
MPSoC Architecture
●
●
●
●
2D or 3D, architectural challenges are
similar
Raw execution performance:
–Task scheduling/mapping/load-balancing
– where to execute what, and when
Memory Hierarchy:
–What data to keep on-chip?
–How to improve the efficiency of on-chip
caches?
Interconnect:
–How to reduce transfer latency, maintain
high throughput
–How to build in adaptability, redundancy,
security
Circuits and Systems
Assignments i
• All tasks have the goal to design and simulate some
hardware function, part of a SoC, and possibly to test
functionality on the Spartan 3 board.
• Language: VHDL or SystemC (C++)
• Exercises are grouped around the Xilinx MicroBlaze SoC
and the Avnet Spartan 3/6 board.
• Three themes: DSP (Image) and communication.
• Students grouped evenly for the themes!
19
Assignments ii
• All tasks /themes are the ‘same’
• Start with an algorithm, e.g. C Code or Matlab
• Design an hardware architecture; in VHDL or SystemC
• Your datapath
• Wishbone interface
• Power saving method?
• All modules will have a Wishbone bus interface
• Verify/simulate your design; Use the bus emulator package,
download from website;
• Synthesize your design
• In case IO theme: program FPGA and check communication
• Write report.
20
Theme Image
• Gray scale image operations
• C code template code from “Practical
algorithms for images analyses”, Michael Seul.
• Image binarization.
• Integer or fixed-point operations.
21
Image picture
22
Otsu's Algorithm
Otsu's method is used to automatically perform clusteringbased image thresholding or, the reduction of a graylevel
image to a binary image. The algorithm assumes that the
image to be thresholded contains two classes of pixels or bimodal histogram.
Algorithm
Compute histogram and probabilities of each intensity level
Set up initial and
Step through all possible thresholds maximum intensity
Update and Compute
Desired threshold corresponds to the maximum
You can compute two maxima (and two corresponding thresholds). is the greater
max and is the greater or equal maximum
threshold
C/C++ designs using ViVado HLS
C/C++ designs
Vivado HLS Estimates
Vivado HLS Scheduling
Theme ASIC
ASIC (semi custom) realization of a chip.
Existing VHDL code of a design: Xilinx MicroBlaze
Use Synopsys Design compiler and Cadence SoC
Encounter.
The goal is to 'map' the filter design to a semicustom cell library (Faraday SP90) and by using
SOCE place and route the design.
Design steps include: simulation, synsthesis (DC),
IO port design, power planning, clocktree
generation, P&P and GDS2 (SOCE) generation.
The result is a GDS2 file, which in principle could be
fabricated at a silicion foundry.
28
The power plan of the ASIC. Rings, stripes,
block halo and the selected floorplaning
are visible
View of the routed, verified and
finalized ASIC
UMC 90nm Realization
31
LowPower async 8051
32
Theme Communication
•
•
•
•
Communication interface processor.
Ethernet: DM9000E
High level communication chips.
VHDL and embedded C - and Host processor C
code.
33
FPGA board: Spartan 3
34
http://www.em.avnet.com
DM9000E board
35
DM9000E video
Assignments Procedure
• Select a topic and discuss it with me
• Design the IP block (hardware/software)
• Result = simulation, or in some cases implementation in
FPGA, C code software
• Write report: what/why/how/results. This typically a 4 to 10
page report.
37
Reactions 1
This labwork was much bigger and took much more time than I expected
it to do. On the web site of the course an estimation of 20 hours is given,
and I thought that I would have needed at least twice as much. I turned
out it took much longer than my own estimates. This might be due to the
fact that I worked alone. Besides the fact that it took a lot longer than
expected, I really enjoined the work itself. It gave me huge satisfaction to
see that at the end it was working well. I was also talking one day with a
man that is Computer Engineer in Italy, and we came in the discussion
about this labwork I was doing and it was very pleasant to hear that this
is the kind of work that he sometimes has to do in real life. It gave me
the feeling that all the courses and professors are really preparing me for
a job or research. I learned a lot during this lab course. First of all I had
never programmed in VHDL on such high level. I learned a lot about
VHDL and about approaching such an assignment. I also learned much
about the Wishbone bus interface and about C, for example about
arithmetic and logical shifts in C. I learned also a lot about simulating
with Modelsim and synthesizing with Synplify Pro. It will certainly be
useful in the future to know my way around in these programs. Last but
not least, I think I learned again to hold on. At some times I thought I
would never finish the job, and the strange values in the simulation kept
coming. I learned that I could do it if I just hold on and tried to debug it
by looking in completely other ways at my design. I think this will be the
38
most valuable lesson for the future.
Reactions 2
In the end we can say that the project went quite
well. The assignment was clear and we were able to
formulate a concept in the first meeting. Once we
fully understood the SoC templates we started
coding our bridge module. After successfully
simulating our design we tidied up our code to
include our latest VHDL coding ideas. We
experienced some trouble creating the bit file, but
once we got the latest ISE we were in business and
able to test our design on the development board.
Our first try was not completely right but after some
puzzling we realized that we did not map the reset
functionality.
The second try was successful. We both experienced
this small project as a welcome exercise for our
digital design and VHDL coding skills.
39
Reactions 3
We really liked working on this project, because we both
are very interested in (embedded) hardware/software codesign.
This project also master VHDL a lot more. We were
already experienced with VHDL, but by doing projects of
this size one gains more experience.
The project took us a lot more time than the 20
prescribed hours (multiples of it), but because we liked
the subject we didn’t care about that too much. Although
we would have liked it to test the design on our Spartan3E (XC3S500E) FPGA boards, we couldn’t find the time to
do this.
40