Microtronix Video LVDS SerDes Transmitter / Receiver IP Core

Similar documents
Microtronix ViClaro IV GX Camera Link Development Kit

MICROTRONIX AVALON MOBILE DDR MEMORY CONTROLLER IP CORE

Microtronix Streaming Multi-Port SDRAM Memory Controller

MICROTRONIX AVALON MULTI-PORT FRONT END IP CORE

Microtronix Avalon I 2 C

MICROTRONIX AVALON MULTI-PORT SDRAM CONTROLLER

Designing RGMII Interface with FPGA and HardCopy Devices

Microtronix Stratix III Broadcast IP Development Kit USER MANUAL REVISION Woodcock St. London, ON Canada N5H 5S1

SERDES Transmitter/Receiver (ALTLVDS) Megafunction User Guide

Microtronix Firefly II Module

Microtronix ViClaro II Development Board

DDR and DDR2 SDRAM Controller Compiler User Guide

Intel FPGA GPIO IP Core User Guide

SERDES Transmitter/Receiver (ALTLVDS) Megafunction User Guide

FFT MegaCore Function User Guide

ALTERA FPGAs Architecture & Design

Timing Analyzer Quick-Start Tutorial

DKAN0011A Setting Up a Nios II System with SDRAM on the DE2

MachXO2, MachXO3 and ECP5 7:1 LVDS Video Interface

DDR & DDR2 SDRAM Controller Compiler

DDR & DDR2 SDRAM Controller Compiler

Intel Stratix 10 H-tile Hard IP for Ethernet Design Example User Guide

Advanced ALTERA FPGA Design

SerialLite III Streaming IP Core Design Example User Guide for Intel Arria 10 Devices

High-Performance FPGA PLL Analysis with TimeQuest

Altera I/O Phase-Locked Loop (Altera IOPLL) IP Core User Guide

DDR & DDR2 SDRAM Controller Compiler

Intel FPGA Temperature Sensor IP Core User Guide

2. SDRAM Controller Core

DDR & DDR2 SDRAM Controller Compiler

Altera I/O Phase-Locked Loop (Altera IOPLL) IP Core User Guide

POS-PHY Level 2 and 3 Compiler User Guide

Microtronix ViClaro IV-GX Video Host Board

LVDS SERDES Transmitter / Receiver (ALTLVDS_TX and ALTLVDS_RX) Megafunction User Guide

Intel Stratix 10 Low Latency 40G Ethernet Design Example User Guide

H-tile Hard IP for Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

Low Latency 100G Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

Intel MAX 10 High-Speed LVDS I/O User Guide

11. Analyzing Timing of Memory IP

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication

Low Latency 100G Ethernet Design Example User Guide

Experiment VERI: FPGA Design with Verilog (Part 2) (webpage: /)

Low Latency 40G Ethernet Example Design User Guide

Stratix II FPGA Family

AN 462: Implementing Multiple Memory Interfaces Using the ALTMEMPHY Megafunction

NIOS CPU Based Embedded Computer System on Programmable Chip

Tutorial for Altera DE1 and Quartus II

Laboratory Exercise 8

Interlaken IP Core (2nd Generation) Design Example User Guide

SerialLite III Streaming IP Core Design Example User Guide for Intel Stratix 10 Devices

AN 610: Implementing Deterministic Latency for CPRI and OBSAI Protocols in Altera Devices

Generic Serial Flash Interface Intel FPGA IP Core User Guide

ALTERA FPGA Design Using Verilog

Quick Tutorial for Quartus II & ModelSim Altera

Building Interfaces with Arria 10 High-Speed Transceivers

1. SDRAM Controller Core

Building Gigabit Interfaces in Altera Transceiver Devices

Errata Sheet for Cyclone V Devices

8B10B Encoder/Decoder MegaCore Function User Guide

8. Switching to the Quartus II TimeQuest Timing Analyzer

Phase-Locked Loop Reconfiguration (ALTPLL_RECONFIG) Megafunction

