Design Examples-Digital System Designs and Practices Using Verilog HDL and FPGAs
Design Examples-Digital System Designs and Practices Using Verilog HDL and FPGAs
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
15-4
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
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
15-6
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
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
// a bidirectional bus example module bidirectional_bus (data_to_bus, send, receive, data_from_bus, qout); parameter N = 2; // define bus width input send, receive; input [N-1:0] data_to_bus; output [N-1:0] data_from_bus; inout [N-1:0] qout; // bidirectional bus wire [N-1:0] qout, data_from_bus; // the body of tristate bus assign data_from_bus = receive ? qout : {N{1'bz}}; assign qout = send ? data_to_bus : {N{1'bz}}; endmodule
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley 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
15-12
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
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
General-purpose input and output Timers Universal asynchronous receiver and transmitter A simple CPU design
15-14
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
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
General-purpose input and output Timers Universal asynchronous receiver and transmitter A simple CPU design
15-20
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
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
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
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
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 3 2 1 0(4) 3 2 1 0(4)
Latch register = 4 (a) A waveform example of square-wave mode Data bus wr latch_load Latch rd
out
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
UARTs
Hardware model
the CPU interface the I/O interface
Software model
receiver data register (RDR) transmitter data register (TDR) status register (SR) control register (CR)
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
Digital System Designs and Practices Using Verilog HDL and FPGAs @ 2008-2010, John Wiley
15-45
A Transmitter of UARTs
The transmitter
a transmitter shift data register (TSDR) a TDR empty flag (TE) a transmitter control circuit a TDR parity generator
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
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
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