axi_uartlite_ds741
axi_uartlite_ds741
axi_uartlite_ds741
(v1.02a)
DS741 July 25, 2012 Product Specification
Support
Provided by Xilinx@ www.xilinx.com/support
Notes:
1. For a complete list of supported derivative devices, see the
Embedded Edition Derivative Device Support.
2. Supported in ISE Design Suite implementations only.
3. For more information, see DS180 7 Series FPGAs Overview.
4. For more information, see the DS150 Virtex-6 Family
Overview Product Specification.
5. For more information, see DS160 Spartan-6 Family Overview
Product Specification.
6. Standalone driver information can be found in the EDK or SDK
installation directory.
© Copyright 2010–2012 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are
trademarks of Xilinx in the United States and other countries. ARM and AMBA are trademarks of ARM in the EU and in other countries. All other trademarks are the
property of their respective owners.
Functional Description
The AXI UART Lite:
• Performs parallel-to-serial conversion on characters received through the AXI4-Lite interface and
serial-to-parallel conversion on characters received from a serial peripheral.
• Can transmit and receive 8, 7, 6, or 5 bit characters, with 1 stop bit and with odd, even, or no parity bit. The
AXI UART Lite can transmit and receive independently.
• Can be configured and its status can be monitored through the internal register set.
• Generates an interrupt when the receive FIFO becomes non empty or when the transmit FIFO becomes empty.
This interrupt can be masked by using an interrupt enable/disable signal. The device contains a baud rate
generator and independent 16-character deep transmit and receive FIFOs.
The AXI UART Lite modules are shown in Figure 1 and described in the sections that follow.
X-Ref Target - Figure 1
#ONTROL 2EGISTER
#42,?2%' #ONTROL
5NIT )NTERRUPT
AXI Interface Module: Provides the interface to the AXI and implements AXI protocol logic. The AXI interface
module is a bidirectional interface between a user IP core and the AXI4-Lite interface standard. To simplify the
process of attaching AXI UART Lite to the AXI, the core makes use of a portable, pre-designed AXI interface called
AXI-4-Lite IPIF, that takes care of the AXI interface signals.
UART Lite Register Module: Includes all memory mapped registers (as shown in Figure 1). It interfaces to the AXI
through the AXI interface module. It consists of a status register, a control register, and a pair of transmit/receive
FIFOs, both of 16-character depth. All registers are accessed directly from the AXI using the AXI interface module.
UART Control Module: Consists of an RX module, a TX module, a parameterized baud rate generator (BRG), and
a control unit. This module also contains the logic to generate the interrupts.
Interrupts
If interrupts are enabled, an edge rising sensitive interrupt pulse is generated when one of the following is true:
1. When the Receive FIFO goes from empty to not empty, such as when the first valid character is received in the
Receive FIFO
2. When the transmit FIFO goes from not empty to empty, such as when the last character in the transmit FIFO is
transmitted.
If interrupts are disabled in between reset the RX FIFO to get the Valid Character receives interrupt.
I/O Signals
The AXI UART Lite I/O signals are listed and described in Table 1.
Table 1: I/O Signal Descriptions
Initial
Port Signal Name Interface I/O Description
State
System Signals
P1 S_AXI_ACLK System Input - AXI clock.
P2 S_AXI_ARESETN System Input - AXI reset, active-Low.
P3 Interrupt System Output 0x0 Edge rising UART interrupt.
AXI Write Address Channel Signals
AXI write address. The write
P4 S_AXI_AWADDR[C_S_AXI_ADDR_WIDTH-1:0] AXI Input - address bus gives the address of the
write transaction.
Write address valid. This signal
P5 S_AXI_AWVALID AXI Input - indicates that valid write address is
available.
Write address ready. This signal
P6 S_AXI_AWREADY AXI Output 0x0 indicates that the slave is ready to
accept an address.
AXI Write Channel Signals
P7 S_AXI_WDATA[C_S_AXI_DATA_WIDTH - 1: 0] AXI Input - Write data.
Write strobes. This signal indicates
P8 S_AXI_WSTB[C_S_AXI_DATA_WIDTH/8-1:0] (1) AXI Input - which byte lanes to update in
memory. (1)
Write valid. This signal indicates that
P9 S_AXI_WVALID AXI Input - valid write data and strobes are
available.
Write ready. This signal indicates
P10 S_AXI_WREADY AXI Output 0x0 that the slave can accept the write
data.
Notes:
1. This signal is not used. The AXI UART Lite assumes that all byte lanes are active.
Design Parameters
To allow you to create the AXI UART Lite that is uniquely tailored for your system, certain features can be
parameterized in the AXI UART Lite design. This allows you to have a design that only utilizes the resources
required by the system and operating at the best possible performance. The AXI UART Lite design parameters are
shown in Table 2.
Table 2: Design Parameters
Notes:
1. With a baud rate of 115200, the sample clock is 16 * 115200 = 1.8432 MHz. With the System clock C_S_AXI_ACLK_FREQ_HZ
running at 10 MHz, the integer ratio for driving the sample clock is 5 (rounding of [10/1.8432]). The AXI UART Lite would then divide
the System clock by 5 resulting in 2 MHz for the sample clock. The baud rate error is (1.8432 - 2) /1.8432 => -8.5% which is outside
the tolerance for most UARTs. The issue is that the higher the baud rate and the lower the C_S_AXI_ACLK_FREQ_HZ, the greater
the error in the generated baud rate of the AXI UART Lite. AXI UART Lite requires that the baud error should be less than 3%.
Register Descriptions
Table 4 shows all the AXI UART Lite registers and their addresses.
Table 4: Registers
Register Access Default Value
Offset (hex) Description
Name Type (hex)
0x0 Rx FIFO Read (1) 0x0 Receive data FIFO (3)
0x4 Tx FIFO Write (2) 0x0 Transmit data FIFO (3)
0x8 STAT_REG Read (1) 0x4 UART Lite status register
0xC CTRL_REG Write (2) 0x0 UART Lite control register
Notes:
1. Writing of a read only register has no effect.
2. Reading of a write only register returns zero.
3. When system reset is applied both TX FIFO and RX FIFO are reset and cleared.
2X $ATA
2ESERVED
4X $ATA
2ESERVED
2ESERVED
%NABLE )NTR 2ST 4X &)&/
Response Signaling
The AXI UART Lite core generates SLVERR when one of the following conditions is true:
• A read request is issued to an empty receive data FIFO.
• A write request is issued when the transmit data FIFO is full.
For all other requests, OKAY response is passed. The AXI UART Lite never generates DECERR.
Design Implementation
Target Technology
The intended target technology is Zynq-7000, Virtex-7, Kintex-7, Artix-7, Virtex-6, and Spartan-6 FPGAs.
C_S_AXI_ACLK_FREQ_HZ
C_S_AXI_AWIDTH
C_ODD_PARITY
C_USE_PARITY
C_BAUDRATE
C_DATA_BITS
FMAX (MHz)
Flip-Flops
Slices
LUTs
Slice
32 100_000_000 19_200 5 0 0 41 77 100 213
32 100_000_000 19_200 6 1 0 46 84 110 207
32 100_000_000 19_200 7 1 1 59 84 114 226
32 100_000_000 9600 8 0 0 49 79 119 244
32 40_000_000 38_400 8 0 0 44 77 107 234
32 100_000_000 19_200 6 1 0 46 84 110 207
32 100_000_000 19_200 7 1 1 59 84 114 226
The AXI UART Lite resource utilization for various parameter combinations measured with a Kintex-7 device as the
target are detailed in Table 10.
Table 10: Performance and Resource Utilization Benchmarks on Kintex-7(1) FPGA and Zynq-7000 Device
Parameter Values (other parameters at default value) Device Resources Performance
C_S_AXI_ACLK_FREQ_HZ
C_S_AXI_AWIDTH
C_ODD_PARITY
C_USE_PARITY
C_BAUDRATE
C_DATA_BITS
FMAX (MHz)
Flip-Flops
Slices
LUTs
Slice
The AXI UART Lite resource utilization for various parameter combinations measured with an Artix-7 device as the
target are detailed in Table 11.
Table 11: Performance and Resource Utilization Benchmarks on Artix-7(1) FPGA and Zynq-7000 Device
Parameter Values (other parameters at default value) Device Resources Performance
C_S_AXI_ACLK_FREQ_HZ
C_S_AXI_AWIDTH
C_ODD_PARITY
C_USE_PARITY
C_BAUDRATE
C_DATA_BITS
FMAX (MHz)
Flip-Flops
Slices
LUTs
Slice
32 100_000_000 19_200 5 0 0 42 77 92 233
32 100_000_000 19_200 6 1 0 45 84 102 224
32 100_000_000 19_200 7 1 1 47 84 111 225
32 100_000_000 9600 8 0 0 49 79 119 251
32 40_000_000 38_400 8 0 0 46 77 112 272
32 100_000_000 19_200 6 1 0 45 84 102 224
32 100_000_000 19_200 7 1 1 47 84 111 225
The AXI UART Lite resource utilization for various parameter combinations measured with a Virtex-6 device as the
target are detailed in Table 12.
C_ODD_PARITY
C_USE_PARITY
C_BAUDRATE
C_DATA_BITS
FMAX (MHz)
Flip-Flops
Slices
LUTs
Slice
C_S_AXI_ACLK_FREQ_HZ
C_S_AXI_AWIDTH
C_ODD_PARITY
C_USE_PARITY
C_BAUDRATE
C_DATA_BITS
FMAX (MHz)
Flip-Flops
Slices
LUTs
Slice
32 100_000_000 19_200 6 1 0 49 83 106 264
32 100_000_000 19_200 7 1 1 62 83 111 264
The AXI UART Lite resource utilization for various parameter combinations measured with a Spartan-6 device as
the target are detailed in Table 13.
.
C_ODD_PARITY
C_USE_PARITY
C_BAUDRATE
C_DATA_BITS
FMAX (MHz)
Flip-Flops
Slices
LUTs
Slice
System Performance
To measure the system performance (FMAX) of this core, this core was added to a Virtex-6 FPGA system and a
Spartan-6 FPGA system as the device under test (DUT) as illustrated in Figure 6.
Because the AXI UART Lite core will be used with other design modules in the FPGA, the utilization and timing
numbers reported in this section are estimates only. When this core is combined with other designs in the system,
the design’s FPGA resources and timing usage will vary from the results reported here.
The target FPGA was filled with logic to drive the LUT and block RAM utilization to approximately 70% and the
I/O utilization to approximately 80%. Using the default tool options and the slowest speed grade for the target
FPGA, the resulting target FMAX numbers are shown in Table 14.
Notes:
1. Spartan-6 FPGA LUT utilization: 60%; Block RAM utilization: 70%; I/O utilization: 80%; MicroBlaze Controller not AXI4
interconnect; AXI4 interconnect configured with a single clock of 120 MHz.
2. Virtex-6 FPGA LUT utilization: 70%; Block RAM utilization: 70%; I/O utilization: 80%.
The target FMAX is influenced by the exact system and is provided for guidance. It is not a guaranteed value across
all systems.
!8) #$-!
$?,-"
)?,-" $0 $EVICE 5NDER
4EST $54
#ONTROL !8) ).4#
)NTERFACE
3UBSET
)NTERCONNECT !8) '0)/ ,%$S
"2!- !8) ,ITE
#ONTROLLER
!8) 5!24,ITE 23
-$-
Support
Xilinx provides technical support for this LogiCORE IP product when used as described in the product
documentation. Xilinx cannot guarantee timing, functionality, or support of product if implemented in devices that
are not defined in the documentation, if customized beyond that allowed in the product documentation, or if
changes are made to any section of the design labeled DO NOT MODIFY.
Reference Documents
To search for Xilinx documentation, go to www.xilinx.com/support.
1. ARM® AMBA® AXI Protocol Version: 2.0 Specification
2. DS765 LogiCORE IP AXI Lite IPIF Data Sheet
3. DS160 Spartan-6 Family Overview
4. DS150 Virtex-6 Family Overview
5. DS180 7 Series FPGAs Overview
Revision History
The following table shows the revision history for this document:
Notice of Disclaimer
The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products. To
the maximum extent permitted by applicable law: (1) Materials are made available “AS IS” and with all faults, Xilinx hereby
DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT
LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR
PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of
liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including
your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss
of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such
damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no
obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product
specifications. You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent.
Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at
http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to
you by Xilinx. Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe
performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:
http://www.xilinx.com/warranty.htm#critapps.
.