SmartTime for Libero SoC v11.5

LVDS SERDES Transmitter / Receiver IP Cores User Guide

NIOS CPU Based Embedded Computer System on Programmable Chip

Interfacing DDR2 SDRAM with Stratix II, Stratix II GX, and Arria GX Devices

2.5G Reed-Solomon II MegaCore Function Reference Design

Functional Safety Clock Checker Diagnostic IP Core

University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring Lab 1: Using Nios 2 processor for code execution on FPGA

CHAPTER 1 INTRODUCTION... 1 CHAPTER 2 ASSIGN THE DEVICE... 7 CHAPTER 3 DESIGN ENTRY CHAPTER 4 COMPILE AND VERIFY YOUR DESIGN...

My First FPGA for Altera DE2-115 Board

FFT MegaCore Function User Guide

Intel Quartus Prime Standard Edition User Guide

Intel Stratix 10 Clocking and PLL User Guide

Chapter 2 Getting Hands on Altera Quartus II Software

High-Speed Data Interface for Stratix Devices & Fujitsu MB86064 DACs

Using DCFIFO for Data Transfer between Asynchronous Clock Domains

UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180A DIGITAL SYSTEMS I Winter 2015

Quartus II Software Version 10.0 SP1 Device Support

9. Building Memory Subsystems Using SOPC Builder

Using the Transceiver Reconfiguration Controller for Dynamic Reconfiguration in Arria V and Cyclone V Devices

Nios II Embedded Design Suite 7.1 Release Notes

Implementing LVDS in Cyclone Devices

High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example User Guide

Altera Technical Training Quartus II Software Design

Recommended Protocol Configurations for Stratix IV GX FPGAs

QDRII SRAM Controller MegaCore Function User Guide

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual

ALTDQ_DQS2 Megafunction User Guide

Analyzing Timing of Memory IP

25G Ethernet Intel Stratix 10 FPGA IP Design Example User Guide

3. ALTGX_RECONFIG IP Core User Guide for Stratix IV Devices

Intel Stratix 10 High-Speed LVDS I/O User Guide

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction

Interfacing RLDRAM II with Stratix II, Stratix,& Stratix GX Devices

Introduction to the Altera SOPC Builder Using Verilog Design

Double Data Rate I/O (ALTDDIO_IN, ALTDDIO_OUT, and ALTDDIO_BIDIR) IP Cores User Guide

10. Introduction to UniPHY IP

Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide

lpm_rom Megafunction User Guide

Quartus Prime Standard Edition Software and Device Support Release Notes Version 15.1

Transcription:

Microtronix Video LVDS SerDes Transmitter / Receiver IP Core User Manual Revision 2.2 4056 Meadowbrook Drive, Unmit 126 London, ON Canada N5L 1E3 www.microtronix.com

Document Revision History This user guide provides basic information about using the Microtronix Video LVDS Transmitter / Receiver IP, PN: 6246-xx-xx. The following table shows the document revision history. Date Description April 2007 Initial Release Version 1.0 September 2007 Minor updates Version 1.1 November 2007 Minor updates Version 1.2 January 2008 Added receive timing procedure Version 1.3 March 2008 Added procedure to integrate the Core in a Quartus project Version 1.4 February 2011 Updated for TimeQuest Version 2.0 August 2011 July 2013 Added Stratix III, Stratix IV and Arria devices - Version 2.1 Added Cyclone V, Stratix V and Arria V devices - Version 2.2 How to Contact Microtronix E-mail Sales Information: Support Information: Website General Website: Downloads: Support FTP site: sales@microtronix.com support@microtronix.com http://www.microtronix.com http://www.microtronix.com/downloads/ http://microtronix.leapfile.com Phone Numbers General: (001) 519-690-0091 Fax: (001) 519-690-0092 Typographic Conventions Path/Filename [SOPC Builder]$ <cmd> Code A path/filename A command that should be run from within the Cygwin Environment. Sample code. Indicates that there is no break between the current line and the next line. Page 2 of 16

