lecture01_f06

Download Report

Transcript lecture01_f06

ECE 551
Digital Design And Synthesis
Spring 2006
Course Introduction
Review
Overview





About this class
Overview of HDLs
The role of HDLs and synthesis
Hardware implementations
Quick Review:
 Boolean algebra
 K-maps
 Finite State Machines

Quick introduction to Verilog
2
Course Purpose

Provide knowledge and experience in:
 Contemporary logic design using an HDL (Verilog)
 HDL simulation
 Synthesis of structural and behavioral designs
 Analysis of design tradeoffs
 Optimizing hardware designs
 Design tools commonly used in industry

Teach you to be able to “think hardware”
3
What You Should Already Know

Principles of basic digital logic design (ECE 352)
 Boolean algebra
 Gate-level design
 K-Map minimization
 Sequential logic design
 Finite State Machines

How to log in to CAE machines and use a shell
4
Course Information

Class times
 Lecture: 1:00-2:15 Tuesday & Thursday, 2540 EH
 Discussion: 4:30-5:30 Thursday, 1209 EH
 No discussion section this week

Instructor office hours
 Prof. Mike Schulte [email protected], 4619 EH
Office Hours: Tuesday & Thursday, 2:30-3:30
5
Course Website

eCOW

Resource
 http://courses.engr.wisc.edu/ecow/get/ece/551/2schulte/
 Password: fall06_551 (for portions of website)
 Syllabus
 Course updates
 Tutorials
 Lecture notes, supplemental readings
 Homework assignments
 Project information
 CHECK IT OFTEN
6
Course Materials


Lectures
Text
 M. D. Cilleti, Advanced Digital Design with the Verilog
HDL, Prentice Hall, 2003.

Standards
 IEEE Std.1364-2001, IEEE Standard Verilog Hardware


Description Language, IEEE, Inc., 2001.
IEEE Std 1364.1-2002, IEEE Standard for Verilog
Register Transfer Level Synthesis, IEEE, Inc., 2002
Synopsys on-line documentation
7
Evaluation and Grading

Approximately:
 25% Homework (individually or pairs of students)
 30% Project (group of two or three students)
 20% Exam 1 (Tuesday, October 17th in class)
 25% Exam 2 (Thursday, December 7th in class)


Participating in these is important to your
understanding of the topic and your grade
Have Exam 2 instead of final – during second to
last week of class
8
Homeworks

Assignments will either be individual or in pairs
 Read the assignment to see!
 Start looking for homework & project partners

Homework due at beginning of class
 10% penalty for each late period of 24 hours
 Not accepted >72 hours after deadline
 Your responsibility to get it to me
 Can leave in my mailbox with a timestamp of when it was
turned in
9
Class Project



Work in groups of 2 or 3 students
Design, model, simulate, and synthesize realworld hardware circuit(s)
This semester
 Fast Fourier Transform (FFT) processor
 Computations use floating-point arithmetic
 Pipelined for high performance
 More details available soon
10
Course Tools

Industry-standard design tools:
 Modelsim HDL Simulation Tools (Mentor)
 Design Vision Synthesis Tools (Synopsys)
 LSI Logic Gflx 0.11 Micron CMOS Standard Cell
Technology Library

Tutorials will be available for both tools
 Modelsim tutorial next week (can start now)
 Design Vision tutorial a few weeks later
 Will be required as part of homework
 Can do on own time (within deadline)
 TA will set a time for a “help session”
11
Readings for Week 1

Read Chapter 1
 Introduction to Digital Design Methodology

Review Chapters 2-3
 Review of Combinational Logic Design
 Fundamentals of Sequential Logic Design
12
Overview of HDLs

Hardware description languages (HDLs)
 Are computer-based hardware programming



languages
Allow modeling and simulating the functional behavior
and timing of digital hardware
Synthesis tools take an HDL description and generate
a technology-specific netlist
Two main HDLs used by industry
 Verilog HDL (C-based, industry-driven)
 VHSIC HDL or VHDL (Ada-based,
defense/industry/university-driven).
13
Synthesis of HDLs


Takes a description of what a circuit DOES
Creates the hardware to DO it

HDLs may LOOK like software, but they’re not!
 NOT a program
 Doesn’t “run” on anything

 Though we do simulate them on computers
Don’t confuse them!
14
Describing Hardware!

All hardware created
during synthesis
 Even if a is true, still
if (a) f = c & d;
else if (b) f = d;
else f = d & e;
computing d&e

Learn to understand how
descriptions translated to
hardware
c
f
d
e
b
a
15
Why Use an HDL?

More and more transistors can fit on a chip
 Allows larger designs!
 Work at transistor/gate level for large designs: hard
 Many designs need to go to production quickly

Abstract large hardware designs!
 Describe what you need the hardware to do
 Tools then design the hardware for you

BIG CAVEAT
 Good descriptions => Good hardware
 Bad descriptions => BAD hardware!
16
Why Use an HDL?


Simplified & faster design process
Explore larger solution space
 Smaller, faster, lower power
 Throughput vs. latency
 Examine more design tradeoffs

Lessen the time spent debugging the design
 Design errors still possible, but in fewer places
 Generally easier to find and fix

Can reuse design to target different technologies
 Don’t manually change all transistors for rule change
17
Other Important HDL Features





Are highly portable (text)
Are self-documenting (when commented well)
Describe multiple levels of abstraction
Represent parallelism
Provides many descriptive styles
 Structural
 Register Transfer Level (RTL)
 Behavioral

Serve as input for synthesis tools
18
Hardware Implementations

