##// END OF EJS Templates
(MINI-LFR) WFP_MS 0.1.49...
pellion -
r513:cb7d6dc9cf10 (MINI-LFR) WFP_MS-0-1-49 (LFR-EM) WFP_MS-1-1-49 JC
parent child
Show More
@@ -42,7 +42,7 USE lpp.lpp_lfr_pkg.ALL; -- contains lp
42 42 USE lpp.lpp_top_lfr_pkg.ALL; -- contains top_wf_picker
43 43 USE lpp.iir_filter.ALL;
44 44 USE lpp.general_purpose.ALL;
45 USE lpp.lpp_lfr_time_management.ALL;
45 USE lpp.lpp_lfr_management.ALL;
46 46 USE lpp.lpp_leon3_soc_pkg.ALL;
47 47
48 48 ENTITY LFR_em IS
@@ -250,7 +250,7 BEGIN -- beh
250 250 -------------------------------------------------------------------------------
251 251 -- APB_LFR_TIME_MANAGEMENT ----------------------------------------------------
252 252 -------------------------------------------------------------------------------
253 apb_lfr_time_management_1 : apb_lfr_time_management
253 apb_lfr_management_1 : apb_lfr_management
254 254 GENERIC MAP (
255 255 pindex => 6,
256 256 paddr => 6,
@@ -264,6 +264,11 BEGIN -- beh
264 264 grspw_tick => swno.tickout,
265 265 apbi => apbi_ext,
266 266 apbo => apbo_ext(6),
267
268 HK_sample => sample_s(8),
269 HK_val => sample_val,
270 HK_sel => HK_SEL,
271
267 272 coarse_time => coarse_time,
268 273 fine_time => fine_time,
269 274 LFR_soft_rstn => LFR_soft_rstn
@@ -374,7 +379,7 BEGIN -- beh
374 379 pirq_ms => 6,
375 380 pirq_wfp => 14,
376 381 hindex => 2,
377 top_lfr_version => X"01012F") -- aa.bb.cc version
382 top_lfr_version => X"010131") -- aa.bb.cc version
378 383 -- AA : BOARD NUMBER
379 384 -- 0 => MINI_LFR
380 385 -- 1 => EM
@@ -435,20 +440,4 BEGIN -- beh
435 440 -----------------------------------------------------------------------------
436 441 ADC_OEB_bar_HK <= ADC_OEB_bar_CH_s(8);
437 442
438 lpp_lfr_hk_1: lpp_lfr_hk
439 GENERIC MAP (
440 pindex => 7,
441 paddr => 7,
442 pmask => 16#fff#)
443 PORT MAP (
444 clk => clk_25,
445 rstn => rstn,
446
447 apbi => apbi_ext,
448 apbo => apbo_ext(7),
449
450 sample_val => sample_val,
451 sample => sample_s(8),
452 HK_SEL => HK_SEL);
453
454 443 END beh;
@@ -42,7 +42,7 USE lpp.lpp_lfr_pkg.ALL; -- contains lp
42 42 USE lpp.lpp_top_lfr_pkg.ALL; -- contains top_wf_picker
43 43 USE lpp.iir_filter.ALL;
44 44 USE lpp.general_purpose.ALL;
45 USE lpp.lpp_lfr_time_management.ALL;
45 USE lpp.lpp_lfr_management.ALL;
46 46 USE lpp.lpp_leon3_soc_pkg.ALL;
47 47
48 48 ENTITY MINI_LFR_top IS
@@ -385,9 +385,9 BEGIN -- beh
385 385
386 386 SRAM_CE <= SRAM_CE_s(0);
387 387 -------------------------------------------------------------------------------
388 -- APB_LFR_TIME_MANAGEMENT ----------------------------------------------------
388 -- APB_LFR_MANAGEMENT ---------------------------------------------------------
389 389 -------------------------------------------------------------------------------
390 apb_lfr_time_management_1 : apb_lfr_time_management
390 apb_lfr_management_1 : apb_lfr_management
391 391 GENERIC MAP (
392 392 pindex => 6,
393 393 paddr => 6,
@@ -401,6 +401,9 BEGIN -- beh
401 401 grspw_tick => swno.tickout,
402 402 apbi => apbi_ext,
403 403 apbo => apbo_ext(6),
404 HK_sample => sample_hk,
405 HK_val => sample_val,
406 HK_sel => HK_SEL,
404 407 coarse_time => coarse_time,
405 408 fine_time => fine_time,
406 409 LFR_soft_rstn => LFR_soft_rstn
@@ -515,7 +518,7 BEGIN -- beh
515 518 pirq_ms => 6,
516 519 pirq_wfp => 14,
517 520 hindex => 2,
518 top_lfr_version => X"00012E") -- aa.bb.cc version
521 top_lfr_version => X"000131") -- aa.bb.cc version
519 522 PORT MAP (
520 523 clk => clk_25,
521 524 rstn => LFR_rstn,
@@ -578,22 +581,6 BEGIN -- beh
578 581 ADC_CLK <= ADC_CLK_sig;
579 582 ADC_SDO_sig <= ADC_SDO;
580 583
581 lpp_lfr_hk_1: lpp_lfr_hk
582 GENERIC MAP (
583 pindex => 7,
584 paddr => 7,
585 pmask => 16#fff#)
586 PORT MAP (
587 clk => clk_25,
588 rstn => rstn_25,
589
590 apbi => apbi_ext,
591 apbo => apbo_ext(7),
592
593 sample_val => sample_val,
594 sample => sample_hk,
595 HK_SEL => HK_SEL);
596
597 584 sample_hk <= "0001000100010001" WHEN HK_SEL = "00" ELSE
598 585 "0010001000100010" WHEN HK_SEL = "10" ELSE
599 586 "0100010001000100" WHEN HK_SEL = "10" ELSE
@@ -727,7 +714,7 BEGIN -- beh
727 714 --
728 715 -----------------------------------------------------------------------------
729 716 all_apbo_ext : FOR I IN NB_APB_SLAVE-1+5 DOWNTO 5 GENERATE
730 apbo_ext_not_used : IF I /= 5 AND I /= 6 AND I /= 7 AND I /= 11 AND I /= 15 GENERATE
717 apbo_ext_not_used : IF I /= 5 AND I /= 6 AND I /= 11 AND I /= 15 GENERATE
731 718 apbo_ext(I) <= apb_none;
732 719 END GENERATE apbo_ext_not_used;
733 720 END GENERATE all_apbo_ext;
@@ -11,7 +11,7
11 11 ./dsp/lpp_fft_rtax
12 12 ./lpp_memory
13 13 ./dsp/lpp_fft
14 ./lfr_time_management
14 ./lfr_management
15 15 ./lpp_ad_Conv
16 16 ./lpp_bootloader
17 17 ./lpp_cna
@@ -27,11 +27,11 USE grlib.devices.ALL;
27 27 LIBRARY lpp;
28 28 USE lpp.apb_devices_list.ALL;
29 29 USE lpp.general_purpose.ALL;
30 USE lpp.lpp_lfr_time_management.ALL;
31 USE lpp.lpp_lfr_time_management_apbreg_pkg.ALL;
30 USE lpp.lpp_lfr_management.ALL;
31 USE lpp.lpp_lfr_management_apbreg_pkg.ALL;
32 32
33 33
34 ENTITY apb_lfr_time_management IS
34 ENTITY apb_lfr_management IS
35 35
36 36 GENERIC(
37 37 pindex : INTEGER := 0; --! APB slave index
@@ -50,16 +50,20 ENTITY apb_lfr_time_management IS
50 50
51 51 apbi : IN apb_slv_in_type; --! APB slave input signals
52 52 apbo : OUT apb_slv_out_type; --! APB slave output signals
53
53 ---------------------------------------------------------------------------
54 HK_sample : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
55 HK_val : IN STD_LOGIC;
56 HK_sel : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
57 ---------------------------------------------------------------------------
54 58 coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); --! coarse time
55 59 fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); --! fine TIME
56 60 ---------------------------------------------------------------------------
57 61 LFR_soft_rstn : OUT STD_LOGIC
58 62 );
59 63
60 END apb_lfr_time_management;
64 END apb_lfr_management;
61 65
62 ARCHITECTURE Behavioral OF apb_lfr_time_management IS
66 ARCHITECTURE Behavioral OF apb_lfr_management IS
63 67
64 68 CONSTANT REVISION : INTEGER := 1;
65 69 CONSTANT pconfig : apb_config_type := (
@@ -74,6 +78,9 ARCHITECTURE Behavioral OF apb_lfr_time_
74 78 coarse_time : STD_LOGIC_VECTOR(31 DOWNTO 0);
75 79 fine_time : STD_LOGIC_VECTOR(15 DOWNTO 0);
76 80 LFR_soft_reset : STD_LOGIC;
81 HK_temp_0 : STD_LOGIC_VECTOR(15 DOWNTO 0);
82 HK_temp_1 : STD_LOGIC_VECTOR(15 DOWNTO 0);
83 HK_temp_2 : STD_LOGIC_VECTOR(15 DOWNTO 0);
77 84 END RECORD;
78 85 SIGNAL r : apb_lfr_time_management_Reg;
79 86
@@ -108,6 +115,10 ARCHITECTURE Behavioral OF apb_lfr_time_
108 115 SIGNAL soft_reset : STD_LOGIC;
109 116 SIGNAL soft_reset_sync : STD_LOGIC;
110 117 -----------------------------------------------------------------------------
118 SIGNAL HK_temp_0_s : STD_LOGIC_VECTOR(15 DOWNTO 0);
119 SIGNAL HK_temp_1_s : STD_LOGIC_VECTOR(15 DOWNTO 0);
120 SIGNAL HK_temp_2_s : STD_LOGIC_VECTOR(15 DOWNTO 0);
121 SIGNAL HK_sel_s : STD_LOGIC_VECTOR( 1 DOWNTO 0);
111 122
112 123 SIGNAL rstn_LFR_TM : STD_LOGIC;
113 124
@@ -153,11 +164,11 BEGIN
153 164 --APB Write OP
154 165 IF (apbi.psel(pindex) AND apbi.penable AND apbi.pwrite) = '1' THEN
155 166 CASE apbi.paddr(7 DOWNTO 2) IS
156 WHEN ADDR_LFR_TM_CONTROL =>
167 WHEN ADDR_LFR_MANAGMENT_CONTROL =>
157 168 r.ctrl <= apbi.pwdata(0);
158 169 r.soft_reset <= apbi.pwdata(1);
159 170 r.LFR_soft_reset <= apbi.pwdata(2);
160 WHEN ADDR_LFR_TM_TIME_LOAD =>
171 WHEN ADDR_LFR_MANAGMENT_TIME_LOAD =>
161 172 r.coarse_time_load <= apbi.pwdata(30 DOWNTO 0);
162 173 coarsetime_reg_updated <= '1';
163 174 WHEN OTHERS =>
@@ -175,18 +186,27 BEGIN
175 186 --APB READ OP
176 187 IF (apbi.psel(pindex) AND (NOT apbi.pwrite)) = '1' THEN
177 188 CASE apbi.paddr(7 DOWNTO 2) IS
178 WHEN ADDR_LFR_TM_CONTROL =>
189 WHEN ADDR_LFR_MANAGMENT_CONTROL =>
179 190 Rdata(0) <= r.ctrl;
180 191 Rdata(1) <= r.soft_reset;
181 192 Rdata(2) <= r.LFR_soft_reset;
182 193 Rdata(31 DOWNTO 3) <= (others => '0');
183 WHEN ADDR_LFR_TM_TIME_LOAD =>
194 WHEN ADDR_LFR_MANAGMENT_TIME_LOAD =>
184 195 Rdata(30 DOWNTO 0) <= r.coarse_time_load(30 DOWNTO 0);
185 WHEN ADDR_LFR_TM_TIME_COARSE =>
196 WHEN ADDR_LFR_MANAGMENT_TIME_COARSE =>
186 197 Rdata(31 DOWNTO 0) <= r.coarse_time(31 DOWNTO 0);
187 WHEN ADDR_LFR_TM_TIME_FINE =>
198 WHEN ADDR_LFR_MANAGMENT_TIME_FINE =>
188 199 Rdata(31 DOWNTO 16) <= (OTHERS => '0');
189 200 Rdata(15 DOWNTO 0) <= r.fine_time(15 DOWNTO 0);
201 WHEN ADDR_LFR_MANAGMENT_HK_TEMP_0 =>
202 Rdata(31 DOWNTO 16) <= (OTHERS => '0');
203 Rdata(15 DOWNTO 0) <= r.HK_temp_0;
204 WHEN ADDR_LFR_MANAGMENT_HK_TEMP_1 =>
205 Rdata(31 DOWNTO 16) <= (OTHERS => '0');
206 Rdata(15 DOWNTO 0) <= r.HK_temp_1;
207 WHEN ADDR_LFR_MANAGMENT_HK_TEMP_2 =>
208 Rdata(31 DOWNTO 16) <= (OTHERS => '0');
209 Rdata(15 DOWNTO 0) <= r.HK_temp_2;
190 210 WHEN OTHERS =>
191 211 Rdata(31 DOWNTO 0) <= (others => '0');
192 212 END CASE;
@@ -326,4 +346,35 BEGIN
326 346 coarse_time => coarse_time_49,
327 347 coarse_time_new => coarse_time_new_49);
328 348
329 END Behavioral;
349 -----------------------------------------------------------------------------
350 -- HK
351 -----------------------------------------------------------------------------
352
353 PROCESS (clk25MHz, resetn)
354 BEGIN -- PROCESS
355 IF resetn = '0' THEN -- asynchronous reset (active low)
356
357 r.HK_temp_0 <= (OTHERS => '0');
358 r.HK_temp_1 <= (OTHERS => '0');
359 r.HK_temp_2 <= (OTHERS => '0');
360
361 HK_sel_s <= "00";
362
363 ELSIF clk25MHz'event AND clk25MHz = '1' THEN -- rising clock edge
364
365 IF HK_val = '1' THEN
366 CASE HK_sel_s IS
367 WHEN "00" => r.HK_temp_0 <= HK_sample; HK_sel_s <= "01";
368 WHEN "01" => r.HK_temp_1 <= HK_sample; HK_sel_s <= "10";
369 WHEN "10" => r.HK_temp_2 <= HK_sample; HK_sel_s <= "00";
370 WHEN OTHERS => NULL;
371 END CASE;
372
373 END IF;
374
375 END IF;
376 END PROCESS;
377
378 HK_sel <= HK_sel_s;
379
380 END Behavioral; No newline at end of file
1 NO CONTENT: file renamed from lib/lpp/lfr_time_management/coarse_time_counter.vhd to lib/lpp/lfr_management/coarse_time_counter.vhd
1 NO CONTENT: file renamed from lib/lpp/lfr_time_management/fine_time_counter.vhd to lib/lpp/lfr_management/fine_time_counter.vhd
@@ -21,7 +21,7 LIBRARY IEEE;
21 21 USE IEEE.STD_LOGIC_1164.ALL;
22 22 USE IEEE.NUMERIC_STD.ALL;
23 23 LIBRARY lpp;
24 USE lpp.lpp_lfr_time_management.ALL;
24 USE lpp.lpp_lfr_management.ALL;
25 25
26 26 ENTITY lfr_time_management IS
27 27 GENERIC (
@@ -24,29 +24,31 USE grlib.amba.ALL;
24 24 USE grlib.stdlib.ALL;
25 25 USE grlib.devices.ALL;
26 26
27 PACKAGE lpp_lfr_time_management IS
27 PACKAGE lpp_lfr_management IS
28 28
29 29 --***************************
30 -- APB_LFR_TIME_MANAGEMENT
30 -- APB_LFR_MANAGEMENT
31 31
32 COMPONENT apb_lfr_time_management IS
32 COMPONENT apb_lfr_management
33 33 GENERIC(
34 pindex : INTEGER := 0; --! APB slave index
35 paddr : INTEGER := 0; --! ADDR field of the APB BAR
36 pmask : INTEGER := 16#fff#; --! MASK field of the APB BAR
34 pindex : INTEGER;
35 paddr : INTEGER;
36 pmask : INTEGER;
37 37 FIRST_DIVISION : INTEGER;
38 38 NB_SECOND_DESYNC : INTEGER);
39 39 PORT (
40 clk25MHz : IN STD_LOGIC; --! Clock
41 clk24_576MHz : IN STD_LOGIC; --! secondary clock
42 resetn : IN STD_LOGIC; --! Reset
43 grspw_tick : IN STD_LOGIC; --! grspw signal asserted when a valid time-code is received
44 apbi : IN apb_slv_in_type; --! APB slave input signals
45 apbo : OUT apb_slv_out_type; --! APB slave output signals
46 coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); --! coarse time
47 fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); --! fine TIME
48 LFR_soft_rstn : OUT STD_LOGIC
49 );
40 clk25MHz : IN STD_LOGIC;
41 clk24_576MHz : IN STD_LOGIC;
42 resetn : IN STD_LOGIC;
43 grspw_tick : IN STD_LOGIC;
44 apbi : IN apb_slv_in_type;
45 apbo : OUT apb_slv_out_type;
46 HK_sample : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
47 HK_val : IN STD_LOGIC;
48 HK_sel : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
49 coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
50 fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);
51 LFR_soft_rstn : OUT STD_LOGIC);
50 52 END COMPONENT;
51 53
52 54 COMPONENT lfr_time_management
@@ -99,5 +101,5 PACKAGE lpp_lfr_time_management IS
99 101 END COMPONENT;
100 102
101 103
102 END lpp_lfr_time_management;
104 END lpp_lfr_management;
103 105
@@ -2,11 +2,14 LIBRARY ieee;
2 2 USE ieee.std_logic_1164.ALL;
3 3 USE ieee.numeric_std.ALL;
4 4
5 PACKAGE lpp_lfr_time_management_apbreg_pkg IS
5 PACKAGE lpp_lfr_management_apbreg_pkg IS
6 6
7 CONSTANT ADDR_LFR_TM_CONTROL : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000000";
8 CONSTANT ADDR_LFR_TM_TIME_LOAD : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000001";
9 CONSTANT ADDR_LFR_TM_TIME_COARSE : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000010";
10 CONSTANT ADDR_LFR_TM_TIME_FINE : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000011";
7 CONSTANT ADDR_LFR_MANAGMENT_CONTROL : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000000";
8 CONSTANT ADDR_LFR_MANAGMENT_TIME_LOAD : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000001";
9 CONSTANT ADDR_LFR_MANAGMENT_TIME_COARSE : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000010";
10 CONSTANT ADDR_LFR_MANAGMENT_TIME_FINE : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000011";
11 CONSTANT ADDR_LFR_MANAGMENT_HK_TEMP_0 : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000100";
12 CONSTANT ADDR_LFR_MANAGMENT_HK_TEMP_1 : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000101";
13 CONSTANT ADDR_LFR_MANAGMENT_HK_TEMP_2 : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000110";
11 14
12 END lpp_lfr_time_management_apbreg_pkg;
15 END lpp_lfr_management_apbreg_pkg;
@@ -1,6 +1,6
1 lpp_lfr_time_management.vhd
2 lpp_lfr_time_management_apbreg_pkg.vhd
3 apb_lfr_time_management.vhd
1 lpp_lfr_management.vhd
2 lpp_lfr_management_apbreg_pkg.vhd
3 apb_lfr_management.vhd
4 4 lfr_time_management.vhd
5 5 fine_time_counter.vhd
6 6 coarse_time_counter.vhd
@@ -39,7 +39,6 USE lpp.lpp_ad_conv.ALL;
39 39 USE lpp.lpp_lfr_pkg.ALL;
40 40 USE lpp.iir_filter.ALL;
41 41 USE lpp.general_purpose.ALL;
42 USE lpp.lpp_lfr_time_management.ALL;
43 42 USE lpp.lpp_leon3_soc_pkg.ALL;
44 43 LIBRARY iap;
45 44 USE iap.memctrl.all;
@@ -39,7 +39,6 USE lpp.lpp_ad_conv.ALL;
39 39 USE lpp.lpp_lfr_pkg.ALL;
40 40 USE lpp.iir_filter.ALL;
41 41 USE lpp.general_purpose.ALL;
42 USE lpp.lpp_lfr_time_management.ALL;
43 42 USE lpp.lpp_leon3_soc_pkg.ALL;
44 43
45 44 ENTITY leon3ft_soc IS
@@ -485,4 +484,4 BEGIN
485 484
486 485
487 486
488 END Behavioral;
487 END Behavioral; No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now