Table of Contents Document Revision History... 2 How to Contact Microtronix... 2 E-mail... 2 Website... 2 Phone Numbers... 2 Typographic Conventions... 2 Features... 4 Introduction... 5 Device Support... 5 Transmitter... 6 Receiver... 7 Data Mapping... 8 Clock Generation... 10 Assignments... 12 Timing Constraints... 12 Resource Requirements... 13 Simulation... 14 Verification... 14 Installation... 15 IP Core License... 15 OpenCore Plus Evaluation License... 15 Installing the Microtronix IP Core license... 15 Full IP Core License... 16 Page 3 of 16

Features 7:1 Serializer / Deserializer Single core supports transmitter and receiver functions Video LVDS SerDes transmitter and receiver Optimized for 8 and 10-bit RGB video applications Support for both 28-bit and 35-bit parallel data (mapped into 4 /5 LVDS channels) Supports single, dual and quad link configurations LVDS TxClock aligned to data, no PLL fine tuning required Receiver auto aligns clock to encoded video data from input LVDS data stream Supports flat panel display resolutions up to 1080p 120 Hz Configuration GUI streamlines design process Complies with Open LDI Specification for Digital Display Interfaces Operation up to 85 MHz in Cyclone III, IV & V low cost devices Supports Cyclone and Arria device families and Stratix III & IV FPGA devices Support for OpenCore Plus evaluation Quartus Reference Design Page 4 of 16

Introduction The Microtronix Video LVDS SerDes Transmitter / Receiver IP-Core provides a complete, easy-to-use solution to interface with a wide variety of video host systems and flat panel displays. The core simplifies the design of video LVDS interfaces, improves data integrity and timing margins. For example, the Transmitter has the ability to generate a LVDS transmit clock synchronous to the video data stream thereby eliminating the need to fine-tune a PLL to the outputted LVDS data. Similarly, the Receiver auto aligns the receive clock to the encoded video to assure data synchronization. An easy to use GUI enables the user to select the number of LVDS links and to configure the number data channels for each link. The Transmitter serializer converts 28-bit parallel data into 4 LVDS serial data streams and one LVDS clock stream. The Receiver deserializer converts 4 LVDS serial data streams into 28-bit parallel data. Adding a fifth channel increases the data width to 35 bits. Transmitter and Receiver modules can be cascaded to create dual and quad LVDS links. Device Support The Video LVDS SerDes Transmitter / Receiver IP Core is optimized for Altera Cyclone II, III, IV, V, Statix III, IV, V and Arria families of programmable logic devices. Page 5 of 16

Transmitter A block diagram of the Transmitter core is shown in Figure 1. The LVDS transmitter signals are listed in Table 1. Figure 1: Block diagram of LVDS Transmit Serializer Table 1: LVDS Transmitter signal assignments. Signal Direction Description RST IN Active high reset input CLK_IN IN Clock input CLK_IN_x2 IN Clock input x7 2 TA_IN[6-0] IN Channel A Parallel Data In TB_IN[6-0] IN Channel B Parallel Data In TC_IN[6-0] IN Channel C Parallel Data In TD_IN[6-0] IN Channel D Parallel Data In TE_IN[6-0] IN Channel E Parallel Data In TA_OUT OUT LVDS Channel A Out TB_OUT OUT LVDS Channel B Out TC_OUT OUT LVDS Channel C Out TD_OUT OUT LVDS Channel D Out TE_OUT OUT LVDS Channel E Out TCLK_OUT OUT LVDS Channel CLK Out Page 6 of 16

