Title: ASIC 120: Digital Systems and Standard-Cell ASIC Design
1ASIC 120 Digital Systems and Standard-Cell ASIC
Design
- Tutorial 1 Introduction to Digital Circuits
- January 25, 2006
2Outline
- Digital Systems
- Digital Design and its relation to ASICs
- Combinational Logic
- NOT, AND, OR, XOR, NAND, etc.
- mux, half-adder, full-adder
- Sequential Logic
- flip-flop/register, shift register, counter
3Digital Systems
- Analog vs. Digital
- continuously varying vs. discrete
- imprecise vs. precise
- 0..1 vs. 0 or 1
- Digital systems excel at
- repetitive calculations
- large amounts of data
- reproducible results
4Digital Systems
- Implemented in integrated circuits (ICs) mounted
on a printed circuit board (PCB)
5The Big Picture
6The Big Picture
7Components of a Digital System
- Printed circuit board (PCB)
- Embedded software
- microprocessor
- microcontroller
- digital signal processor (DSP)
- ASIC
- Programmable Logic Device (PLD)
- FPGA, etc.
8ASICs
- Application Specific Integrated Circuit
- from a user perspective, implies integrated
circuit with a specific application - from a design perspective, implies any integrated
circuit - Since we are designers, ASICs include
- SRAMs
- phase locked loops (PLLs)
- microprocessors
- analog-to-digital converters
- FPGAs
- etc.
9Consider an ASIC
- Physically comprised of
- Package
- Pins
- Silicon wafer
- metal interconnect layers
- insulating layers
- vias
- at the bottom, transistors resting on a silicon
substrate
10Consider an ASIC Package
11Consider an ASIC Side View
Source Figure 3-11 from ECE 438 textbook
(Rabaey, Jan M., Anantha Chandrakasan, Borivoje
Nikolic, Digital Integrated Circuits A Design
Perspective, 2nd Edition Pearson Education New
Jersey, 2003.)
12Consider an ASIC Substrate
Source Figure 3-13 from ECE 438 textbook (Rabaey
et al., Digital Integrated Circuits, 2nd
Edition)
13Consider an ASIC
- Conceptually
- System
- Module
- Gate
- Circuit
- Device
Source Figure 1-6 from ECE 438 textbook (Rabaey
et al., Digital Integrated Circuits, 2nd
Edition)
14FPGAs
- Field Programmable Gate Array
- part of the Complex Programmable Logic Device
(CPLD) family of PLDs - essentially reprogrammable hardware
- FPGAs can be very small or very big
- clock rates over 1 GHz
- implement multiple 32-bit processors
15Components of an FPGA
- Logic Elements (LEs)
- Routing
- Input/Output logic
- Extra features
- clocking
- memory
- memory interfaces
- multipliers
16The Logic Element
- Two main parts
- Look-Up Table (LUT) for combinational logic
- Flip Flop (FF) for sequential logic (memory)
17Top Level View of an FPGA
18Top Level View of an FPGA
19Digital ASIC/FPGA Design Flow
- Dependent on target environment, process,
resources available, etc. - Generic flow
- System architecture
- Register Transfer Level (RTL)
- high level, synthesizable, optimized
- functional simulation, timing simulation
- Synthesis
- more simulation
- Manufacturing
- testing
20Register Transfer Level (RTL)
- This is where we start
- schematic
- hardware description languages (VHDL, etc.)
21Combinational and Sequential Logic
- We can break a digital system into two types of
logic - Combinational
- computation happens in a linear fashion
- Sequential
- computation involves a feedback loop (memory)
22RTL and Combinational/Sequential Logic
Sequential
Feedback
Data Out
Register
Register
Register
Data In
Cloud of Logic
Cloud of Logic
Clock
Combinational
23Combinational Logic NOT
Truth Table
Input
Output
A X
0 1
1 0
Boolean algebra expression X A
24Combinational Logic AND
A B X
0 0 0
0 1 0
1 0 0
1 1 1
Boolean algebra expressions X A ? B X AB
25Combinational Logic OR
A B X
0 0 0
0 1 1
1 0 1
1 1 1
Boolean algebra expression X A B
26Combinational Logic XOR
A B X
0 0 0
0 1 1
1 0 1
1 1 0
Boolean algebra expression X A ? B
27Combinational Logic NAND
A B X
0 0 1
0 1 1
1 0 1
1 1 0
Boolean algebra expressions X A ? B X AB
28NAND Transistor Schematic
29NAND Transistor Layout
vdd
gnd
30Combinational Logic NOR, XNOR
A B X
0 0 1
0 1 0
1 0 0
1 1 0
X A B
A B X
0 0 1
0 1 0
1 0 0
1 1 1
X A ? B
31Building Combinational Circuits
A B C X
0 0 0 0
0 1 0 0
1 0 0 1
1 1 0 1
0 0 1 0
0 1 1 1
1 0 1 0
1 1 1 1
X AC BC
32Combinational Logic MUX(multiplexer)
A B C X
0 0 0 0
0 1 0 0
1 0 0 1
1 1 0 1
0 0 1 0
0 1 1 1
1 0 1 0
1 1 1 1
X AC BC
33Half Adder
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
S A ? B C AB
34Full Adder
S A ? B ? Ci Co AB Ci(A ? B)
35Full Adder
36Full Adder Application 8-BitRipple-Carry Adder
- Constructed by connecting 8 full adders together
A0
A1
A2
A3
A4
A5
A6
A7
B0
B1
B2
B3
B4
B5
B6
B7
0
Carry Out
S0
S1
S2
S3
S4
S5
S6
S7
37What Ive Skipped
- Gates with more than two inputs
- Karnaugh maps
- Quine-McCluskey method
- Binary arithmetic, base conversions
- Practical digital circuits have more than 0s and
1s - Transmission gates, tri-state buffers
38Sequential Logic
39Basic Feedback Element SR Latch
S R Q Qnext
0 0 0 0
0 0 1 1
1 0 1 1
1 0 0 1
0 1 1 0
0 1 0 0
1 1 0 N/A
1 1 1 N/A
40Basic Feedback Element SR Latch
S R Q
0 0 hold
1 0 1 (set)
0 1 0 (reset)
1 1 invalid
41Basic Feedback Element SR Latch
0
0
1
0
(Hold State)
42Basic Feedback Element SR Latch
0
0
1
0
1
0
(Hold State)
43Basic Feedback Element SR Latch
0
1
0
0
(Hold State)
44Basic Feedback Element SR Latch
0
1
0
1
0
0
(Hold State)
45Basic Feedback Element SR Latch
0
0
1
1
(Set State)
46Basic Feedback Element SR Latch
0
0
1
0
1
1
(Set State)
47Basic Feedback Element SR Latch
0
0
1
0
0
1
(Set State)
48Basic Feedback Element SR Latch
0
0
0
0
0
1
(Set State)
49Basic Feedback Element SR Latch
0
1
0
0
0
1
(Set State)
50Basic Feedback Element SR Latch
0
1
0
1
0
1
(Set State)
51Basic Feedback Element SR Latch
1
0
1
1
(Invalid State)
52Basic Feedback Element SR Latch
1
0
1
0
1
1
(Invalid State)
53Basic Feedback Element SR Latch
1
0
1
0
0
1
(Invalid State)
54Basic Feedback Element SR Latch
1
0
0
0
0
1
(Invalid State)
55Basic Feedback Element SR Latch
- Q and Q are supposed to have opposite
(complementary) values - i.e., Q Q
- In the invalid state (S 1, R 1) Q ? Q
- should be avoided
56D Flip-Flop or Register
D Clk Q Qnext
0 0 0 0
0 0 1 1
1 0 0 0
1 0 1 1
0 0?1 0 0
0 0?1 1 0
1 0?1 0 1
1 0?1 1 1
57D Flip-Flop or Register
- Clock input controls when data output takes value
of data input - triggered on either rising or falling edge of
clock
58Latches vs. Flip-Flops
- Latches
- no clock input
- data output changes in response to data input
- level-sensitive
- Flip-Flops
- has clock input
- data output changes in response to data input on
rising or falling clock edge - edge-sensitive
59Synchronous vs. Asynchronous
- Synchronous
- circuit operation governed by a clock
- currently more popular and practical
- flip-flops
- Asynchronous
- circuit operation independent of a clock
- potentially faster than synchronous
- lower power consumption
- difficult to design
- latches
60Sequential Constructs
- Shift registers
- Counters
- State Machines (next tutorial)
61Shift Register
- Consider a series of D flip-flops (DFFs)
connected in series, as a 4-bit shift register
Data Out
Data In
Clk
62Shift Register
0
0
0
0
0
Data Out
Data In
0
Clk
63Shift Register
0
0
1
0
0
Data Out
Data In
0
Clk
64Shift Register
0
0
1
1
0
Data Out
Data In
? (1)
Clk
65Shift Register
0
0
0
1
0
Data Out
Data In
? (0)
Clk
66Shift Register
0
0
0
0
1
Data Out
Data In
? (1)
Clk
67Shift Register
1
0
0
0
0
Data Out
Data In
? (1)
Clk
68Shift Register
0
1
0
0
0
Data Out
Data In
? (1)
Clk
69Counters Ring Counter
- Connect shift register output to input
- Add set and clear functionality to DFFs
Clk
Init
70Counters Ring Counter
0
0
0
1
0
Clk
1
Init
71Counters Ring Counter
0
0
0
1
0
Clk
0
Init
72Counters Ring Counter
0
0
0
0
1
? (1)
Clk
0
Init
73Counters Ring Counter
1
0
0
0
0
? (1)
Clk
0
Init
74Counters Ring Counter
0
1
1
0
0
? (1)
Clk
0
Init
75Counters Ring Counter
- Each DFF output is a digit in a binary number
- Sequence was 1000 (8)
- 0100 (4)
- 0010 (2)
- 0001 (1)
- 1000 (8)
-
0
0
0
1
0
? (1)
Clk
0
Init
76T Flip-Flop
- Clock is the only input
- Output inverts on rising edge of the clock (or
toggle) input
77Counters Binary Counter
- Implemented using series of T flip-flops
- Counts 0000, 0001, 0010, 0011, etc.
Clk
78Counters Binary Counter
0
0
0
0
Clk
79Counters Binary Counter
0
0
1
0
? (1)
Clk
80Counters Binary Counter
0
0
0
1
? (1)
Clk
81Counters Binary Counter
0
0
1
1
? (1)
Clk
82Counters Binary Counter
1
0
0
0
? (1)
Clk
83Counters Binary Counter
and so on
1
0
1
0
Q
Q
Q
Q
? (1)
Clk
T
T
T
T
84State Machines
- Useful abstract constructs for more complex
sequential logic - More on these next time
85What Ive Skipped
- Other flip-flops (RS, JK)
- Many other interesting sequential circuits
(barrel shifters, gray counters, etc.)
86Hardware Description Languages (HDLs)
- HDL describes in text a digital circuit
- Examples
- VHDL (we will look at this next time)
- Verilog
- AHDL
- JHDL
87Hardware Description Languages (HDLs)
- schematics are useful for
- drawing high level diagrams
- manually working out simple pieces of logic
- HDLs are useful for
- describing complex digital systems
- HDLs are not...
- software programming languages (C, Java,
assembly, etc.)
88Summary
- Digital Systems
- Digital Design and its relation to ASICs
- Combinational Logic
- NOT, AND, OR, XOR, NAND, etc.
- mux, half-adder, full-adder
- Sequential Logic
- flip-flop/register, shift register, counter
89Next Tutorial
- State machines
- Tutorial 1 in VHDL
- Digital Design Thought Process
- VHDL is not a programming language like C or Java
- hardware entities represented using text
90UW ASIC Design Team
- www.asic.uwaterloo.ca
- Reference material
- Bryce Leungs tutorials (UW ASIC website)
- Michael Goldsmiths tutorials (UW ASIC website)
- ECE 223, 427, 438 course notes textbooks
- My contact info
- Jeff Wentworth, j.wentworth_at_gmail.com