I/O Module V3.1: Logicore Ip Product Guide
I/O Module V3.1: Logicore Ip Product Guide
I/O Module V3.1: Logicore Ip Product Guide
Chapter 1: Overview
Feature Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Licensing and Ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Appendix A: Upgrading
Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Appendix B: Debugging
Finding Help on Xilinx.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Debug Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Simulation Debug. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
LogiCORE IP MicroBlaze™ Micro Controller Resources Performance and Resource Utilization web page
System (MCS) core. Using the I/O Module core, Provided with Core
a system equivalent to MicroBlaze MCS can be Design Files Vivado: RTL
design using the Vivado ® Design Suite.
Example Design Not Provided
The I/O Module core connects to MicroBlaze Test Bench Not Provided
Simulation
VHDL Behavioral
Model
Features Supported
S/W Driver (2)
Standalone
Notes:
• Fixed Interval Timers
1. For a complete listing of supported devices, see the Vivado IP
Catalog.
• Programmable Interval Timers
2. Standalone driver details can be found in the SDK directory
(<install_directory>/doc/usenglish/xilinx_drivers.htm). Linux
• General purpose inputs OS and driver support information is available from the
Xilinx Wiki page.
• General purpose outputs
3. For the supported versions of the tools, see the
Xilinx Design Tools: Release Notes Guide.
• Support for Triple Modular Redundancy
(TMR)
Overview
The I/O Module core is a light-weight implementation of a set of standard I/O functions
commonly used in a MicroBlaze™ processor sub-system. The input/output signals of the I/O
Module core are shown in Figure 1-1. The detailed list of signals are listed and described in
Table 2-1. See the description of LMB Signals in the MicroBlaze Bus Interfaces chapter in the
MicroBlaze Processor Reference Guide (UG984) [Ref 1].
.
X-Ref Target - Figure 1-1
I/O Module
IO_Addr_Strobe
IO_Read_Strobe
IO_Write_Strobe
LMB IO_Address
IO_Bus IO_Byte_Enable
IO_Write_Data
IO_Read_Data
IO_Ready
UART_Tx_IO
UART_Rx_IO UART_Interrupt
FITx_Interrupt
PITx_Interrupt
GPIx_Interrupt
PITx_Enable
FITx_Toggle
PITx_Toggle
GPOx_IO
ToVote
INTC_Interrupt
FromAVote
TMR INTC_IRQ
FromBVote INTC_Interrupt_Address
Interrupt
INTC_Interrupt_Ack
;
In a MicroBlaze system the I/O Module core is typically connected according to Figure 1-2.
X-Ref Target - Figure 1-2
MicroBlaze
ILMB DLMB
LMB_v10 LMB_v10
I/O Module
BRAM Block
(Dual Port)
Feature Summary
I/O Bus
The I/O bus provides a simple bus for accessing to external modules. The I/O bus is mapped
in the MicroBlaze memory space, with the I/O bus address directly reflecting the byte
address used by MicroBlaze load/store instructions. I/O bus data is 32-bit wide, with byte
enables to write byte and half-word data.
The I/O bus is fully compatible with the Xilinx Dynamic Reconfiguration Port (DRP).
UART
The Universal Asynchronous Receiver Transmitter (UART) interface provides the controller
interface for asynchronous serial data transfers. Features supported include:
Interrupt Controller
The Interrupt Controller (INTC) handles both I/O module internal interrupt events and
external ones. The internal interrupt events originate from the UART, the Fixed Interval
Timers, the Programmable Interval Timers, or the General Purpose Inputs.
This functionality is intended to be used together with the TMR IP cores, which provide a
complete TMR solution. See Triple Modular Redundancy (TMR) (PG268) [Ref 3] for details.
Product Specification
Standards
The I/O bus interface provided by the I/O Module core is fully compatible with the Xilinx
Dynamic Reconfiguration Port (DRP). For a detailed description of the DRP, see the 7 Series
FPGAs Configuration User Guide (UG740) [Ref 2].
Performance
The frequency and latency of the I/O Module core are optimized for use together with
MicroBlaze™. This means that the frequency targets are aligned to MicroBlaze targets as
well as the access latency optimized for MicroBlaze data access.
Maximum Frequencies
For details about performance, visit Performance and Resource Utilization.
Latency
• Data read from I/O Module core registers is available two clock cycles after the address
strobe is asserted.
• Data write to I/O Module core registers is performed the clock cycle after the address
strobe is asserted.
• Data accesses to peripherals connected on the I/O bus take three clock cycles plus the
number of wait states introduced by the accessed peripheral.
Throughput
The maximum throughput when using the I/O bus is one read or write access every three
clock cycles.
Resource Utilization
For details about resource utilization, visit Performance and Resource Utilization.
Port Descriptions
The I/O ports and signals for the I/O Module core are listed and described in Table 2-1.
TMR Signals
TMR_Rst I TMR Reset
TMR_Disable I TMR Disable
ToVote 1023:0 O TMR Voting Output
FromAVote 1023:0 I TMR Voting Input A
FromBVote 1023:0 I TMR Voting Input B
Notes:
1. x = 1, 2, 3 or 4
2. Each of the interrupt inputs is treated as synchronous to the clock unless the corresponding bit in the parameter
C_INTC_ASYNC_INTR is set. In that case, the input is synchronized with the number of flip-flops defined by the
parameter C_INTC_NUM_SYNC_FF.
When MicroBlaze is configured to use an extended data address from 32 to 64 bits, the I/O
Module core uses the extended address to determine if the core is accessed.
Register Space
The register addresses for the core are described in Table 2-3.
Indicates that a parity error has occurred after the last time
the status register was read. If the UART is configured without
any parity handling, this bit is always ‘0’. The received
7 Parity Error R 0 character is written into the receive register. This bit is cleared
when the status register is read.
0 = No parity error has occurred
1 = A parity error has occurred
Indicates that a frame error has occurred after the last time
the status register was read. Frame Error is defined as
detection of a stop bit with the value 0. The receive character
6 Frame Error R 0 is ignored and not written to the receive register.
This bit is cleared when the status register is read.
0 = No Frame error has occurred
1 = A frame error has occurred
Indicates that a overrun error has occurred since the last time
the status register was read. Overrun occurs when a new
character has been received but the receive register has not
been read. The received character is ignored and not written
5 Overrun Error R 0 into the receive register. This bit is cleared when the status
register is read.
0 = No interrupt has occurred
1 = Interrupt has occurred
4 - R 0 Reserved
Indicates if the transmit register is in use
3 Tx Used R 0 0 = Transmit register is not in use
1= Transmit register is in use
2 - R 0 Reserved
1 - R 0 Reserved
Indicates if the receive register has valid data
0 Rx Valid Data R 0 0 = Receive register is empty
1 = Receive register has valid data
Table 2-10 and Table 2-11 describe the UART Programmable Baud Rate register.
31:C_GPOx_SIZE - - - Reserved
Register holds data driven to corresponding bits in the GPO
[C_GPOx_SIZE-1]:0 GPOx W 0
port
31:[C_INTC_EXT_INTR+16] - - 0 Reserved
Enable I/O Module external interrupt input
[C_INTC_EXT_INTR+15]:16 INTC_Interrupt W 0 signal
INTC_Interrupt(16-C_INTC_EXT_INTR)
15 - - 0 Reserved
14 GPI4 W 0 GPI4 interrupt enabled
13 GPI3 W 0 GPI3 interrupt enabled
12 GPI2 W 0 GPI2 interrupt enabled
11 GPI1 W 0 GPI1 interrupt enabled
10 FIT4 W 0 FIT4 interrupt enabled
9 FIT3 W 0 FIT3 interrupt enabled
8 FIT2 W 0 FIT2 interrupt enabled
7 FIT1 W 0 FIT1 interrupt enabled
6 PIT4 W 0 PIT4 interrupt enabled
5 PIT3 W 0 PIT3 interrupt enabled
4 PIT2 W 0 PIT2 interrupt enabled
3 PIT1 W 0 PIT1 interrupt enabled
2 UART_RX W 0 UART Received Data interrupt enabled
1 UART_TX W 0 UART Transmitted Data interrupt enabled
0 UART_ERR W 0 UART Error interrupt enabled
The two least significant bits and the most significant bits greater than or equal to
C_INTC_ADDR_WIDTH (if any) of each register are fixed to 0.
For reserved interrupt bits (11-15), and unused external interrupts (greater than
C_INTC_EXT_INTR+15), writing to the corresponding register has no effect.
The registers are only implemented when fast interrupt mode is enabled, by setting
C_INTC_HAS_FAST to 1.
31:2 - - 0 Reserved
0 = Counter counts past zero and then stops
1 PRELOAD W 0 1 = Counter value is automatically reloaded with the PITx_PRELOAD
value when counter expires
0 = Counting Disabled
0 EN W 0
1 = Counter Enabled
The I/O bus has a ready handshake to handle different waitstate needs, from IO_Ready
asserted the cycle after the IO_Addr_Strobe is asserted to as many cycles as needed.
There is no timeout on the I/O bus and MicroBlaze is stalled until IO_Ready is asserted.
IO_Address, IO_Byte_Enable, IO_Write_Data, IO_Read_Strobe,
IO_Write_Strobe are only valid when IO_Addr_Strobe is asserted. For read access
IO_Read_Data is sampled at the rising Clk edge, when the slave has asserted IO_Ready.
I/O bus read and write transactions can be found in the two following timing diagrams in
Figure 3-1 and Figure 3-2.
#LK
)/?!DDRESS
)/?"YTE?%NABLE
)/?7RITE?$ATA
)/?!DDR?3TROBE
)/?2EAD?3TROBE
)/?7RITE?3TROBE
)/?2EAD?$ATA
)/?2EADY
Clk
IO_Address
IO_Byte_Enable
IO_Write_Data
IO_Addr_Strobe
IO_Read_Strobe
IO_Write_Strobe
IO_Read_Data
IO_Ready
The I/O bus is fully compatible with the Xilinx Dynamic Reconfiguration Port (DRP). This
configuration port supports partial dynamic reconfiguration of functional blocks, such as
CMTs, clock management, XADC, serial transceivers, and the PCIe® block.
The nominal connection of the I/O bus to the DRP is shown in Table 3-2.
Table 3-2: Mapping of the I/O Bus to the Dynamic Reconfiguration Port
I/O Module Signal DRP Signal Note
Clk DCLK
IO_Addr_Strobe DEN
IO_Read_Strobe - Not used by DRP
IO_Write_Strobe DWE
IO_Address[m+2:2] DADDR[m:0] Uses 32-bit word access for DRP
IO_Byte_Enable - Only 32-bit word accesses used for DRP
IO_Write_Data[n:0] DI[n:0] Data width depends on DRP (n < 32)
IO_Read_Data[n:0] DO[n:0] Data width depends on DRP (n < 32)
IO_Ready DRDY
For a detailed description of the DRP, see the 7 Series FPGAs Configuration User Guide
(UG740) [Ref 2].
UART
The Universal Asynchronous Receiver Transmitter (UART) interface provides the controller
interface for asynchronous serial data transfers. Features supported include:
The UART performs parallel-to-serial conversion on characters received through LMB and
serial-to-parallel conversion on characters received from a serial peripheral. The UART is
capable of transmitting and receiving 8, 7, 6 or 5-bit characters, with 1-stop bit and odd,
even or no parity. The UART can transmit and receive independently.
The device can be configured and its status can be monitored via the internal register set.
The UART also asserts the UART_Interrupt output when the receiver becomes
non-empty, when the transmitter becomes empty or when an error condition has occurred.
The individual interrupt events are connected to the Interrupt Controller of the I/O Module
core and can be used to assert the INTC_IRQ output signal.
The UART can be configured with either fixed or programmable baud rate. When using
programmable baud rate the UART_BAUD register is used to set the baud rate. The initial
value of this register is determined from the selected fixed baud rate. The register value is
calculated by the formula:
Clock Frequency of Clk (Hz)
UART_BAUD = ----------------------------------------------------------- – 1
Baud Rate • 16
The PITx_Interrupt output signal is asserted one clock cycle when the timer expires.
The timer can be used in continuous mode, where the timer reloads automatically when it
expires. In continuous mode, the period between two PITx_Interrupt assertions is the
value in PITx Preload Register + 2 count events.
The PIT can also be used in one-shot mode, where the timer stops when it has counted
down past zero. The timer is implemented by means of a counter that is pre-loaded with the
timer value and then decremented. When the counter passes zero, the timer expires, and
the interrupt signal is generated. The timer starts counting when it is enabled by setting the
EN bit in the PITx Control Register.
The value of the counter that implements the timer can be read by software if the
C_PITx_Readable parameter is enabled.The PIT can have a pre-scaler connected from any
FITx, PITx, or External. The pre-scaler is selected by the C_PITx_PRESCALER parameter. The
PIT has no pre-scaler by default. If External is selected the input signal PITx_Enable is
used as pre-scaler. Selecting External as pre-scaler can also be used to measure the width in
clock cycles of a signal connected to the PITx_Enable input.
Using the parameter C_PITx_INTERRUPT, the PIT can be connected to the Interrupt
Controller of the I/O Module core and used for generating interrupts every time it expires.
Using the parameter C_GPIx_INTERRUPT, the GPI can be connected to the Interrupt
Controller of the I/O Module core and used for generating interrupts every time an input
changes (both edges), every time it changes from 0 to 1 (rising edge), or every time it
changes from 1 to 0 (falling edge).
The current status of all interrupt sources can be read from the Interrupt Status Register.
The current status of all enabled interrupts can be read from the Interrupt Pending Register.
An interrupt is cleared in both the Interrupt Status and Interrupt Pending Registers by
writing to the Interrupt Acknowledge Register, with bits set corresponding to the interrupts
that should be cleared.
Either normal or fast interrupt mode can be used, based on latency requirement. Fast
interrupt mode is available when the parameter C_INTC_HAS_FAST is set, and is enabled for
an interrupt by setting the corresponding bit in the Interrupt Mode Register (IRQ_MODE). In
this case, the Interrupt Controller drives the interrupt vector address of the highest priority
interrupt on the INTC_Interrupt_Address port, along with INTC_IRQ. The generated
interrupt is cleared based on acknowledge received from the processor through the
INTC_Interrupt_Ack port. The processor sends 0b01 on this port when the interrupt is
being acknowledged by the processor (that is, when branching to the interrupt service
routine), sends 0b10 when executing a return from interrupt instruction in the interrupt
service routine, and sends 0b11 when interrupts are re-enabled. The bit in IRQ_STATUS
corresponding to the interrupt is cleared when 0b10 or 0b11 is seen on the port.
With fast interrupt mode, the interrupt vector address for each interrupt is stored in the
corresponding IRQ_VECTOR register. To be compatible with normal mode, the registers are
initialized to C_INTC_BASE_VECTORS + 0x10 after reset, which is equivalent to the static
interrupt vector used by normal mode.
LMB Timing
See the MicroBlaze Bus Interfaces chapter in the MicroBlaze Processor Reference Guide
(UG984) [Ref 1] for details on the transaction signaling.
Clocking
The I/O Module core is fully synchronous with all clocked elements clocked with the Clk
input.
Resets
The Rst input is the master reset input signal for the I/O Module core.
When Triple Modular Redundancy is use the additional TMR_Rst input signal provides the
option to only reset the flip-flops that are not majority voted, to support TMR recovery.
Protocol Description
See the LMB Interface Description timing diagrams in the MicroBlaze Processor Reference
Guide (UG984) [Ref 1].
• Vivado Design Suite User Guide: Designing IP Subsystems using IP Integrator (UG994)
[Ref 4]
• Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 5]
• Vivado Design Suite User Guide: Getting Started (UG910) [Ref 6]
• Vivado Design Suite User Guide: Logic Simulation (UG900) [Ref 7]
If you are customizing and generating the core in the Vivado IP integrator, see the Vivado
Design Suite User Guide: Designing IP Subsystems using IP Integrator (UG994) [Ref 4] for
detailed information. IP integrator might auto-compute certain configuration values when
validating or generating the design. To check whether the values do change, see the
description of the parameter in this chapter. To view the parameter value you can run the
validate_bd_design command in the Tcl console.
You can customize the IP for use in your design by specifying values for the various
parameters associated with the IP core using the following steps:
For details, see the Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 5] and
the Vivado Design Suite User Guide: Getting Started (UG910) [Ref 6].
Note: Figures in this chapter are illustrations of the Vivado IDE. This layout might vary from the
current version.
The I/O Module core parameters are divided into eight tabs in the Vivado Integrated Design
Environment (IDE): Board, System, UART, FIT Timers, PIT Timers, GPO, GPI and Interrupt.
When using Vivado IP integrator, the addresses and masks are auto generated.
The board tab is only visible when a board has been defined for the project being used.
X-Ref Target - Figure 4-1
Associate IP interface with board interface - Table to select board interface for GPIO1,
GPIO2, GPIO3, GPIO4 or UART interface.
• Use Triple Modular Redundancy - Enable support for use in a Triple Modular
Redundant (TMR) subsystem. When this parameter is set, the internal state is voted
between this core and the two other cores in the subsystem, to ensure that single
errors are corrected.
• Activate TMR Disable Input - Activate TMR disable functionality. When activated and
the TMR_Disable input is set to one, the inputs from other I/O Modules are
disregarded.
• Number of Data Bits - Defines the number of data bits used by the UART. Should
almost always be set to 8.
• Use Parity - Enable this parameter to use parity checking of the UART characters.
• Even or Odd Parity - Select odd or even parity. Only available when parity is used.
• Implement Receive Interrupt - Generate an interrupt when the UART has received a
character. When the interrupt is not enabled the UART must be polled to check if data
has been received.
• Implement Transmit Interrupt - Generate an interrupt when the UART has sent a
character. When the interrupt is not enabled the UART must be polled to wait until data
has been transmitted.
• Implement Error Interrupt - Generate an interrupt if an error occurs when the UART
receives a character. This error can be a framing error, an overrun error or a parity error
(if parity is used), When the interrupt is not enabled the UART must be polled to check
if an error has occurred after a character has been received.
The FIT Timer parameter tab showing the parameters for one of the four timers is illustrated
in Figure 4-4.
X-Ref Target - Figure 4-4
The PIT Timer parameter tab showing the parameters for one of the four timers is illustrated
in Figure 4-5.
X-Ref Target - Figure 4-5
The GPO parameter tab showing the parameters for the four General Purpose Output ports
is illustrated in Figure 4-6.
X-Ref Target - Figure 4-6
The GPI parameter tab showing the parameters for the four General Purpose Input ports is
illustrated in Figure 4-7.
X-Ref Target - Figure 4-7
• Positive or Negative External Interrupts - Set whether to use high or low level for
level sensitive interrupts, and rising or falling edge for edge triggered interrupts. Each
bit in the value corresponds to the equivalent interrupt input When a bit is set to one,
high level or rising edge is used, otherwise low level or falling edge is used.
Parameter Values
To obtain an I/O Module core that is uniquely tailored a specific system, certain features can
be parameterized in the I/O module design. This allows for configuring a design that only
uses the resources required by the system, and operates with the best possible performance.
The features that can be parameterized in I/O Module designs are shown in Table 4-1.
Notes:
1. Values automatically populated by tool.
2. x =1, 2, 3 or 4.
3. Selecting PIT prescaler the same as PITx is illegal, e.g. PIT2 cannot be prescaler to itself.
4. The 7 least significant bits must all be 0.
5. Parameter not available in the Customize IP dialog.
User Parameters
Table 4-2 shows the relationship between the fields in the Vivado IDE and the User
Parameters (which can be viewed in the Tcl console).
Output Generation
For details, see the Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 5].
Required Constraints
This section is not applicable for this IP core.
Clock Frequencies
This section is not applicable for this IP core.
Clock Management
The I/O Module core is fully synchronous with all clocked elements clocked by the Clk
input.
To operate properly when connected to MicroBlaze™, the Clk must be the same as the
MicroBlaze Clk.
Clock Placement
This section is not applicable for this IP core.
Banking
This section is not applicable for this IP core.
Transceiver Placement
This section is not applicable for this IP core.
Simulation
For comprehensive information about Vivado® simulation components, as well as
information about using supported third party tools, see the Vivado Design Suite User
Guide: Logic Simulation (UG900) [Ref 7].
IMPORTANT: For cores targeting 7 series or Zynq-7000 devices, UNIFAST libraries are not supported.
Xilinx IP is tested and qualified with UNISIM libraries only.
Upgrading
For information on migrating from Xilinx ISE® Design Suite tools to the Vivado® Design
Suite, see the ISE to Vivado Design Suite Migration Guide (UG911) [Ref 8].
Upgrade
This section describes changes that occur when upgrading from the previous version of the
core.
The extra interrupt output port INTC_IRQ_OUT has been added in v3.0 of the core.
The parameters C_TMR and C_USE_TMR_DISABLE have been added in v3.1 of the core, to
support Triple Modular Redundancy.
The additional ports FromAVote, FromBVote, TMR_Disable, TMR_Rst, and ToVote have been
added in v3.1 of the core, to support Triple Modular Redundancy.
Debugging
This appendix includes details about resources available on the Xilinx Support website and
debugging tools.
Documentation
This product guide is the main document associated with the I/O Module. This guide, along
with documentation related to all products that aid in the design process, can be found on
the Xilinx Support web page or by using the Xilinx® Documentation Navigator.
Download the Xilinx Documentation Navigator from the Downloads page. For more
information about this tool and the features available, open the online help after
installation.
Answer Records
Answer Records include information about commonly encountered problems, helpful
information on how to resolve these problems, and any known issues with a Xilinx product.
Answer Records are created and maintained daily ensuring that users have access to the
most accurate information available.
Answer Records for this core can be located by using the Search Support box on the main
Xilinx support web page. To maximize your search results, use proper keywords such as
• Product name
• Tool message(s)
• Summary of the issue encountered
A filter search is available after results are returned to further target the results.
Technical Support
Xilinx provides technical support at the Xilinx Support web page for this LogiCORE™ IP
product when used as described in the product documentation. Xilinx cannot guarantee
timing, functionality, or support if you do any of the following:
• Implement the solution in devices that are not defined in the documentation.
• Customize the solution beyond that allowed in the product documentation.
• Change any section of the design labeled DO NOT MODIFY.
To contact Xilinx Technical Support, navigate to the Xilinx Support web page.
Debug Tools
The main tool available to address I/O Module design issues is the Vivado® Design Suite
debug feature.
The Vivado logic analyzer is used to interact with the logic debug IP cores, including:
See the Vivado Design Suite User Guide: Programming and Debugging (UG908) [Ref 9].
Reference Boards
All 7 series Xilinx development boards support the I/O Module core. These boards can be
used to prototype designs and establish that the core can communicate with the system.
Simulation Debug
The simulation debug flow for Mentor Graphics Questa Simulator (QuestaSim) is described
below. A similar approach can be used with other simulators.
• Check for the latest supported versions of QuestaSim in the Xilinx Design Tools: Release
Notes Guide. Is this version being used? If not, update to this version.
• If using Verilog, do you have a mixed mode simulation license? If not, obtain a
mixed-mode license.
• Ensure that the proper libraries are compiled and mapped. In the Vivado Design Suite
Flow > Simulation Settings can be used to define the libraries.
• Have you associated the intended software program for the MicroBlaze processor with
the simulation? Use the command Tools > Associate ELF Files in the Vivado Design
Suite.
• When observing the traffic on the LMB interface connected to the LMB BRAM I/F
Controller, see the MicroBlaze Processor Reference Guide (UG984) [Ref 1] for the LMB
timing.
Hardware Debug
This section provides debug steps for common issues. The Vivado Design Suite debug
feature is a valuable resource to use in hardware debug. The signal names mentioned in the
following individual sections can be probed using the debug feature to debug specific
problems.
General Checks
Ensure that all the timing constraints for the core were properly incorporated from the
example design and that all constraints were met during implementation.
• Does it work in post-place and route timing simulation? If problems are seen in
hardware but not in timing simulation, this could indicate a PCB issue. Ensure that all
clock sources are active and clean.
• If using MMCMs in the design, ensure that all MMCMs have obtained lock by
monitoring the locked port.
LMB Checks
To monitor the LMB interface, the signals LMB_ABus, LMB_WriteDBus, LMB_ReadStrobe,
LMB_AddrStrobe, LMB_WriteStrobe, LMB_BE, Sl_DBus, and Sl_Ready can be
connected to the Vivado debug feature.
To sample the interface signals, the Vivado debug feature should use the Clk clock signal.
Device Drivers
The I/O Module core is supported by the IO Module driver, included with the Xilinx
Software Development Kit.
Xilinx Resources
For support resources such as Answers, Documentation, Downloads, and Forums, see Xilinx
Support.
References
These documents provide supplemental material useful with this user guide:
Revision History
The following table shows the revision history for this document.