ECE545 Lecture 0 Introduction
ECE545 Lecture 0 Introduction
Fall 2015
Kris Gaj
Research and teaching interests:
• reconfigurable computing
• computer arithmetic
• cryptography
• network security
Contact:
The Engineering Building, room 3225
kgaj@gmu.edu
Office hours: Thursday, 6:00-7:00 PM,
Tuesday, 6:00-7:00 PM,
and by appointment
Course Web Page
MS in Electrical Engineering
Elective
ECE 545
Part of:
PhD in Electrical and Computer Engineering
ECE ECE
gate 681 682
ECE
586
transistor Digital
ECE Integrated
680 Circuits
layout Physical
VLSI Design
Semiconductor MOS Device
devices ECE 584 ECE684
Device Fundamentals Electronics
CpE CpE
Microprocessors and
Digital Systems Design
Embedded Systems
ECE 545 Digital System Design ECE 510 Real-Time Concepts
with VHDL ECE 511 Microprocessors
Pre- ECE 586 Digital Integrated Circuits ECE 611 Advanced Microprocessors
Approved ECE 645 Computer Arithmetic ECE 612 Real-Time Emb. Systems
ECE 681 VLSI Design for ASICs ECE 641 Computer System Arch.
Electives ECE 682 VLSI Test Concepts ECE 699 SW/HW Codesign
ECE 699 SW/HW Codesign ECE 699 Green Computing and
ECE 740 DSP HW Architectures Heterogeneous Architectures
Sanjay Deshpande
• help with the installation
and configuration of CAD tools
• Homework - 15%
• Project - 35%
For example:
Small points Big points
1. Alice 40 5
2. Bob 36 4.5
… … …
28. Charlie 8 1
Midterm exam 1
ü 2 hours 40 minutes
ü in class
ü design-oriented
Tentative date:
Last week of October
Final exam
ü 2 hours 45 minutes
ü in class
ü design-oriented
Date:
Thursday, December 17, 7:30-10:15pm
Textbooks
17
Required Textbook
Pong P. Chu, RTL Hardware Design Using VHDL,
Wiley-Interscience, 2006.
K?<JB@CCJ8E;>L@;8E:<E<<;<;KF
D8JK<IIKC?8I;N8I<;<J@>E
K_`j Yffb k\XZ_\j i\X[\ij _fn kf jpjk\dXk`ZXccp [\j`^e \]ÔZ`\ek# gfikXYc\# Xe[ jZXcXYc\
I\^`jk\i KiXej]\i C\m\c IKC [`^`kXc Z`iZl`kj lj`e^ k_\ M?;C _Xi[nXi\ [\jZi`gk`fe cXe^lX^\
Xe[ jpek_\j`j jf]knXi\% =fZlj`e^ fe k_\ df[lc\$c\m\c [\j`^e# n_`Z_ `j Zfdgfj\[ f] :?L
]leZk`feXc le`kj# iflk`e^ Z`iZl`k# Xe[ jkfiX^\# k_\ Yffb `ccljkiXk\j k_\ i\cXk`fej_`g Y\kn\\e
k_\M?;CZfejkilZkjXe[k_\le[\icp`e^_Xi[nXi\Zfdgfe\ekj#Xe[j_fnj_fnkf[\m\cfg
IKC?8I;N8I<;<J@>E
Zf[\j k_Xk ]X`k_]lccp i\Õ\Zk k_\ df[lc\$c\m\c [\j`^e Xe[ ZXe Y\ jpek_\j`q\[ `ekf \]ÔZ`\ek
^Xk\$c\m\c`dgc\d\ekXk`fe%
J\m\iXcle`hl\]\Xkli\j[`jk`e^l`j_k_\Yffb1
:f[`e^jkpc\k_Xkj_fnjXZc\Xii\cXk`fej_`gY\kn\\eM?;CZfejkilZkjXe[
_Xi[nXi\Zfdgfe\ekj
:feZ\gklXc[`X^iXdjk_Xk`ccljkiXk\k_\i\Xc`qXk`fef]M?;CZf[\j
<dg_Xj`jfek_\Zf[\i\lj\
GiXZk`ZXc\oXdgc\jkf[\dfejkiXk\Xe[i\`e]fiZ\[\j`^eZfeZ\gkj#
IKC ?8I;N8I<;<J@>E
gifZ\[li\j#Xe[k\Z_e`hl\j
LJ@E>M?;C
KnfZ_Xgk\ijfei\Xc`q`e^j\hl\ek`XcXc^fi`k_dj`e_Xi[nXi\
KnfZ_Xgk\ijfejZXcXYc\Xe[gXiXd\k\i`q\[[\j`^ejXe[Zf[`e^
Fe\Z_Xgk\iZfm\i`e^k_\jpeZ_ife`qXk`feXe[`ek\i]XZ\Y\kn\\edlck`gc\
ZcfZb[fdX`ej
8ck_fl^_k_\]fZljf]k_\Yffb`jIKCjpek_\j`j#`kXcjf\oXd`e\jk_\jpek_\j`jkXjb]ifdk_\
g\ijg\Zk`m\ f] k_\ fm\iXcc [\m\cfgd\ek gifZ\jj% I\X[\ij c\Xie ^ff[ [\j`^e giXZk`Z\j Xe[
LJ@E>M?;C
^l`[\c`e\jkf\ejli\k_XkXeIKC[\j`^eZXeXZZfddf[Xk\]lkli\j`dlcXk`fe#m\i`ÔZXk`fe#Xe[
k\jk`e^e\\[j#Xe[ZXeY\\Xj`cp`eZfigfiXk\[`ekfXcXi^\ijpjk\dfii\lj\[%;`jZljj`fe`j`e$
[\g\e[\ekf]k\Z_efcf^pXe[ZXeY\Xggc`\[kfYfk_8J@:Xe[=G>8[\m`Z\j%
N`k_ X YXcXeZ\[ gi\j\ekXk`fe f] ]le[Xd\ekXcj Xe[ giXZk`ZXc \oXdgc\j# k_`j `j Xe \oZ\c$
c\ek k\okYffb ]fi lgg\i$c\m\c le[\i^iX[lXk\ fi ^iX[lXk\ Zflij\j `e X[mXeZ\[ [`^`kXc cf^`Z%
<e^`e\\ij n_f e\\[ kf dXb\ \]]\Zk`m\ lj\ f] kf[XpËj jpek_\j`j jf]knXi\ Xe[ =G>8 [\m`Z\j
JZXcXY`c`kp
GfikXY`c`kp#Xe[
:f[`e^]fi<]ÔZ`\eZp#
j_flc[Xcjfi\]\ikfk_`jYffb%
GFE> G% :?L# G?;# `j 8jjfZ`Xk\ Gif]\jjfi `e k_\ ;\gXikd\ek f] <c\Zki`ZXc Xe[ :fdglk\i :f[`e^]fi<]ÔZ`\eZp#GfikXY`c`kp#Xe[JZXcXY`c`kp
<e^`e\\i`e^# :c\m\cXe[ JkXk\ Le`m\ij`kp% ?\ _Xj i\Z\`m\[ ^iXekj ]ifd Yfk_ E8J8 Xe[ k_\
EXk`feXcJZ`\eZ\=fle[Xk`feXe[_XjkXl^_kle[\i^iX[lXk\Xe[^iX[lXk\$c\m\c[`^`kXcjpjk\dj
Xe[Zfdglk\iXiZ_`k\Zkli\Zflij\j]fidfi\k_XeX[\ZX[\%
GFE>G%:?L
Supplementary Textbook – Basics Refresher
Stephen Brown and Zvonko Vranesic,
Fundamentals of Digital Logic with VHDL Design,
McGraw-Hill, 3rd or 2nd Edition
Supplementary Textbook – Advanced
Hubert Kaeslin, Digital Integrated Circuit Design:
From VLSI Architectures to CMOS Fabrication,
Cambridge University Press; 1st Edition, 2008.
Technology
&
Tools
21
What is an FPGA?
Configurable
Logic Blocks (CLB) /
Adaptive Logic
Modules (ALM)
Block RAMs
Block RAMs
I/O
Blocks
Block
RAMs
Modern FPGA
RAM blocks
RAM blocks
Multipliers
Multipliers/DSP units
Logic resources
Logic blocks
(CLBs or ALMs)
Programmable
interconnect
Programmable
logic blocks
x1 • Look-Up tables
x1 x2 x3 x4 y
x2
x3 LUT y
x1 x2 x3 x4 y are primary
x4
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1 elements for
0 0 1 0 1 0 0 1 0 0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
logic
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0 implementation
0 1 1 1 1 0 1 1 1 1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
• Each LUT can
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0 implement any
1 1 0 0 0 1 1 0 0 1
1
1
1
1
0
1
1
0
0
0
x1 x2 x3 x4
1
1
1
1
0
1
1
0
1
0
function of
1 1 1 1 0 1 1 1 1 0
4 inputs
x1 x2
25
6-Input LUT of Spartan-6
ASICs FPGAs
Off-the-shelf
High performance
29
Xilinx FPGA Families
Technology
Low-‐cost
High-‐performance
32
Spartan-6 FPGA Family
33
FPGA Design process (1)
Design and implement a simple unit permitting to
Specification / Pseudocode
speed up encryption with RC5-similar cipher with
fixed key set on 8031 microcontroller. Unlike in
the experiment 5, this time your unit has to be able
to perform an encryption algorithm by itself,
executing 32 rounds…..
entity RC5_core is
Functional simulation
port(
clock, reset, encr_decr: in std_logic;
data_input: in std_logic_vector(31 downto 0);
data_output: out std_logic_vector(31 downto 0);
out_full: in std_logic;
key_input: in std_logic_vector(31 downto 0);
key_read: out std_logic;
);
end AES_core;
Synthesis
Post-synthesis simulation
FPGA Design process (2)
Implementation
Timing simulation
Results
Configuration
On chip testing
Levels of design description
Levels supported by HDL
Algorithmic level
Level of description
Register Transfer Level
most suitable for synthesis
Combinational Combinational
Logic Logic
Registers
37
Synthesis
signal A1:STD_LOGIC;
signal B1:STD_LOGIC;
signal Y1:STD_LOGIC;
signal MUX_0, MUX_1, MUX_2, MUX_3: STD_LOGIC;
begin
A1<=A when (NEG_A='0') else
not A;
B1<=B when (NEG_B='0') else
not B;
Y<=Y1 when (NEG_Y='0') else
not Y1;
end MLU_DATAFLOW;
39
Circuit netlist (RTL view)
40
Implementation
LUT0
FF1
LUT1
FF2
LUT2
42
FPGA
Placing
CLB SLICES
43
FPGA
Routing
Programmable Connections
44
Configuration
• Once a design is implemented, you must create a
file that the FPGA can understand
• This file is called a bitstream: a BIT file (.bit extension)
45
Simulation Tools
FPGA Synthesis Tools
XST
Logic Synthesis
VHDL description Circuit netlist
architecture MLU_DATAFLOW of MLU is
signal A1:STD_LOGIC;
signal B1:STD_LOGIC;
signal Y1:STD_LOGIC;
signal MUX_0, MUX_1, MUX_2, MUX_3: STD_LOGIC;
begin
A1<=A when (NEG_A='0') else
not A;
B1<=B when (NEG_B='0') else
not B;
Y<=Y1 when (NEG_Y='0') else
not Y1;
end MLU_DATAFLOW;
FPGA Implementation
simulation
synthesis
implementation
Xilinx FPGA Tools
Home
Aldec Active-HDL Xilinx ISE
Design Flow Design Flow
Aldec Active-HDL ISim
Student Edition (IDE)
Xilinx XST Xilinx XST
(restricted) (restricted)
Xilinx ISE WebPACK Xilinx ISE WebPACK (IDE)
(restricted) (restricted)
simulation
synthesis
implementation
Altera FPGA Tools
ECE Labs
Altera
Design Flow
simulation
synthesis & implementation
Altera FPGA Tools
Home
Altera
Design Flow
simulation
synthesis & implementation
Lab Access Rules and Behavior Code
Please refer to
and in particular to
60
Why Athena?
61
Basic Dataflow of ATHENa
User FPGA Synthesis and
Implementation
6
5
2 3
Ranking
Database
of designs
query HDL + scripts + Result Summary
configuration files + Database
Entries
ATHENa 1
Server
Download scripts HDL + FPGA Tools
and
configuration files8
Database Designer
Entries Interfaces
0 + Testbenches 62
configura?on
constraint
files
files
testbench
synthesizable
source
files
database
result
entries
summary
(machine-‐
(user-‐friendly)
friendly)
63
ATHENa
Major
Features
(1)
• synthesis,
implementa>on,
and
>ming
analysis
in
batch
mode
• support
for
devices
and
tools
of
mul?ple
FPGA
vendors:
• genera>on
of
results
for
mul?ple
families
of
FPGAs
of
a
given
vendor
• automated
choice
of
a
best-‐matching
device
within
a
given
family
64
ATHENa
Major
Features
(2)
• automated
verifica?on
of
designs
through
simula>on
in
batch
mode
OR
• support
for
mul?-‐core
processing
• automated
extrac?on
and
tabula?on
of
results
• several
op?miza?on
strategies
aimed
at
finding
– op>mum
op>ons
of
tools
– best
target
clock
frequency
– best
star>ng
point
of
placement
65
Generation of Results Facilitated by ATHENa
vs.
1.5
Area
1 Thr
Thr/Area
0.5
Vivado
Boldport Flow
68
Distinguishing Features of ATHENa
69
Benchmarking Goals Facilitated by ATHENa
Comparing multiple:
1. cryptographic algorithms
2. hardware architectures or implementations
of the same cryptographic algorithm
3. hardware platforms from the point of view
of their suitability for the implementation of a given algorithm,
(e.g., choice of an FPGA device or FPGA board)
4. tools and languages in terms of quality
of results they generate (e.g. Verilog vs. VHDL,
Synplicity Synplify Premier vs. Xilinx XST,
ISE v. 14.7 vs. ISE v. 14.6)
70
Project
71
Cryptography Project