4. XPS 16550 UART
• UART: Universal Asynchronous Receiver/Transmitter
• XPS 16550 UART is an IP Core.
4
5. XPS 16550 UART
• Features:
• Connects as a 32-bit Slave on PLB bus of 32, 64 and 128 bits data
width
• Hardware and software register compatible with all standard 16450
and 16550 UARTs
• Implements all standard serial interface protocols
• − 5, 6, 7 or 8 bits per character
• − Odd, Even or no parity detection and generation
• − 1, 1.5 or 2 stop bit detection and generation
• − Internal baud rate generator and separate receiver clock input
• − Prioritized transmit, receive, line status
• − False start bit detection and recover
• − Line break detection and generation
• − Internal loop back diagnostic functionality
• − 16 byte transmit and receive FIFOs
5
7. XPS 16550 UART
• The XPS 16550 UART performs parallel to serial conversion on
characters received from the CPU and serial to parallel conversion
on characters received from a modem or microprocessor
peripheral.
• The XPS 16550 UART is capable of transmitting and receiving 8, 7,
6, or 5 bit characters. The XPS 16550 UART can transmit and receive
independently.
• The device can be configured and it’s status monitored via the
internal register set. The XPS 16550 UART is capable of signaling
receiver, transmitter and modem control interrupts.
• These interrupts can be masked and prioritized.
• The device contains a 16 bit, programmable, baud rate generator
and independent 16 byte transmit and receive FIFOs.
7
8. XPS 16550 UART
• The top level modules of the XPS 16550 UART are:
– PLB Interface Module
– IPIC_IF
– UART16550
8
XPS 16550 UART Top-level Block Diagram
9. XPS 16550 UART
• PLB Interface Module
• PLB Interface Module provides bidirectional interface between UART
16550 module and the PLB.
• The base element of the PLB Interface Module is slave attachment,
which provides the basic functionality of PLB slave operation.
• IPIC_IF
• IPIC_IF module incorporates logic to acknowledge the write and
read transactions.
9
10. XPS 16550 UART
• UART 16550
• UART 16550 provides all the core features for transmission,
reception of data and modem features of UART.
• The UART 16550 module of XPS 16550 UART can be configured for
16450 or 16550 mode of operation.
• This is accomplished by the usage of generic C_IS_A_16550.
• If C_IS_A_16550 set to one, the FIFOs instantiated to support 16550
mode of operation.
• When C_IS_A_16550 is set to zero, the module works without FIFOs
in 16450 mode.
10
13. XPS Serial Peripheral Interface (SPI)
• Introduction
• The XPS Serial Peripheral Interface (SPI) connects to the PLB V4.6
(Processor Local Bus with Xilinx simplifications) and provides a serial
interface to SPI devices such as SPI EEPROMs and SPI serial flash
devices.
• The SPI protocol, provides a simple method for a master and a
selected slave to exchange data.
13
14. XPS Serial Peripheral Interface (SPI)
• Features
• Connects as a 32-bit slave on PLB buses of 32, 64 or 128 bits
• Supports four signal interface (MOSI, MISO, SCK and SS)
• Supports slave select (SS) bit for each slave on the SPI bus
• Supports full-duplex operation
• Supports master and slave SPI modes
• Supports programmable clock phase and polarity
• Supports continuous transfer mode for automatic scanning of a
peripheral
• Supports automatic or manual slave select modes
• Supports MSB/LSB first transactions
• Supports transfer length of 8-bits, 16-bits or 32-bits
• Supports local loopback capability for testing
• Supports multiple master and multiple slave environment
14
16. XPS Serial Peripheral Interface (SPI)
16
Top-Level Block Diagram for the XPS SPI IP Core
17. XPS Serial Peripheral Interface (SPI)
• The XPS SPI IP Core is a full-duplex synchronous channel that
supports four-wire interface (receive, transmit, clock and slave-select)
between a master and a selected slave.
• The XPS SPI IP Core supports Manual Slave Select Mode as the
Default Mode of operation.
• This allows transfers of an arbitrary number of elements without
toggling the slave select line between elements.
• However, the user must toggle the slave select line before starting a new
transfer.
• The other mode of operation is Automatic Slave Select Mode.
• In this mode the slave select line is toggled automatically after
each element transfer.
17
18. XPS Serial Peripheral Interface (SPI)
• The XPS SPI IP Core supports continuous transfer mode, wherein
when configured as master the transfer continues till the data is
available in transmit register/FIFO.
• This capability is provided in both manual and automatic slave
select modes.
• When XPS SPI IP Core is configured as a slave and its slave select
line (SPISEL) goes high (i.e. in-active state) in between the data
element transfer, then the current transfer is aborted.
• Again if the slave select line goes low then the aborted data
element is transmitted again.
18
19. XPS Serial Peripheral Interface (SPI)
• The XPS SPI IP Core permits additional slaves to be added.
• Additional masters can be added as well.
• To eliminate conflicts, software is required to arbitrate bus control.
• The XPS SPI IP Core can communicate with both off-chip and on-
chip masters and slaves.
• The number of slaves is limited to 32 by the size of the Slave Select
Register.
• All the SPI and INTR registers are 32-bit wide. The XPS SPI IP Core
supports only word access to all SPI and INTR register modules.
19
20. XPS Serial Peripheral Interface (SPI)
• The XPS SPI IP Core modules are described in the sections below.
• PLB Interface Module:
• The PLB Interface Module provides the interface to the PLB V4.6
slave. The read and write transactions at the PLB are translated
into equivalent IP Interconnect (IPIC) transactions.
• The PLB Interface Module also provides an address decoding
service for XPS SPI Core.
• SPI Register Module:
• The SPI Register Module includes all memory mapped registers.
• It interfaces to the PLB.
• It consists of Status Register, Control Register, N-bit Slave Select
Register (N 32) and a pair of Transmit/Receive Registers.
20
21. XPS Serial Peripheral Interface (SPI)
• The XPS SPI IP Core modules are described in the sections below.
• INTR Register Module:
• The INTR Register Module consists of interrupt related registers
namely device global interrupt enable register (DGIER), IP interrupt
enable register (IPIER) and IP interrupt status register (IPISR).
• SPI Module:
• The SPI Module consists of a shift register, a parameterized baud
rate generator (BRG) and a control unit.
• It provides the SPI interface, including the control logic and
initialization logic.
• It is the heart of core.
21
22. XPS Serial Peripheral Interface (SPI)
• The XPS SPI IP Core modules are described in the sections below.
• Optional FIFOs:
• The Tx FIFO and Rx FIFO are implemented on both transmit and
receive paths.
• The width of Tx FIFO and Rx FIFO is same.
• The depth of these FIFO’s is 16, which is FIFO design dependent.
22
24. IP XPS Timer/Counter
• Introduction
• The XPS Timer/Counter is a 32-bit timer module that is attached to
the PLB bus.
24
25. IP XPS Timer/Counter
• Features
• Connects as a 32-bit slave on PLB V4.6 buses of 32, 64 or 128 bits
• PLB interface with byte-enable support
• Two programmable interval timers with interrupt, event generation,
and event capture capabilities
• Configurable counter width
• One Pulse Width Modulation (PWM) output
• Freeze input for halting counters during software debug
25
29. IP XPS Timer/Counter
• The Timer/Counter is organized as two identical timer modules.
• Each timer module has an associated load register that is used to
hold either the initial value for the counter for event generation, or a
capture value, depending on the mode of the timer.
• The generate value is used to generate a single interrupt at the
expiration of an interval, or a continuous series of interrupts with a
programmable interval.
• The capture value is the timer value that has been latched on
detection of an external event.
• The clock rate of the timer modules is SPLB_Clk.
• All of the Timer/Counter interrupts are OR’ed together to generate a
single external interrupt signal.
29
30. IP XPS Timer/Counter
• Timer Modes:
• There are three modes that can be used with the two Timer/Counter
modules:
• Generate mode
• Capture mode
• Pulse Width Modulation (PWM) mode.
30
31. IP XPS Timer/Counter
• Timer Control/Status Register 0 (TCSR0)
31
ENALL: Enable All Timers
0 = No effect on timers
1 = Enable all timers (counters run)
32. IP XPS Timer/Counter
• Timer Control/Status Register 0 (TCSR0)
32
PWMA0: Enable Pulse Width Modulation for Timer0
0 = Disable pulse width modulation
1 = Enable pulse width modulation
T0INT: Timer0 Interrupt Read:
0 = No interrupt has occurred
1 = Interrupt has occurred
Write:
0 = No change in state of T0INT
1 = Clear T0INT (clear to ’0’)
34. IP XPS Timer/Counter
• Timer Control/Status Register 0 (TCSR0)
34
LOAD0: Load Timer0
0 = No load
1 = Loads timer with value in TLR0
ARHT0: Auto Reload/Hold Timer0
0 = Hold counter or capture value
1 = Reload generate value or overwrite capture value
36. IP XPS Timer/Counter
• Timer Control/Status Register 0 (TCSR0)
36
UDT0: Up/Down Count Timer0
0 = Timer functions as up counter
1 = Timer functions as down counter
MDT0: Timer0 Mode
0 = Timer mode is generate
1 = Timer mode is capture
37. IP XPS Timer/Counter
• Generate Mode:
• In this mode, the value in the load register is loaded into the
counter.
• The counter, when enabled, begins to count up or down, depending
on the selection of the UDT bit in the Timer Control Status Register
(TCSR).
• On transition of the carry out of the counter, the counter stops or
automatically reloads the generate value from the load register and
continues counting as selected by the ARHT bit in the TCSR.
• The TINT bit is set in TCSR and, if enabled, the external
GenerateOut signal is driven to 1 for one clock cycle.
• This mode is useful for generating repetitive interrupts or external
signals with a specified interval.
37
38. IP XPS Timer/Counter
• Capture Mode:
• In Capture Mode, the value of the counter is stored in the load
register when the external capture signal is asserted.
• The TINT bit is set in the Timer Control Status Register (TCSR) on
detection of the capture event.
• The counter can be configured as an up or down counter for this
mode as determined by the selection of the UDT bit in TCSR.
• The ARHT bit controls whether the capture value is overwritten
with a new capture value before the previous TINT flag is cleared.
• This mode is useful for time tagging external events while
simultaneously generating an interrupt.
38
39. IP XPS Timer/Counter
• Pulse Width Modulation (PWM) Mode:
• In PWM mode, two timer/counters are used as a pair to produce an
output signal (PWM0) with a specified frequency and duty factor.
• Timer0 sets the period and Timer1 sets the high time for the PWM0
output.
39
40. IP XPS Timer/Counter
• Interrupts:
• The TC interrupt signals can be enabled or disabled with the ENIT
bit in the TCSR.
• The interrupt status bit (TINT) in the TCSR cannot be disabled and
always reflects the current state of the timer interrupt.
• In Generate Mode, a timer interrupt is caused by the counter rolling
over.
• In Capture Mode, the interrupt event is the capture event.
40
42. XPS IIC Bus Interface
• Introduction
• IIC Bus (I2C or I2C) means Inter-Integrated Circuit Bus
• I2C Protocol is intended to allow multiple “slave” digital integrated
circuits (“chips”) to communicate with one or more “master” chips.
• It is intended for short distance communications within a single
device.
42
43. XPS IIC Bus Interface
• Introduction
• This product/module defines the architecture, hardware (signal)
interface, software (register) interface and parameterization options
for the XPS IIC module.
• It provides a low speed, two wire, serial bus interface to a large
number of popular devices.
• XPS IIC supports all features, except high speed mode, of the
Philips I2C bus, V2.1.
43
44. XPS IIC Bus Interface
• Features
• Connects as a 32-bit Slave on PLB bus of 32, 64 and 128 bits data width
• Master or slave operation
• Multi-master operation
• Arbitration lost interrupt with automatic mode switching from master to slave
• Calling address identification interrupt with automatic mode switching from
master to slave
• START and STOP signal generation/detection
• Acknowledge bit generation/detection
• Bus busy detection
• Fast mode 400 KHz operation or standard mode 100 KHz
• 7 bit or 10 bit addressing
• General call enable or disable
• Transmit and receive FIFOs - 16 bytes deep
• General purpose output, 1 bit to 8 bits wide
• Filtering on the SCL and SDA signals to eliminate pulses
44
46. XPS IIC Bus Interface
46
XPS IIC Top Level Block Diagram
SDA: Serial Data
SCL: Serial Clock
47. XPS IIC Bus Interface
• The PLB Slave Interface Module provides the transaction interface
to the PLB bus.
• A register interface block implements the address map and
connectivity for the firmware to control IIC data transfer operations.
• The module includes bi-directional I/O buffers which implement open
collector drivers for the SDA and SCL signals.
• The user must provide external pull up devices to properly hold the
bus at the logic 1 state when the connection to ground is removed.
47
48. XPS IIC Bus Interface
• Multi Master Operation
• The controller participates in multi master arbitration when the bus
is initially free.
• After it issues the START, other masters may participate in addressing
and the XPS IIC will correctly assigns the bus.
• However, if the bus is not free, at the START and the request to
acquire the bus is made by other masters then the XPS IIC will wait
until the bus becomes free.
48
49. XPS IIC Bus Interface
• Dynamic IIC Controller Logic
• The dynamic controller logic provides an interface to the XPS IIC
controller.
• The dynamic logic supports master mode only and 7 bit addressing
only.
• The dynamic logic is controlled by a start and stop bit that is located
in the transmit FIFO.
• If neither of these bits are set, then the dynamic logic is disabled.
49
50. XPS IIC Bus Interface
• Signal Filtering
• The Philips Specification for I2C indicates that 0 to 50 ns of pulse
rejection may be applied when operating in fast mode (>100 kHz).
• The user may specify the max amount allowed through the filtering
parameters C_SCL_INERTIAL_DELAY & C_SDA_INERTIAL_DELAY.
• These parameters specify the amount of delay in clock cycles.
• Some designs may not require any filtering and others (operating
<100 kHz) may require the maximum amount of filtering.
• It depends on many factors beyond the control of the core itself.
50
52. Xilinx ISE Tool
• ISE Design Suite: Embedded Edition
Embedded Edition provides the fundamental tools and
technologies to achieve optimal design results.
These include intelligent clock gating for dynamic power reduction
and a partial reconfiguration for greater system flexibility, size,
power, and cost reduction.
• ISE Design Suite: System Edition
It is build on top of the Embedded Edition by adding on System
Generator for DSP.
52
53. Xilinx ISE Tool
• ISE Design Suite: WebPACK Edition
ISE WebPACK delivers a complete, front-to-back design flow
providing instant access to the ISE features and functionality.
53
54. Xilinx ISE Tool
• Additional Options
The ISE Design Suite offers tools to enhance designer productivity and
flexible configurations.
• High-Level Synthesis – Vivado High-Level Synthesis accelerates IP
creation by enabling C, C++ and System C specifications.
• Partial Reconfiguration – It allows designers to change functionality
on the fly, eliminating the need to fully reconfigure.
• ChipScope – The ChipScope Pro Serial I/O Toolkit provides a fast,
easy and interactive setup and debug of serial I/O channels in high-
speed FPGA designs for use with the WebPACK edition.
54
55. Xilinx ISE Tool
• Additional Options
The ISE Design Suite offers tools to enhance designer productivity and
flexible configurations.
• Embedded Development Kit – It is an integrated development
environment for designing embedded processing systems for use
with WebPACK edition.
• System Generator for DSP – The industry’s leading high-level tool for
designing high-performance DSP systems using Xilinx devices for
use with the WebPACK edition.
55
56. Xilinx EDK Tool
• It is an embedded hardware platform typically consists of one or
more processors, peripherals and memory blocks, interconnected
via processor buses.
• It also has port connections to the outside world.
• Each of the processor cores parameters can be adjusted to customize
its behavior.
56
57. Xilinx EDK Tool
• This kit includes Xilinx Platform Studio (XPS) and the Software
Development kit (SDK), as well as all the documentation and IP cores.
• The Embedded Development Kit Provides:
– Xilinx Platform Studio (XPS) Tool Suite –
XPS can be used to configure the embedded system architecture,
buses and peripherals.
– Software Development Kit (SDK) –
SDK is the recommended software-centric design environment.
– Real-Time Operating System and Embedded OS Support -
Provides design support and board support package for numerous
third party suppliers in the Xilinx systems.
57
58. System Design Process
• The tools provided with EDK are designed to assist in all phases of the
embedded design process
58
59. Xilinx Platform Studio
• XPS provides an integrated environment for creating embedded
processor systems based on MicroBlaze and PowerPC processors.
• XPS also provides an editor and a project management interface to
create and edit source code.
• From XPS, you can run all embedded system tools needed to
process hardware system components.
• XPS offers the following features:
– Ability to add processor and peripheral cores, edit core
parameters, and make bus and signal connections to generate an
MHS file.
– Ability to generate and view a system block diagram and/or
design report.
– Ability to export hardware specification files for import into
SDK.
59
60. Xilinx Platform Studio
• XPS Tools and Utilities:
• The Base System Builder Wizard (BSB):
– BSB wizard helps you quickly to build a working system.
– Some embedded design projects can be completed using the BSB
wizard alone.
• The Create and Import Peripheral Wizard (CIP):
– CIP wizard helps you create your own peripherals and import them
into XPS-compliant projects.
– In the Create mode, the CIP wizard creates templates that help you
implement your peripheral.
– In the Import mode, this creates the interface files and directory
structures that are necessary to make your peripheral visible to the
various tools in XPS.
60
61. Xilinx Platform Studio
• XPS Tools and Utilities:
• Platform Generator (Platgen):
– Platgen compiles the high-level description of embedded processor
system into HDL.netlists.
• FXPS Command Line or “no window” Mode:
– XPS includes a “no window” mode that allows you to run from an
operating system command line.
61
62. Xilinx Platform Studio
• XPS Tools and Utilities:
• Debug Configuration Wizard
– One can instantiate a ChipScope core to monitor the Processor
Local Bus (PLB) or any other system-level signals.
– You can also provide JTAG-based virtual input and output for
monitoring the actual status.
• Simulation Model Generator (Simgen)
– The Simulation Platform Generation tool (Simgen) generates and
configures various simulation models for the hardware.
62
63. Software Development Kit
• The Software Development Kit (SDK) provides a development
environment for software application projects.
• SDK has the following features:
– Supports development of software applications on single
processor or multiprocessor systems.
– Imports the XPS-generated hardware platform definition.
– Has the ability to create and configure board support packages
(BSPs) for third-party OS.
– Provides off-the-shelf sample software projects to test the
hardware and software functionality.
– Has feature-rich C/C++ code editor and compilation environment
63