1 --********************************************************************************* 3 -- Center for Exploration of Energy and Matter (CEEM) 7 -- Author: Brandon Kunkler 11 --********************************************************************************* 13 -- Top level Aurora entity. 14 -- Deficiencies/Issues: 15 -- 1) CK: Xst:2972 All outputs of instance <std_cc_module_i> of block <STANDARD_CC_MODULE> 16 -- are unconnected in block <klm_aurora_intfc>. Underlying logic will be removed. 17 --********************************************************************************* 19 use ieee.std_logic_1164.
all;
20 use ieee.std_logic_misc.
all;
21 use work.aurora_pkg.
all;
25 SIM_GTPRESET_SPEEDUP : := 1;
26 CLK_CORRECT_USE : := TRUE);
--Set to true to use clock correction 28 refseldypll : (2 downto 0);
36 -- LocalLink TX Interface 43 -- LocalLink RX Interface 60 loopback : in (2 downto 0);
72 signal frame_err_i : ;
74 signal channel_up_i : ;
76 -- Clock Compensation Control Interface 80 signal plllockn_i : := '1';
82 signal rxeqmix_in_i : (1 downto 0);
83 signal daddr_in_i : (7 downto 0);
86 signal di_in_i : (15 downto 0);
87 signal drdy_out_unused_i : ;
88 signal drpdo_out_unused_i : (15 downto 0);
90 signal rst_cc_module_i : ;
92 signal warn_cc_mdl : ;
95 -- Component Declarations -- 98 SIM_GTPRESET_SPEEDUP : :=
1;
99 CLK_CORRECT_USE : := TRUE);
101 -- LocalLink TX Interface 108 -- LocalLink RX Interface 109 RX_D :
out (
0 to 15);
119 -- GT Reference Clock Interface 120 REFSELDYPLL :
in (
2 downto 0);
124 -- Error Detection Interface 131 -- Clock Compensation Control Interface 140 LOOPBACK :
in (
2 downto 0);
142 RXEQMIX_IN :
in (
1 downto 0);
143 DADDR_IN :
in (
7 downto 0);
146 DI_IN :
in (
15 downto 0);
148 DRPDO_OUT :
out (
15 downto 0);
155 -- Clock Compensation Control Interface 165 -- Module Instantiations -- 168 SIM_GTPRESET_SPEEDUP => SIM_GTPRESET_SPEEDUP,
169 CLK_CORRECT_USE => CLK_CORRECT_USE
) 171 -- LocalLink TX Interface 174 TX_SRC_RDY_N => tx_src_rdy_n,
175 TX_SOF_N => tx_sof_n,
176 TX_EOF_N => tx_eof_n,
177 TX_DST_RDY_N => tx_dst_rdy_n,
178 -- LocalLink RX Interface 181 RX_SRC_RDY_N => rx_src_rdy_n,
182 RX_SOF_N => rx_sof_n,
183 RX_EOF_N => rx_eof_n,
189 -- GT Reference Clock Interface 190 REFSELDYPLL => refseldypll,
194 -- Error Detection Interface 195 HARD_ERR => hard_err_i,
196 SOFT_ERR => soft_err_i,
197 FRAME_ERR => frame_err_i,
199 CHANNEL_UP => channel_up_i,
200 LANE_UP => lane_up_i,
201 -- Clock Compensation Control Interface 202 WARN_CC => warn_cc_i,
205 USER_CLK => user_clk,
206 SYNC_CLK => sync_clk,
208 POWER_DOWN => powerdown,
209 LOOPBACK => loopback,
210 GT_RESET => gt_reset,
212 RXEQMIX_IN => rxeqmix_in_i,
213 DADDR_IN => daddr_in_i,
214 DCLK_IN => dclk_in_i,
217 DRDY_OUT => drdy_out_unused_i,
218 DRPDO_OUT => drpdo_out_unused_i,
225 -- Clock Compensation Control Interface 226 WARN_CC => warn_cc_mdl,
229 USER_CLK => user_clk,
230 RESET => rst_cc_module_i
233 --Clock correct logic generation 234 CCLT_GEN : if CLK_CORRECT_USE = TRUE generate 235 warn_cc_i <= warn_cc_mdl;
236 do_cc_i <= do_cc_mdl;
238 CCLF_GEN : if CLK_CORRECT_USE = FALSE generate 244 rxeqmix_in_i <= "11";
245 daddr_in_i <= (others=>'0');
248 di_in_i <= (others=>'0');
250 rst_cc_module_i <= not lane_up_i;
252 -- Register core user ports 253 pipeline_pcs :
process (user_clk)
255 if (user_clk 'event and user_clk = '1') then 256 plllockn_i <= not plllock;
258 hard_err <= hard_err_i;
259 soft_err <= soft_err_i;
260 frame_err <= frame_err_i;
261 lane_up <= lane_up_i;
262 channel_up <= channel_up_i;
263 warn_cc <= warn_cc_i;