SURF  1.0
AxiAds42lb69Core.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : AxiAds42lb69Core.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2015-03-20
5 -- Last update: 2015-05-19
6 -------------------------------------------------------------------------------
7 -- Description: AXI-Lite interface to ADS42LB69 ADC IC
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 -------------------------------------------------------------------------------
17 
18 library ieee;
19 use ieee.std_logic_1164.all;
20 
21 use work.StdRtlPkg.all;
22 use work.AxiLitePkg.all;
23 use work.AxiAds42lb69Pkg.all;
24 
25 --! @see entity
26  --! @ingroup devices_Ti_ads42lb69
28  generic (
29  TPD_G : time := 1 ns;
30  SIM_SPEEDUP_G : boolean := false;
31  USE_PLL_G : boolean := false; -- true = phase compensate the ADC data bus
32  ADC_CLK_FREQ_G : real := 250.00E+6; -- units of Hz
33  DMODE_INIT_G : slv(1 downto 0) := "00";
34  DELAY_INIT_G : Slv9VectorArray(1 downto 0, 7 downto 0) := (others => (others => (others => '0')));
35  IODELAY_GROUP_G : string := "AXI_ADS42LB69_IODELAY_GRP";
37  XIL_DEVICE_G : string := "7SERIES");
38  port (
39  -- ADC Ports
42  -- ADC signals (adcClk domain)
43  adcSync : in sl;
44  adcData : out Slv16Array(1 downto 0);
45  -- AXI-Lite Register Interface (axiClk domain)
50  -- Clocks and Resets
51  axiClk : in sl;
52  axiRst : in sl;
53  adcClk : in sl;
54  adcRst : in sl;
56 end AxiAds42lb69Core;
57 
58 architecture mapping of AxiAds42lb69Core is
59 
62 
63 begin
64 
66 
67  AxiAds42lb69Reg_Inst : entity work.AxiAds42lb69Reg
68  generic map(
69  TPD_G => TPD_G,
74  port map(
75  -- AXI-Lite Register Interface (axiClk domain)
80  -- Register Inputs/Outputs (Mixed Domain)
81  status => status,
82  config => config,
83  -- Clocks and Resets
84  adcClk => adcClk,
85  adcRst => adcRst,
86  axiClk => axiClk,
87  axiRst => axiRst);
88 
89  AxiAds42lb69Deser_Inst : entity work.AxiAds42lb69Deser
90  generic map(
91  TPD_G => TPD_G,
97  port map (
98  -- ADC Ports
99  clkP => adcOut.clkP,
100  clkN => adcOut.clkN,
101  syncP => adcOut.syncP,
102  syncN => adcOut.syncN,
103  clkFbP => adcIn.clkFbP,
104  clkFbN => adcIn.clkFbN,
105  dataP => adcIn.dataP,
106  dataN => adcIn.dataN,
107  -- ADC Data Interface (adcClk domain)
108  adcData => status.adcData,
109  -- Register Interface (axiClk domain)
110  dmode => config.dmode,
111  -- Register Interface (axiClk domain)
112  delayIn => config.delayIn,
113  delayOut => status.delayOut,
114  -- Clocks and Resets
115  axiClk => axiClk,
116  axiRst => axiRst,
117  adcClk => adcClk,
118  adcRst => adcRst,
119  adcSync => adcSync,
120  refclk200MHz => refclk200MHz);
121 
122 end mapping;
out adcOutAxiAds42lb69OutType
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
out axiReadSlaveAxiLiteReadSlaveType
out configAxiAds42lb69ConfigType
out axiReadSlaveAxiLiteReadSlaveType
SIM_SPEEDUP_Gboolean := false
AxiLiteWriteMasterType
Definition: AxiLitePkg.vhd:111
std_logic sl
Definition: StdRtlPkg.vhd:28
in axiReadMasterAxiLiteReadMasterType
out axiWriteSlaveAxiLiteWriteSlaveType
out axiWriteSlaveAxiLiteWriteSlaveType
AxiAds42lb69ConfigType config
in dataPSlv8Array( 1 downto 0)
out delayOutAxiAds42lb69DelayOutType
DELAY_INIT_GSlv9VectorArray ( 1 downto 0, 7 downto 0):=( others =>( others =>( others => '0')))
in axiWriteMasterAxiLiteWriteMasterType
in axiWriteMasterAxiLiteWriteMasterType
AxiAds42lb69StatusType status
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
Definition: AxiLitePkg.vhd:36
IODELAY_GROUP_Gstring := "AXI_ADS42LB69_IODELAY_GRP"
DELAY_INIT_GSlv9VectorArray ( 1 downto 0, 7 downto 0):=( others =>( others =>( others => '0')))
XIL_DEVICE_Gstring := "7SERIES"
IODELAY_GROUP_Gstring := "AXI_ADS42LB69_IODELAY_GRP"
DMODE_INIT_Gslv( 1 downto 0) := "00"
out adcDataSlv16Array( 1 downto 0)
out adcDataSlv16Array( 1 downto 0)
SIM_SPEEDUP_Gboolean := false
AxiLiteReadMasterType
Definition: AxiLitePkg.vhd:59
ADC_CLK_FREQ_Greal := 250.0E+6
in statusAxiAds42lb69StatusType
ADC_CLK_FREQ_Greal := 250.00E+6
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
in dmodeslv( 1 downto 0)
in adcInAxiAds42lb69InType
TPD_Gtime := 1 ns
in dataNSlv8Array( 1 downto 0)
array(natural range <> ) of slv( 15 downto 0) Slv16Array
Definition: StdRtlPkg.vhd:395
AxiLiteReadSlaveType
Definition: AxiLitePkg.vhd:85
USE_PLL_Gboolean := false
in delayInAxiAds42lb69DelayInType
_library_ ieeeieee
Definition: adc32rf45.vhd:18
array(natural range <> ,natural range <> ) of slv( 8 downto 0) Slv9VectorArray
Definition: StdRtlPkg.vhd:660
ADC_CLK_FREQ_Greal := 250.00E+6
XIL_DEVICE_Gstring := "7SERIES"
in axiReadMasterAxiLiteReadMasterType
USE_PLL_Gboolean := false
DMODE_INIT_Gslv( 1 downto 0) := "00"
std_logic_vector slv
Definition: StdRtlPkg.vhd:29