Receiver A block diagram of the LVDS Receiver Deserializer core is shown in Figure 2 below. The LVDS Receiver signals are listed in Table 2. Figure 2: Block diagram of LVDS Receive Deserializer core Table 2: LVDS Receiver signal assignments Signal Direction Description RST IN Active high reset input CLK_IN IN Clock input CLK_IN_x2 IN Clock input x7 2 RA_IN IN LVDS Channel A In RB_IN IN LVDS Channel B In RC_IN IN LVDS Channel C In RD_IN IN LVDS Channel D In RE_IN IN LVDS Channel E In RA_OUT[6-0] OUT Channel A Parallel Data Out RB_OUT[6-0] OUT Channel B Parallel Data Out RC_OUT[6-0] OUT Channel C Parallel Data Out RD_OUT[6-0] OUT Channel D Parallel Data Out RE_OUT[6-0] OUT Channel E Parallel Data Out Page 7 of 16

The LVDS Receiver clock input connects to a PLL that is used to generate CLK_IN and CLK_IN_x2 for the LVDS Deserializer. This PLL must be instantiated by the user (see Clock Generation). Data Mapping Figure 3 below shows the LVDS data mapping for the Transmitter and Receiver. LVDS Clock LVDS Channel A A1 A0 A6 A5 A4 A3 A2 A1 A0 LVDS Channel B B1 B0 B6 B5 B4 B3 B2 B1 B0 LVDS Channel C C1 C0 C6 C5 C4 C3 C2 C1 C0 LVDS Channel D D1 D0 D6 D5 D4 D3 D2 D1 D0 LVDS Channel E E1 E0 E6 E5 E4 E3 E2 E1 E0 Previous Cycle Current Cycle Figure 3: LVDS Mapping Design Flow The following steps describe how to integrate the LVDS SerDes Transmitter / Receiver IP core in a Quartus project. Open Windows command prompt. Browse to the LVDS wizard directory <install_dir>/wizard. Start the wizard by typing java jar mtx_lvds_gui.jar Alternatively, start the wizard from the Microtronix->HD Video LVDS Transmitter Receiver program group in the Start menu Page 8 of 16

Figure 4: Wizard Overview Click on the Project tab. Use the browse button to select a new project or load an existing project. Select the appropriate FPGA device family (Cyclone II, Cyclone III, Cyclone III LS, Cyclone IV E, Cyclone IV GX, Stratix III, Stratix IV (GT/CX/E), Arria GX, Arria II GX or Arria II GZ) and speed grade. Figure 5: Project Tab Page 9 of 16

Click on the LVDS tab to select the LVDS settings. Select the desired IP Architecture, either Transmitter or Receiver. Select the number of links and channels required by the design. Channel value represents the number of LVDS data streams and the Link value represents the number of groups of channels. Figure 6: LVDS Tab Once all the appropriate options are selected, click on the Generate button to start the LVDS IP core generation. The wizard writes a top level LVDS entity. Start Quartus II and open the project. Add LVDS component to the project and connect the signals. Add the mtx_lvds_package to the project files (Assignments - > Settings -> Files). The mtx_lvds_package is located in the directory <install_dir>/synthesis. Add the directory <install_dir>/synthesis to the Quartus user libraries (Assignments -> Settings -> User Libraries). Start the compilation. Clock Generation A PLL is required to generate the clocks for the LVDS IP. The settings vary slightly between the transmitter and the receiver. In both cases, two clocks are required. The first is the base pixel clock and the second is the LVDS bit clock. Page 10 of 16

The multiplication and division factors of the transmitter PLL base pixel clock will depend upon the available clock inputs to the FPGA and the desired pixel frequency. The LVDS bit clock s multiplication factor must always be 7 times that of the pixel clock and its division factor must be 2 times that of the pixel clock. For example, if the input clock to the FPGA was 27MHz and the desired pixel clock was 74.25MHz, the multiplication factor would be 11 and the division factor would be 4 (74.25 = 27 11 4). The multiplication factor for the LVDS bit clock is 3.5 times the pixel clock (i.e 7 2) and would therefore be 77 (11 7) divided by 8 (4 2). See Figure 7 for an example transmitter setup. Figure 7: LVDS Transmitter The multiplication and division factors of the receiver PLL will always be fixed. The base pixel clock will have a multiplication factor of 1 and a division factor of 1. The LVDS bit clock will have a multiplication factor of 7 and a division factor of 2. Both output clocks on the receive PLL must be shifted by one bit position to ensure correct data capture. This is most easily accomplished by setting a phase shift of 51.43 degrees for the pixel clock and 180 degrees for the LVDS bit clock. See Figure 8 for an example LVDS receiver setup. Figure 8: LVDS Receiver Under Operation Mode in the PLL MegaWizard, the second clock (c1) must be selected as the clock to be compensated for. This is required for both transmitter and receiver PLLs. Page 11 of 16

