Professional Documents
Culture Documents
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-1
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
A simple CPU design
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-2
Objectives
After completing this chapter, you will be able to:
Describe basic structures of P systems
Understand the basic operations of bus structures
Understand the essential operations of data transfer
Understand the design principles of GPIOs
Understand the design principles of timers
Understand the design principles of UARTs
Describe the design principles of CPUs
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-3
Syllabus
Objectives
Bus
A p system architecture
Bus structures
Bus arbitration
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
A simple CPU design
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-4
A Basic P System
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-5
Syllabus
Objectives
Bus
A p system architecture
Bus structures
Bus arbitration
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
A simple CPU design
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-6
Bus Structures
Tristate bus
using tristate buffers
often called bus for short
Multiplexer-based bus
using multiplexers
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-7
A Tristate Bus
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-8
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-9
15-10
A Multiplexer-Based Bus
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-11
Syllabus
Objectives
Bus
A p system architecture
Bus structures
Bus arbitration
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
A simple CPU design
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-12
Daisy-Chain Arbitration
Types of bus arbitration schemes
daisy-chain arbitration
radial arbitration
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-13
Syllabus
Objectives
Bus
Data transfer
Synchronous transfer mode
Asynchronous transfer mode
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-14
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-15
Two types
Single-clock bus cycle
Multiple-clock bus cycle
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-16
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-17
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-18
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-19
Syllabus
Objectives
Bus
Data transfer
Synchronous transfer mode
Asynchronous transfer mode
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-20
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-21
Strobe
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-22
Handshaking
Four events are proceeded in a cycle order
ready (request)
data valid
data acceptance
acknowledge
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-23
Handshaking
Two types
source-initiated transfer
destination-initiated transfer
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-24
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-25
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-26
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
A simple CPU design
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-27
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-28
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-29
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-30
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-31
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Interface
Basic operation modes
Advanced operation modes
15-32
Timers
Important applications
time-delay creation
event counting
time measurement
period measurement
pulse-width measurement
time-of-day tracking
waveform generation
periodic interrupt generation
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-33
Timers
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-34
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Interface
Basic operation modes
15-35
What is a timer?
What is a counter?
What is a programmable counter?
What is a programmable timer?
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-36
Terminal Count
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-37
Rate Generation
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-38
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-39
Square-Wave Generation
clk
4
out
0(4)
0(4)
Latch register = 4
(a) A waveform example of square-wave mode
Data bus
wr
latch_load
Latch
timer_load
timer_load
generator
clk
gate
rd
D Q
CK
out
timer
timer is 1
out logic
timer_enable
(b) Block diagram of square-wave mode
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-40
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
Interface
Basic transmitter structure
Basic receiver structure
Baud-rate generators
15-41
UARTs
Hardware model
the CPU interface
the I/O interface
Software model
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-42
UARTs
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-43
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
Interface
Basic transmitter structure
Basic receiver structure
Baud-rate generators
15-44
Baud rate
Sampling clock frequency
Stop bits
Parity check
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-45
A Transmitter of UARTs
The transmitter
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-46
A Transmitter of UARTs
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-47
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
Interface
Basic transmitter structure
Basic receiver structure
Baud-rate generators
15-48
A Receiver of UARTs
The receiver
a RDR
a receiver shift data register (RSDR)
a status register
a receiver control circuit
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-49
A Receiver of UARTs
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-50
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
Interface
Basic transmitter structure
Basic receiver structure
Baud-rate generators
15-51
Baud-Rate Generators
The baud-rate generator
provides TxC and RxC
Design approaches
Multiplexer-based approach
Timer-based approach
Others
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-52
Baud-Rate Generators
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-53
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
A simple CPU design
Programming model
Datapath design
Control unit design
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-54
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-55
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-56
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-57
Instruction Formats
Two major parts
Opcode
Operand
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-58
Addressing Modes
The ways that operands are fetched
register
indexed
register indirect
immediate
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-59
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-60
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-61
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-62
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
A simple CPU design
Programming model
Datapath design
Control unit design
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-63
A Datapath Design
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-64
ALU Functions
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-65
Syllabus
Objectives
Bus
Data transfer
General-purpose input and output
Timers
Universal asynchronous receiver and transmitter
A simple CPU design
Programming model
Datapath design
Control unit design
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-66
A Control Unit
The decoder-based approach
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-67
A Control Unit
A better approach
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-68
A Control Unit
The operations of T3 and T4 are determined separately by
each instruction
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-69