Chapter 1 IP Facts ® The Xilinx LogiCORE™ IP I2S Transmitter and LogiCORE™ Receiver cores are soft Xilinx IP cores for use with the Xilinx Vivado ® Design Suite, which makes it easy to implement inter-IC-sound (I2S) interface used to connect audio devices for transmitting and receiving PCM audio.
Page 5
<release>/data/embeddedsw/doc/xilinx_drivers.htm). Linux OS and driver support information is available from the Xilinx Wiki page. For the supported versions of the tools, see the Xilinx Design Tools: Release Notes Guide. PG308 (v1.0) April 4, 2018 www.xilinx.com [placeholder text] Send Feedback I2S Transmitter and I2S Receiver...
Chapter 2 Overview The I2S Tramsmitter and I2S Receiver cores provide an easy way to interface the I2S based audio DAC/ADC. These IPs require minimal register programming and also support any audio sampling rates. These IPs can be used along side HDMI, DisplayPort, and SDI for complete audio video solution.
Page 7
Vivado ® Design Suite; Purchase means that you have to purchase a license to use the core. For more information about this core, visit the I2S Tramsmitter and I2S Receiver product web page ® Information about other Xilinx LogiCORE™...
Chapter 3: Product Specification Chapter 3 Product Specification The I2S Tramsmitter and I2S Receiver IPs can be used to develop audio solution using I2S ADC/ DACs. These IPs support any sampling rate and are very easy to configure with minimal register programming.
For full details about performance and resource use, visit the Performance and Resource Use web page for transmitter and Performance and Resource Use web page for receiver. PG308 (v1.0) April 4, 2018 www.xilinx.com [placeholder text] Send Feedback I2S Transmitter and I2S Receiver...
Input SCK Clock. Available when core is configured as Slave sdata_0_out SDATA0 I2S Serial Data out sdata_1_out SDATA1 I2S Serial Data out. Available when number of audio channels is > 2 sdata_2_out SDATA2 I2S Serial Data out. Available when number of audio channels is > 4 sdata_3_out SDATA3 I2S Serial Data out.
Input SCK Clock. Available when core is configured as Slave sdata_0_in SDATA0 I2S Serial Data In sdata_1_in SDATA1 I2S Serial Data In. Available when number of audio channels is > 2 sdata_2_in SDATA2 I2S Serial Data In. Available when number of audio channels is > 4 sdata_3_in SDATA3 I2S Serial Data In.
Page 12
Number of Audio Channels: Indicates the number of audio channels supported. Valid values are 2, 4, 6 and 8 Reserved Is I2S Master: Indicates if the core has been generated as an I2S Master or Slave. 1 = I2S Master PG308 (v1.0) April 4, 2018 www.xilinx.com...
Page 13
AES Block Sync Error: This bit is set when synchronization with the start of an AES block has been lost. This occurs if the incoming audio our AXIS does violates the guidelines. Write a ‘1’ to clear this flag. PG308 (v1.0) April 4, 2018 www.xilinx.com [placeholder text] Send Feedback I2S Transmitter and I2S Receiver...
Page 14
This registers is used to set the divider value to generate the SCLK. Typically SCLK = 2*24*Fs. Where 24 is I2S data width (this could be 16 also) and Fs is the audio sampling rate. Table 8: Transmitter I2S Timing Control (0x20)
Page 15
The IP provides a mechanism to route the audio channels onto any I2S output. For example, audio received on channels 2/3 can be routed to output on any of the four I2S ports. Similarly audio received on channels 0/1 can be routed to all of the four I2S ports.
Channel Mux Value: Specify a value to Multiplex the audio channel output. 0x0 : Output on I2S channel 3 is disabled 0x1 : I2S channel 3 outputs the audio received on channel 0 /1 0x2 : I2S channel 3 outputs the audio received on channel 2 /3...
Page 17
Default Access Description Value Type 31:17 RSVD I2S Data Width: Indicates the I2S Data width of the core 1 = 24 bit 0 = 16 bit 15:12 RSVD 11:8 Number of Audio Channels: Indicates the number of audio channels supported.
Page 18
Description Value Type RSVD Is I2S Master: Indicates if the core has been generated as an I2S Master or Slave. 1 = I2S Master Control Register (0x08) This register provides capability to enable/disable the core. Table 17: Receiver Control Register (0×08)
Page 19
The IP provides a mechanism to route the audio from any I2S input. For example, audio received on I2S Channel 0 can be routed to any of the 8 audio channels. Similarly audio received on one I2S channel can be routed to all of the eight audio channels.
Page 20
The IP provides a mechanism to route the audio from any I2S input. For example, audio received on I2S Channel 0 can be routed to any of the 8 audio channels. Similarly audio received on one I2S channel can be routed to all of the 8 audio channels.
Page 21
Channel Mux Value: Specify a value to Multiplex the audio channel output. 0x0 : disabled 0x1 : Audio received on I2S channel 3 is routed as audio channel 0 /1 0x2 : Audio received on I2S channel 3 is routed as audio channel 2 /3...
Chapter 4: Designing with the Core Chapter 4 Designing with the Core The I2S TX and RX IPs can be used in systems to send and receive I2S audio. A typical use case is as shown below. System Using TX RX...
General Design Guidelines Use the Example Design Each instance of the I2S Tramsmitter and I2S Receiver core created by the Vivado design tool is delivered with an example design that can be implemented in a device and then simulated. This design can be used as a starting point for your own design or can be used to sanity-check your application in the event of difficulty.
AXIS domain. After a reset, it is advisable to disable and enable the IP for a clean recovery. Programmimg Sequence The I2S Transmitter can be setup using the following programming sequence: 1. Setup the Channel Mux registers, if required. Note It is not recommended to change this value at runtime.
(TVLD) and ready (TRDY) signals are asserted. The I2S Receiver sends out adjacent channels in sequential order (CH0, CH1, etc). Usually, the I2S Transmitter also expects the channels in sequential order. If the channel data is not in order, then the I2S Transmitter would assert underflow or block sync error.
Page 26
Table 27: Audio Axis Interface Patterns Bits [3:0] Description 0001 Start of Audio Block/Channel 0 Audio sample 0010 Channel 0/2/4/6 Audio data 0011 Channel 1/3/5/7 Audio data PG308 (v1.0) April 4, 2018 www.xilinx.com [placeholder text] Send Feedback I2S Transmitter and I2S Receiver...
2. Open the IP catalog and navigate to the taxonomies. 3. Double-click on either I2S Receiver or Transmitter to bring up the customize IP window. For details, see the Vivado Design Suite User Guide: Designing with IP (UG896) and the Vivado Design Suite User Guide: Getting Started (UG910).
Page 29
• FIFO Depth : Specify the depth of the FIFO. Allowed values are 64, 128, 256, 512 and 1024. In case of I2S Transmitter, the data is output on I2S interface only after the FIFO if half filled. • Enable FIFO Data Count: Select this option to enable the IP to output the FIFO Read data count.
It is advisable to have the Audio Clock generated from a stable source for minimal jitter. If the jitter is of low importance, a MMCM can be used to generate the Audio clock. PG308 (v1.0) April 4, 2018 www.xilinx.com [placeholder text] Send Feedback I2S Transmitter and I2S Receiver...
Vivado Design Suite User Guide: Logic Simulation (UG900). Synthesis and Implementation For details about synthesis and implementation, see the Vivado Design Suite User Guide: Designing with IP (UG896). PG308 (v1.0) April 4, 2018 www.xilinx.com [placeholder text] Send Feedback I2S Transmitter and I2S Receiver...
AXI4-Lite clock, and the AXI4-Stream clock. The example design is held in reset until the MMCM is locked. • Axi Traffic Generator (ATG): The ATGs are used to program the I2S IPs. The ATGs start the configuration process as soon as the MMCM is locked.
If the test fails, the following message displays: Test Failed!!! If the test passes, the following message displays: Test Completed Successfully If the test hangs, the following message displays: Test Failed!! Test Timed Out PG308 (v1.0) April 4, 2018 www.xilinx.com [placeholder text] Send Feedback I2S Transmitter and I2S Receiver...
The above figure shows the test bench for example design. The top-level test bench feeds a clock input, AXIS data to the exdes. The TB also checks the received AXIS data • AXIS Data Generator: This module generates the AXIS Audio traffic and feeds the I2S Transmitter.
Appendix A Debugging This appendix includes details about resources available on the Xilinx Support website and debugging tools. If the IP requires a license key, the key must be verified. The Vivado ® design tools have several license checkpoints for gating licensed IP through the flow. If the license check succeeds, the IP can continue generation.
Page 36
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.
Masters. The I2S IPs only support 16 or 24 bit I2S mode only. 2. Audio has a lot of noise: Ensure that DAC/ADC/CODEC are configured for the same data width as the I2S IPs. Also ensure that the MCLK supplied to the DAC/ADC/CODEC is same as the one supplied to I2S IPs.
Hubs Xilinx ® Documentation Navigator provides access to Xilinx documents, videos, and support resources, which you can filter and search to find information. To open the Xilinx Documentation Navigator (DocNav): • From the Vivado ® IDE, select Help → Documentation and Tutorials.
Vivado Design Suite Tool Flow Revision History The following table shows the revision history for this document. Section Revision Summary 04/04/2018 v1.0 Initial Xilinx release. PG308 (v1.0) April 4, 2018 www.xilinx.com [placeholder text] Send Feedback I2S Transmitter and I2S Receiver...
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...
Need help?
Do you have a question about the I2S and is the answer not in the manual?
Questions and answers