1 ------------------------------------------------------------------------------- 2 -- File : Ad9249Deserializer.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2013-02-22 5 -- Last update: 2016-06-10 6 ------------------------------------------------------------------------------- 7 -- Description: 14 bit DDR deserializer using 7 series IDELAYE2 and ISERDESE2. 8 ------------------------------------------------------------------------------- 9 -- This file is part of 'SLAC Firmware Standard Library'. 10 -- It is subject to the license terms in the LICENSE.txt file found in the 11 -- top-level directory of this distribution and at: 12 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. 13 -- No part of 'SLAC Firmware Standard Library', including this file, 14 -- may be copied, modified, propagated, or distributed except according to 15 -- the terms contained in the LICENSE.txt file. 16 ------------------------------------------------------------------------------- 20 use ieee.std_logic_1164.
all;
23 use UNISIM.vcomponents.
all;
26 --! @ingroup devices_AnalogDevices_ad9249 48 end entity Ad9249Deserializer;
56 attribute IODELAY_GROUP : ;
64 DELAY_SRC =>
"IDATAIN",
65 HIGH_PERFORMANCE_MODE =>
"TRUE",
66 IDELAY_TYPE =>
"VAR_LOAD",
67 IDELAY_VALUE =>
0,
-- Here 69 SIGNAL_PATTERN =>
"DATA" 85 U_ISERDES_MASTER : ISERDESE2
89 INTERFACE_TYPE =>
"NETWORKING",
90 DYN_CLKDIV_INV_EN =>
"FALSE",
91 DYN_CLK_INV_EN =>
"FALSE",
94 IOBDELAY =>
"IFD",
-- Use input at DDLY to output the data on Q1-Q6 95 SERDES_MODE =>
"MASTER") 105 SHIFTOUT1 => shift1,
-- Cascade connection to Slave ISERDES 106 SHIFTOUT2 => shift2,
-- Cascade connection to Slave ISERDES 107 BITSLIP =>
slip,
-- 1-bit Invoke Bitslip. This can be used with any 108 -- DATA_WIDTH, cascaded or not. 109 CE1 => '1',
-- 1-bit Clock enable input 110 CE2 => '1',
-- 1-bit Clock enable input 111 CLK =>
clkIo,
-- Fast Source Synchronous SERDES clock from BUFIO 112 CLKB =>
clkIoInv,
-- Locally inverted clock 113 CLKDIV =>
clkR,
-- Slow clock driven by BUFR 116 DDLY => dlyData,
-- 1-bit Input signal from IODELAYE1. 117 RST =>
rst,
-- 1-bit Asynchronous reset only. 120 -- unused connections 126 O =>
open);
-- unregistered output of ISERDESE1 128 U_ISERDES_SLAVE : ISERDESE2
132 INTERFACE_TYPE =>
"NETWORKING",
133 DYN_CLKDIV_INV_EN =>
"FALSE",
134 DYN_CLK_INV_EN =>
"FALSE",
137 IOBDELAY =>
"IFD",
-- Use input at DDLY to output the data on Q1-Q6 138 SERDES_MODE =>
"SLAVE") 150 SHIFTIN1 => shift1,
-- Cascade connections from Master ISERDES 151 SHIFTIN2 => shift2,
-- Cascade connections from Master ISERDES 152 BITSLIP =>
slip,
-- 1-bit Invoke Bitslip. This can be used with any 153 -- DATA_WIDTH, cascaded or not. 154 CE1 => '1',
-- 1-bit Clock enable input 155 CE2 => '1',
-- 1-bit Clock enable input 156 CLK =>
clkIo,
-- Fast source synchronous serdes clock 157 CLKB =>
clkIoInv,
-- locally inverted clock 158 CLKDIV =>
clkR,
-- Slow clock driven by BUFR. 160 D => '0',
-- Slave ISERDES module. No need to connect D, DDLY 162 RST =>
rst,
-- 1-bit Asynchronous reset only. 163 -- unused connections 169 O =>
open);
-- unregistered output of ISERDESE1 171 end architecture rtl;
IDELAYCTRL_FREQ_Greal := 200.0
out curDelayslv( 4 downto 0)
out oDataslv( 13 downto 0)
in setDelayslv( 4 downto 0)