Lecture01 s07
Lecture01 s07
Spring 2007
Course Introduction Review
ECE 551
Overview
About this class Overview of HDLs The role of HDLs and synthesis Hardware implementations Quick Review:
Course Purpose
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
Number representations Boolean algebra Gate-level design K-Map minimization Sequential logic design Finite State Machines Basic arithmetic structures
Course Information
Class times
Lecture: 1:00-2:15 Tuesday & Thursday, 3534 EH Discussion: 6:00-7:00 Wednesday, TBD
No discussion section this week
Prof. Mike Schulte, [email protected], 4619 EH Office Hours: Monday & Tuesday, 2:30-3:30
TA office hours
Brian Hickman, [email protected], B555 Office Hours: Wednesday & Thursday, 2:30 to 3:30
5
Course Website
eCOW
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
Resource
Course Materials
Lectures Text
Standards
Description Language, IEEE, Inc., 2001. IEEE Std 1364.1-2002, IEEE Standard for Verilog Register Transfer Level Synthesis, IEEE, Inc., 2002
Approximately:
25% Homework (individually or pairs of students) 30% Project (group of two or three students) 20% Exam 1 (Thursday, March 1st in class) 25% Final (Sunday, May 13th)
Participating in these is important to your understanding of the topic and your grade
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
Class Project
Work in groups of 2 or 3 students Design, model, simulate, synthesize, and test a complex digital system Several milestones
Forming teams Project status report In class presentations Out of class demonstrations Project final report
Course Tools
Modelsim HDL Simulation Tools (Mentor) Design Vision Synthesis Tools (Synopsys) LSI Logic Gflx 0.11 Micron CMOS Standard Cell
Technology Library
Modelsim tutorial next week 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
12
Overview of HDLs
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
Synthesis of HDLs
Takes a description of what a circuit DOES Creates the hardware to DO it HDLs may LOOK like software, but theyre not!
14
Describing Hardware!
c d e b a
15
Allows larger designs! Work at transistor/gate level for large designs: hard Many designs need to go to production quickly
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
Smaller, faster, lower power Throughput vs. latency Examine more design tradeoffs
Design errors still possible, but in fewer places Generally easier to find and fix
Can reuse design to target different technologies
Hardware Implementations
Full Custom
Manual VLSI
Standard Cell
Gate Array
FPGA
PLD
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 P5 P7 I1 I2 I3
22
OUT
Easier to design/debug, speed up synthesis Can have smaller/faster resulting hardware Synthesis tool only knows what you tell it
23
24
Example: K-Map
w x y z 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 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 f 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0
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
Mealy/Moore FSMs
Mealy Inputs Outputs
Output Logic
Next State FF
27
FSMs
Moore
Output IS state # (States can be numbered however you want) No inputs apart from clock and reset
29
Verilog
In this class, we will use the Verilog HDL
30
Verilog Module
Decoder 2-to-4
4
D[3:0]
endmodule
31
Verilog Module
module name ports names of module
A[1:0]
2
port sizes
Decoder 2-to-4
4
D[3:0]
module contents
endmodule
32
Declaring A Module
Cant 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) - dont specify a size input cin;
Range is MSB to LSB (left to right) Dont have to include zero if you dont want to (D[2:1]) output OUT [7:0]; input IN [0:4];
34
Module Styles
Structural connect primitives and modules RTL use continuous assignments Behavioral use initial and always blocks
35
Structural
A schematic in text form Build up a circuit from gates/flip-flops
Gates are primitives (part of the language) 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) ;
V1 V2 V2 V3 V3 V1
A0
N1 N2 N3 majority
A1
Or0
major
A2
endmodule
37
RTL Example
module majority (major, V1, V2, V3) ;
V1
V2 V3
majority
major
38
Behavioral Example
module majority (major, V1, V2, V3) ;
V1 V2 V3
majority
major
39
Things to do
Read Chapter 1
40
Review Questions
What are some advantages of using HDLs, instead of schematic capture? What advantages and disadvantages do standard cell designs have compared to fullcustom designs? What are some ways in which HDLs differ from conventional programming languages? How are they similar? What are the different styles of Verilog coding?
41