1 ------------------------------------------------------------------------------- 2 -- File : AxiLtc2270DeserBit.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2014-04-21 5 -- Last update: 2014-04-21 6 ------------------------------------------------------------------------------- 7 -- Description: ADC DDR Deserializer 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 ------------------------------------------------------------------------------- 19 use ieee.std_logic_1164.
all;
20 use ieee.std_logic_unsigned.
all;
21 use ieee.std_logic_arith.
all;
30 --! @ingroup devices_Linear_lct2270 37 -- ADC Data (clk domain) 42 -- IO_Delay (refClk200MHz domain) 49 end AxiLtc2270DeserBit;
56 attribute IODELAY_GROUP : ;
67 IDELAYE2_inst : IDELAYE2
69 CINVCTRL_SEL =>
"FALSE",
-- Enable dynamic clock inversion (FALSE, TRUE) 70 DELAY_SRC =>
"IDATAIN",
-- Delay input (IDATAIN, DATAIN) 71 HIGH_PERFORMANCE_MODE =>
"FALSE",
-- Reduced jitter ("TRUE"), Reduced power ("FALSE") 72 IDELAY_TYPE =>
"VAR_LOAD",
-- FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE 73 IDELAY_VALUE => conv_integer
(DELAY_INIT_G),
-- Input delay tap setting (0-31) 74 PIPE_SEL =>
"FALSE",
-- Select pipelined mode, FALSE, TRUE 75 REFCLK_FREQUENCY =>
200.0,
-- IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0). 76 SIGNAL_PATTERN =>
"DATA") -- DATA, CLOCK input signal 78 CNTVALUEOUT =>
delayOutData,
-- 5-bit output: Counter value output 79 DATAOUT => dataDly,
-- 1-bit output: Delayed data output 81 CE => '0',
-- 1-bit input: Active high enable increment/decrement input 82 CINVCTRL => '0',
-- 1-bit input: Dynamic clock inversion input 83 CNTVALUEIN =>
delayInData,
-- 5-bit input: Counter value input 84 DATAIN => '0',
-- 1-bit input: Internal delay data input 85 IDATAIN =>
data,
-- 1-bit input: Data input from the I/O 86 INC => '0',
-- 1-bit input: Increment / Decrement tap delay input 87 LD => '1',
-- 1-bit input: Load IDELAY_VALUE input 88 LDPIPEEN => '0',
-- 1-bit input: Enable PIPELINE register to load data input 89 REGRST =>
delayInLoad);
-- 1-bit input: Active-high reset tap-delay input 93 DDR_CLK_EDGE =>
"SAME_EDGE_PIPELINED",
-- "OPPOSITE_EDGE", "SAME_EDGE", or "SAME_EDGE_PIPELINED" 94 INIT_Q1 => '0',
-- Initial value of Q1: '0' or '1' 95 INIT_Q2 => '0',
-- Initial value of Q2: '0' or '1' 96 SRTYPE =>
"SYNC") -- Set/Reset type: "SYNC" or "ASYNC" 98 D => dataDly,
-- 1-bit DDR data input 99 C =>
clk,
-- 1-bit clock input 100 CE => '1',
-- 1-bit clock enable input 101 R => '0',
-- 1-bit reset 102 S => '0',
-- 1-bit set 103 Q1 =>
Q1,
-- 1-bit output for positive edge of clock 104 Q2 =>
Q2);
-- 1-bit output for negative edge of clock
out delayOutDataslv( 4 downto 0)
DELAY_INIT_Gslv( 4 downto 0) :=( others => '0')
Slv5VectorArray ( 0 to 1, 0 to 7) data
IODELAY_GROUP_Gstring := "AXI_LTC2270_IODELAY_GRP"
in delayInDataslv( 4 downto 0)