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)