On the Receiver side, the input to the PLL is the clock from the LVDS transmitter. The PLL input clock pin on the FPGA must be a dedicated clock (i.e. the general function of the pin must be that of a clock). Assignments Before starting the compilation in Quartus II the I/O-standard for the LVDS receiver inputs and LVDS transmitter outputs must be set to LVDS. Timing Constraints The LVDS receiver requires a number of timing constraints to ensure proper operation. Before entering the LVDS base clock constraints a couple of calculations must be made. rising edge time = <LVDS base clock period in ns> 7 5 falling edge time = <LVDS base clock period in ns> 7 9 Once the rising and falling edge times of the LVDS base clock have been calculated, they can be entered into the LVDS receiver constraints. When entering the calculated values into an SDC file, round the numbers to three decimal places. set lvds_base_period <LVDS base clock period in ns> create_clock name lvds_rx_base period $lvds_base_period \ waveform {<rising edge time> <falling edge time>} [get_ports <LVDS clock input pin>] derive_pll_clocks set lvds_rx_bit_clk {<TimeQuest name of LVDS bit clock PLL output>} set lvds_rx_data {<space separated list of LVDS receive data pins>} create_clock name lvds_rx_ddr_clk period [expr {$lvds_base_period / 7 * 2}] set max_tco <maximum tco of LVDS source in ns> set min_tco <minimum tco of LVDS source in ns> set skew <absolute value of maximum clock to data skew on board> set_input_delay clock lvds_rx_ddr_clk max [expr {$max_tco + $skew}] \ [get_ports $lvds_rx_data] set_input_delay clock lvds_rx_ddr_clk min [expr {$min_tco - $skew}] \ [get_ports $lvds_rx_data] set_input_delay clock lvds_rx_ddr_clk max [expr {$max_tco + $skew}] \ [get_ports $lvds_rx_data] clock_fall add_delay set_input_delay clock lvds_rx_ddr_clk min [expr {$min_tco - $skew}] \ [get_ports $lvds_rx_data] clock_fall add_delay set_false_path setup rise_from [get_clocks lvds_rx_ddr_clk] fall_to \ [get_clocks $lvds_rx_bit_clk] set_false_path setup fall_from [get_clocks lvds_rx_ddr_clk] rise_to \ [get_clocks $lvds_rx_bit_clk] set_false_path hold rise_from [get_clocks lvds_rx_ddr_clk] rise_to \ [get_clocks $lvds_rx_bit_clk] set_false_path hold fall_from [get_clocks lvds_rx_ddr_clk] fall_to \ [get_clocks $lvds_rx_bit_clk] Page 12 of 16

The LVDS transmitter does not require any timing constraints for proper operation. It relies on the FPGAs dedicated output registers to generate the clock and data properly aligned with each other. To avoid unconstrained path warnings, the following constraint, with the correct transmit pin names substituted, can be used: set_false_path from * -to [get_ports {<space separated list of LVDS transmit pins>}] For example timing constraints, see the SDC file included with the Quartus II reference design project. Resource Requirements Table 3 shows the typical size in logic elements (LE) for the various video LVDS modules. The actual number of logic elements may vary depending on the device family and Quartus settings. Table 3: FPGA Resource requirements Module LE LVDS Transmitter 255 LVDS Receiver 260 Page 13 of 16