HDLs can be compiled to semi-custom and
programmable hardware implementations
Full
Custom
Manual
VLSI
SemiCustom
Standard
Cell
Gate
Array
Programmable
FPGA
PLD
less work, faster time to market
implementation efficiency
19
Hardware Building Blocks


Transistors are switches
B
C
Use multiple transistors to make a gate
A

A
A
A
A
Use multiple gates to make a circuit
20
Standard Cells




Library of common gates and structures (cells)
Decompose hardware in terms of these cells
Arrange the cells on the chip
Connect them using metal wiring
…
21
FPGAs





“Programmable” hardware
Use small memories as truth tables of functions
Decompose circuit into these blocks
Connect using programmable routing
SRAM bits control functionality
FPGA Tiles
P
P2
P4
P6
P8
P1
P3
OUT
P5
P7
I1 I2 I3
22
Review: Boolean Algebra and K-maps


I just said we’re abstracting hardware design…
Why do you need to understand hardware?

In truth, good hardware design requires ability
to analyze a problem to find simplifications
 Which may involve boolean equations, K-maps

Why bother simplifying?
 Easier to design/debug, speed up synthesis
 Can have smaller/faster resulting hardware
 Synthesis tool only knows what you tell it
23
Example: Boolean Algebra
F = (A + B + C)(A + BC)
24
Example: K-Map
w x y z
f
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
25
FSM Review




Combinational and sequential logic
Often used to generate control signals
Reacts to inputs (including clock signal)
Can perform multi-cycle operations

Examples of FSMs
 Counter
 Vending machine
 Traffic light controller
 Phone dialing
26
Mealy/Moore FSMs
Mealy
Inputs
Next State
Logic
Output
Logic
Outputs
State Register
Current State
Next State
FF
27
FSMs

Moore
 Output depends only on current state
 Outputs are synchronous

Mealy
 Output depends on current state and inputs
 Outputs can be asynchronous

 Change with changes on the inputs
Outputs can be synchronous
 Register the outputs
 Outputs delayed by one cycle
28
Example: 3-bit Gray Code Counter


Only one bit changes state in each cycle
Simple FSM
 Output IS state #
 (States can be numbered however you want)
 No inputs apart from clock and reset
000
001
011
010
110
111
101
100
29
Verilog

In this class, we will use the Verilog HDL
 Used in academia and industry

VHDL is another common HDL
 Also used by both academia and industry


Many principles we will discuss apply to any HDL
Once you can “think hardware”, you should be
able to use any HDL fairly quickly
30
Verilog Module

In Verilog, a circuit is a module.
A[1:0]
2
module decoder_2_to_4 (A, D) ;
input [1:0] A ;
output [3:0] D ;
assign D =
(A == 2'b00) ? 4'b0001 :
(A == 2'b01) ? 4'b0010 :
(A == 2'b10) ? 4'b0100 :
(A == 2'b11) ? 4'b1000 ;
Decoder
2-to-4
4
D[3:0]
endmodule
31
Verilog Module
module name
ports names
of module
module decoder_2_to_4 (A, D) ;
port
types
input [1:0] A ;
output [3:0] D ;
assign D =
port
sizes
(A == 2'b00) ? 4'b0001 :
(A == 2'b01) ? 4'b0010 :
(A == 2'b10) ? 4'b0100 :
(A == 2'b11) ? 4'b1000 ;
endmodule
A[1:0]
2
Decoder
2-to-4
4
D[3:0]
module
contents
keywords underlined
32
Declaring A Module

Can’t use keywords as module/port/signal
names
 Choose a descriptive
module name

Indicate the ports (connectivity)

Declare the signals connected to the ports
 Choose descriptive
signal names

Declare any internal signals

Write the internals of the module (functionality)
33
Declaring Ports

A signal is attached to every port

Declare type of port
 input
 output
 inout (bidirectional)

Scalar (single bit) - don’t specify a size
 input cin;
Vector (multiple bits) - specify size using range
 Range is MSB to LSB (left to right)
 Don’t have to include zero if you don’t want to… (D[2:1])
 output OUT [7:0];
 input IN [0:4];

34
Module Styles

Modules can be specified different ways
 Structural – connect primitives and modules
 RTL – use continuous assignments
 Behavioral – use initial and always blocks

A single module can use more than one method!

What are the differences?
35
Structural


A schematic in text form
Build up a circuit from gates/flip-flops
 Flip-flops themselves described behaviorally

Structural design
 Create module interface
 Instantiate the gates in the circuit
 Declare the internal wires needed to connect gates
 Put the names of the wires in the correct port
locations of the gates
 For primitives, outputs always come first
36
Structural Example
module majority (major, V1, V2, V3) ;
output major ;
input V1, V2, V3 ;
wire N1, N2, N3;
and A0 (N1, V1, V2),
A1 (N2, V2, V3),
A2 (N3, V3, V1);
or Or0 (major, N1, N2, N3);
endmodule
V1
V2
A0
V2
V3
A1
V3
V1
A2
N1
N2
Or0
major
N3
majority
37
RTL Example
module majority (major, V1, V2, V3) ;
output major ;
input V1, V2, V3 ;
assign major = V1 & V2
| V2 & V3
| V1 & V3;
endmodule
V1
V2
majority
major
V3
38
Behavioral Example
module majority (major, V1, V2, V3) ;
output reg major ;
input V1, V2, V3 ;
always @(V1, V2, V3) begin
if (V1 && V2 || V2 && V3
|| V1 && V3) major = 1;
else major = 0;
end
V1
V2
V3
majority
major
endmodule
39
Things to do

Read Chapter 1
 Introduction to Digital Design Methodology

Review Chapters 2-3
 Review of Combinational Logic Design
 Fundamentals of Sequential Logic Design


Look over course syllabus
Start ModelSim tutorial
40