Simulation A precompiled simulation library is provided for performing simulations using ModelSim. The library is located in the <install_dir>/simulation directory. Perform the following steps to simulate your design with the video LVDS modules. 1. Launch ModelSim 2. Map the sdram memory controller library. At the ModelSim prompt type: vmap mtx_lvds <install_dir>/simulation/mtx_lvds If you use a newer version of ModelSim, you must refresh the precompiled library. At the Modelsim prompt type; vcom refresh work mtx_lvds 3. Compile all of the design files 4. Start the ModelSim simulation by typing; vsim t ps L mtx_lvds <top_level> Verification The video LVDS module has been verified on Microtronix & Altera development boards. Table 4 shows the hardware tested platforms and supported memory devices. Table 4: Hardware Platforms Development Board Stratix III Arria II GX Cyclone V SoC ViClaro III ViClaro II ViClaro Vivien Altera Device EP3SL150F1152 EP2AGX125EF35 5CSXC6N/ES EP3C120F780C7 EP2C35F484C6 EP2C20F256C7 EP2C5T144C6 Page 14 of 16

Installation Follow these steps to install the Microtronix video LVDS modules on your computer. 1. Insert the Microtronix video LVDS modules Installation CD into your CD-ROM (or equivalent) 2. The setup program for the package should start. If it doesn t, browse to the CD using Windows Explorer and double-click on the setup icon. 3. Follow all the prompts. The setup program will attempt to autodetect the installation location of the Quartus II. Please correct the specified paths if the setup program doesn t or incorrectly detects them. IP Core License The Video SerDes LVDS Transmitter/Receiver IP Core may be supplied with either a OpenCores Plus Evaluation license of a Full Node Locked or a Floating Server license. OpenCore Plus Evaluation License An OpenCore Plus Evaluation license enables you to design and evaluate your design in circuit on a hardware test platform. Microtronix requires the customer NIC or Guard ID (from a Server or PC workstation) in order to generate an Evaluation license to support OpenCore Plus compilation. To generate an Evaluation license, Microtronix requires one of two things: 1. Your Altera Software Guard ID (dongle), this is a 9-digit number starting with T. (Example: T000012345) or. 2. Your 12-digit Network MAC Address (Example: 0123456789AB) Your NIC number is a 12-digit hexadecimal network card number that identifies the Windows workstation serving the Quartus II Web Edition license. You can find the NIC number by typing ipconfig /all at the command prompt. Your NIC number is the number on the physical address line, minus the dashes, for example, 00C04FA392EF. Once either are received, Microtronix will send you the license file(s) to enable Quartus to generate a.sof file for you to run on your target board. Installing the Microtronix IP Core license To install an IP Core license, follow these steps: 1) Run the Altera Quartus II program and from the menu select > Tools > License Setup.This menu gives the location of the folder and Page 15 of 16

name of the master license file used by Quartus. For example: C:\altera\licences\T000085155.dat. 2) Open this license file with a text editor (i.e. Notepad). 3) In a separate text editor window, open the license_filename.dat file provided by Microtronix. 4) Select all of the text in the Microtronix license file. 5) Paste this text into the Altera license.dat file at the end of the file. 6) If it is a Server License, you may need to edit the Server Name or TCP Port in the header per notes in Server License. 7) Save this file and close the text editor. 8) Return to Quartus and start your project. For more information, please visit http://altera.com/literature/an/an340.pdf Full IP Core License To generate pof program files incorporating the Video SerDes Transmitter/Receiver IP core requires the user to have purchased a Full IP Core license. These licenses are generated by Microtronix based on a NIC or Guard ID supplied by the user. They can be supplied as either Floating Server or a Node Locked PC workstation license. After purchasing a Full License you receive your license file. Copy the license file (license.dat) to your current Quartus license file and the LVDS core (CC21_6246) will show in the Quartus License Setup (Tools->License Setup). Please contact sales at Microtronix (sales@microtronix.com) for additional licensing details. Page 16 of 16