@@ -42,7 +42,7 USE lpp.lpp_lfr_pkg.ALL; -- contains lp | |||||
42 | USE lpp.lpp_top_lfr_pkg.ALL; -- contains top_wf_picker |
|
42 | USE lpp.lpp_top_lfr_pkg.ALL; -- contains top_wf_picker | |
43 | USE lpp.iir_filter.ALL; |
|
43 | USE lpp.iir_filter.ALL; | |
44 | USE lpp.general_purpose.ALL; |
|
44 | USE lpp.general_purpose.ALL; | |
45 |
USE lpp.lpp_lfr_ |
|
45 | USE lpp.lpp_lfr_management.ALL; | |
46 | USE lpp.lpp_leon3_soc_pkg.ALL; |
|
46 | USE lpp.lpp_leon3_soc_pkg.ALL; | |
47 |
|
47 | |||
48 | ENTITY LFR_em IS |
|
48 | ENTITY LFR_em IS | |
@@ -250,7 +250,7 BEGIN -- beh | |||||
250 | ------------------------------------------------------------------------------- |
|
250 | ------------------------------------------------------------------------------- | |
251 | -- APB_LFR_TIME_MANAGEMENT ---------------------------------------------------- |
|
251 | -- APB_LFR_TIME_MANAGEMENT ---------------------------------------------------- | |
252 | ------------------------------------------------------------------------------- |
|
252 | ------------------------------------------------------------------------------- | |
253 |
apb_lfr_ |
|
253 | apb_lfr_management_1 : apb_lfr_management | |
254 | GENERIC MAP ( |
|
254 | GENERIC MAP ( | |
255 | pindex => 6, |
|
255 | pindex => 6, | |
256 | paddr => 6, |
|
256 | paddr => 6, | |
@@ -264,6 +264,11 BEGIN -- beh | |||||
264 | grspw_tick => swno.tickout, |
|
264 | grspw_tick => swno.tickout, | |
265 | apbi => apbi_ext, |
|
265 | apbi => apbi_ext, | |
266 | apbo => apbo_ext(6), |
|
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 | fine_time => fine_time, |
|
273 | fine_time => fine_time, | |
269 | LFR_soft_rstn => LFR_soft_rstn |
|
274 | LFR_soft_rstn => LFR_soft_rstn | |
@@ -374,7 +379,7 BEGIN -- beh | |||||
374 | pirq_ms => 6, |
|
379 | pirq_ms => 6, | |
375 | pirq_wfp => 14, |
|
380 | pirq_wfp => 14, | |
376 | hindex => 2, |
|
381 | hindex => 2, | |
377 |
top_lfr_version => X"0101 |
|
382 | top_lfr_version => X"010131") -- aa.bb.cc version | |
378 | -- AA : BOARD NUMBER |
|
383 | -- AA : BOARD NUMBER | |
379 | -- 0 => MINI_LFR |
|
384 | -- 0 => MINI_LFR | |
380 | -- 1 => EM |
|
385 | -- 1 => EM | |
@@ -435,20 +440,4 BEGIN -- beh | |||||
435 | ----------------------------------------------------------------------------- |
|
440 | ----------------------------------------------------------------------------- | |
436 | ADC_OEB_bar_HK <= ADC_OEB_bar_CH_s(8); |
|
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 | END beh; |
|
443 | END beh; |
@@ -42,7 +42,7 USE lpp.lpp_lfr_pkg.ALL; -- contains lp | |||||
42 | USE lpp.lpp_top_lfr_pkg.ALL; -- contains top_wf_picker |
|
42 | USE lpp.lpp_top_lfr_pkg.ALL; -- contains top_wf_picker | |
43 | USE lpp.iir_filter.ALL; |
|
43 | USE lpp.iir_filter.ALL; | |
44 | USE lpp.general_purpose.ALL; |
|
44 | USE lpp.general_purpose.ALL; | |
45 |
USE lpp.lpp_lfr_ |
|
45 | USE lpp.lpp_lfr_management.ALL; | |
46 | USE lpp.lpp_leon3_soc_pkg.ALL; |
|
46 | USE lpp.lpp_leon3_soc_pkg.ALL; | |
47 |
|
47 | |||
48 | ENTITY MINI_LFR_top IS |
|
48 | ENTITY MINI_LFR_top IS | |
@@ -385,9 +385,9 BEGIN -- beh | |||||
385 |
|
385 | |||
386 | SRAM_CE <= SRAM_CE_s(0); |
|
386 | SRAM_CE <= SRAM_CE_s(0); | |
387 | ------------------------------------------------------------------------------- |
|
387 | ------------------------------------------------------------------------------- | |
388 |
-- APB_LFR_ |
|
388 | -- APB_LFR_MANAGEMENT --------------------------------------------------------- | |
389 | ------------------------------------------------------------------------------- |
|
389 | ------------------------------------------------------------------------------- | |
390 |
apb_lfr_ |
|
390 | apb_lfr_management_1 : apb_lfr_management | |
391 | GENERIC MAP ( |
|
391 | GENERIC MAP ( | |
392 | pindex => 6, |
|
392 | pindex => 6, | |
393 | paddr => 6, |
|
393 | paddr => 6, | |
@@ -401,6 +401,9 BEGIN -- beh | |||||
401 | grspw_tick => swno.tickout, |
|
401 | grspw_tick => swno.tickout, | |
402 | apbi => apbi_ext, |
|
402 | apbi => apbi_ext, | |
403 | apbo => apbo_ext(6), |
|
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 | fine_time => fine_time, |
|
408 | fine_time => fine_time, | |
406 | LFR_soft_rstn => LFR_soft_rstn |
|
409 | LFR_soft_rstn => LFR_soft_rstn | |
@@ -515,7 +518,7 BEGIN -- beh | |||||
515 | pirq_ms => 6, |
|
518 | pirq_ms => 6, | |
516 | pirq_wfp => 14, |
|
519 | pirq_wfp => 14, | |
517 | hindex => 2, |
|
520 | hindex => 2, | |
518 |
top_lfr_version => X"0001 |
|
521 | top_lfr_version => X"000131") -- aa.bb.cc version | |
519 | PORT MAP ( |
|
522 | PORT MAP ( | |
520 | clk => clk_25, |
|
523 | clk => clk_25, | |
521 | rstn => LFR_rstn, |
|
524 | rstn => LFR_rstn, | |
@@ -578,22 +581,6 BEGIN -- beh | |||||
578 | ADC_CLK <= ADC_CLK_sig; |
|
581 | ADC_CLK <= ADC_CLK_sig; | |
579 | ADC_SDO_sig <= ADC_SDO; |
|
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 | sample_hk <= "0001000100010001" WHEN HK_SEL = "00" ELSE |
|
584 | sample_hk <= "0001000100010001" WHEN HK_SEL = "00" ELSE | |
598 | "0010001000100010" WHEN HK_SEL = "10" ELSE |
|
585 | "0010001000100010" WHEN HK_SEL = "10" ELSE | |
599 | "0100010001000100" WHEN HK_SEL = "10" ELSE |
|
586 | "0100010001000100" WHEN HK_SEL = "10" ELSE | |
@@ -727,7 +714,7 BEGIN -- beh | |||||
727 | -- |
|
714 | -- | |
728 | ----------------------------------------------------------------------------- |
|
715 | ----------------------------------------------------------------------------- | |
729 | all_apbo_ext : FOR I IN NB_APB_SLAVE-1+5 DOWNTO 5 GENERATE |
|
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 /= |
|
717 | apbo_ext_not_used : IF I /= 5 AND I /= 6 AND I /= 11 AND I /= 15 GENERATE | |
731 | apbo_ext(I) <= apb_none; |
|
718 | apbo_ext(I) <= apb_none; | |
732 | END GENERATE apbo_ext_not_used; |
|
719 | END GENERATE apbo_ext_not_used; | |
733 | END GENERATE all_apbo_ext; |
|
720 | END GENERATE all_apbo_ext; |
@@ -11,7 +11,7 | |||||
11 | ./dsp/lpp_fft_rtax |
|
11 | ./dsp/lpp_fft_rtax | |
12 | ./lpp_memory |
|
12 | ./lpp_memory | |
13 | ./dsp/lpp_fft |
|
13 | ./dsp/lpp_fft | |
14 |
./lfr_ |
|
14 | ./lfr_management | |
15 | ./lpp_ad_Conv |
|
15 | ./lpp_ad_Conv | |
16 | ./lpp_bootloader |
|
16 | ./lpp_bootloader | |
17 | ./lpp_cna |
|
17 | ./lpp_cna |
@@ -27,11 +27,11 USE grlib.devices.ALL; | |||||
27 | LIBRARY lpp; |
|
27 | LIBRARY lpp; | |
28 | USE lpp.apb_devices_list.ALL; |
|
28 | USE lpp.apb_devices_list.ALL; | |
29 | USE lpp.general_purpose.ALL; |
|
29 | USE lpp.general_purpose.ALL; | |
30 |
USE lpp.lpp_lfr_ |
|
30 | USE lpp.lpp_lfr_management.ALL; | |
31 |
USE lpp.lpp_lfr_ |
|
31 | USE lpp.lpp_lfr_management_apbreg_pkg.ALL; | |
32 |
|
32 | |||
33 |
|
33 | |||
34 |
ENTITY apb_lfr_ |
|
34 | ENTITY apb_lfr_management IS | |
35 |
|
35 | |||
36 | GENERIC( |
|
36 | GENERIC( | |
37 | pindex : INTEGER := 0; --! APB slave index |
|
37 | pindex : INTEGER := 0; --! APB slave index | |
@@ -50,16 +50,20 ENTITY apb_lfr_time_management IS | |||||
50 |
|
50 | |||
51 | apbi : IN apb_slv_in_type; --! APB slave input signals |
|
51 | apbi : IN apb_slv_in_type; --! APB slave input signals | |
52 | apbo : OUT apb_slv_out_type; --! APB slave output signals |
|
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 | coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); --! coarse time |
|
58 | coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); --! coarse time | |
55 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); --! fine TIME |
|
59 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); --! fine TIME | |
56 | --------------------------------------------------------------------------- |
|
60 | --------------------------------------------------------------------------- | |
57 | LFR_soft_rstn : OUT STD_LOGIC |
|
61 | LFR_soft_rstn : OUT STD_LOGIC | |
58 | ); |
|
62 | ); | |
59 |
|
63 | |||
60 |
END apb_lfr_ |
|
64 | END apb_lfr_management; | |
61 |
|
65 | |||
62 |
ARCHITECTURE Behavioral OF apb_lfr_ |
|
66 | ARCHITECTURE Behavioral OF apb_lfr_management IS | |
63 |
|
67 | |||
64 | CONSTANT REVISION : INTEGER := 1; |
|
68 | CONSTANT REVISION : INTEGER := 1; | |
65 | CONSTANT pconfig : apb_config_type := ( |
|
69 | CONSTANT pconfig : apb_config_type := ( | |
@@ -74,6 +78,9 ARCHITECTURE Behavioral OF apb_lfr_time_ | |||||
74 | coarse_time : STD_LOGIC_VECTOR(31 DOWNTO 0); |
|
78 | coarse_time : STD_LOGIC_VECTOR(31 DOWNTO 0); | |
75 | fine_time : STD_LOGIC_VECTOR(15 DOWNTO 0); |
|
79 | fine_time : STD_LOGIC_VECTOR(15 DOWNTO 0); | |
76 | LFR_soft_reset : STD_LOGIC; |
|
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 | END RECORD; |
|
84 | END RECORD; | |
78 | SIGNAL r : apb_lfr_time_management_Reg; |
|
85 | SIGNAL r : apb_lfr_time_management_Reg; | |
79 |
|
86 | |||
@@ -108,6 +115,10 ARCHITECTURE Behavioral OF apb_lfr_time_ | |||||
108 | SIGNAL soft_reset : STD_LOGIC; |
|
115 | SIGNAL soft_reset : STD_LOGIC; | |
109 | SIGNAL soft_reset_sync : STD_LOGIC; |
|
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 | SIGNAL rstn_LFR_TM : STD_LOGIC; |
|
123 | SIGNAL rstn_LFR_TM : STD_LOGIC; | |
113 |
|
124 | |||
@@ -153,11 +164,11 BEGIN | |||||
153 | --APB Write OP |
|
164 | --APB Write OP | |
154 | IF (apbi.psel(pindex) AND apbi.penable AND apbi.pwrite) = '1' THEN |
|
165 | IF (apbi.psel(pindex) AND apbi.penable AND apbi.pwrite) = '1' THEN | |
155 | CASE apbi.paddr(7 DOWNTO 2) IS |
|
166 | CASE apbi.paddr(7 DOWNTO 2) IS | |
156 |
WHEN ADDR_LFR_ |
|
167 | WHEN ADDR_LFR_MANAGMENT_CONTROL => | |
157 | r.ctrl <= apbi.pwdata(0); |
|
168 | r.ctrl <= apbi.pwdata(0); | |
158 | r.soft_reset <= apbi.pwdata(1); |
|
169 | r.soft_reset <= apbi.pwdata(1); | |
159 | r.LFR_soft_reset <= apbi.pwdata(2); |
|
170 | r.LFR_soft_reset <= apbi.pwdata(2); | |
160 |
WHEN ADDR_LFR_ |
|
171 | WHEN ADDR_LFR_MANAGMENT_TIME_LOAD => | |
161 | r.coarse_time_load <= apbi.pwdata(30 DOWNTO 0); |
|
172 | r.coarse_time_load <= apbi.pwdata(30 DOWNTO 0); | |
162 | coarsetime_reg_updated <= '1'; |
|
173 | coarsetime_reg_updated <= '1'; | |
163 | WHEN OTHERS => |
|
174 | WHEN OTHERS => | |
@@ -175,18 +186,27 BEGIN | |||||
175 | --APB READ OP |
|
186 | --APB READ OP | |
176 | IF (apbi.psel(pindex) AND (NOT apbi.pwrite)) = '1' THEN |
|
187 | IF (apbi.psel(pindex) AND (NOT apbi.pwrite)) = '1' THEN | |
177 | CASE apbi.paddr(7 DOWNTO 2) IS |
|
188 | CASE apbi.paddr(7 DOWNTO 2) IS | |
178 |
WHEN ADDR_LFR_ |
|
189 | WHEN ADDR_LFR_MANAGMENT_CONTROL => | |
179 | Rdata(0) <= r.ctrl; |
|
190 | Rdata(0) <= r.ctrl; | |
180 | Rdata(1) <= r.soft_reset; |
|
191 | Rdata(1) <= r.soft_reset; | |
181 | Rdata(2) <= r.LFR_soft_reset; |
|
192 | Rdata(2) <= r.LFR_soft_reset; | |
182 | Rdata(31 DOWNTO 3) <= (others => '0'); |
|
193 | Rdata(31 DOWNTO 3) <= (others => '0'); | |
183 |
WHEN ADDR_LFR_ |
|
194 | WHEN ADDR_LFR_MANAGMENT_TIME_LOAD => | |
184 | Rdata(30 DOWNTO 0) <= r.coarse_time_load(30 DOWNTO 0); |
|
195 | Rdata(30 DOWNTO 0) <= r.coarse_time_load(30 DOWNTO 0); | |
185 |
WHEN ADDR_LFR_ |
|
196 | WHEN ADDR_LFR_MANAGMENT_TIME_COARSE => | |
186 | Rdata(31 DOWNTO 0) <= r.coarse_time(31 DOWNTO 0); |
|
197 | Rdata(31 DOWNTO 0) <= r.coarse_time(31 DOWNTO 0); | |
187 |
WHEN ADDR_LFR_ |
|
198 | WHEN ADDR_LFR_MANAGMENT_TIME_FINE => | |
188 | Rdata(31 DOWNTO 16) <= (OTHERS => '0'); |
|
199 | Rdata(31 DOWNTO 16) <= (OTHERS => '0'); | |
189 | Rdata(15 DOWNTO 0) <= r.fine_time(15 DOWNTO 0); |
|
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 | WHEN OTHERS => |
|
210 | WHEN OTHERS => | |
191 | Rdata(31 DOWNTO 0) <= (others => '0'); |
|
211 | Rdata(31 DOWNTO 0) <= (others => '0'); | |
192 | END CASE; |
|
212 | END CASE; | |
@@ -326,4 +346,35 BEGIN | |||||
326 | coarse_time => coarse_time_49, |
|
346 | coarse_time => coarse_time_49, | |
327 | coarse_time_new => coarse_time_new_49); |
|
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 |
|
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 |
|
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 | USE IEEE.STD_LOGIC_1164.ALL; |
|
21 | USE IEEE.STD_LOGIC_1164.ALL; | |
22 | USE IEEE.NUMERIC_STD.ALL; |
|
22 | USE IEEE.NUMERIC_STD.ALL; | |
23 | LIBRARY lpp; |
|
23 | LIBRARY lpp; | |
24 |
USE lpp.lpp_lfr_ |
|
24 | USE lpp.lpp_lfr_management.ALL; | |
25 |
|
25 | |||
26 | ENTITY lfr_time_management IS |
|
26 | ENTITY lfr_time_management IS | |
27 | GENERIC ( |
|
27 | GENERIC ( |
@@ -24,29 +24,31 USE grlib.amba.ALL; | |||||
24 | USE grlib.stdlib.ALL; |
|
24 | USE grlib.stdlib.ALL; | |
25 | USE grlib.devices.ALL; |
|
25 | USE grlib.devices.ALL; | |
26 |
|
26 | |||
27 |
PACKAGE lpp_lfr_ |
|
27 | PACKAGE lpp_lfr_management IS | |
28 |
|
28 | |||
29 | --*************************** |
|
29 | --*************************** | |
30 |
-- APB_LFR_ |
|
30 | -- APB_LFR_MANAGEMENT | |
31 |
|
31 | |||
32 |
COMPONENT apb_lfr_ |
|
32 | COMPONENT apb_lfr_management | |
33 | GENERIC( |
|
33 | GENERIC ( | |
34 |
pindex |
|
34 | pindex : INTEGER; | |
35 | paddr : INTEGER := 0; --! ADDR field of the APB BAR |
|
35 | paddr : INTEGER; | |
36 | pmask : INTEGER := 16#fff#; --! MASK field of the APB BAR |
|
36 | pmask : INTEGER; | |
37 |
FIRST_DIVISION |
|
37 | FIRST_DIVISION : INTEGER; | |
38 |
NB_SECOND_DESYNC |
|
38 | NB_SECOND_DESYNC : INTEGER); | |
39 | PORT ( |
|
39 | PORT ( | |
40 |
clk25MHz : IN STD_LOGIC; |
|
40 | clk25MHz : IN STD_LOGIC; | |
41 |
clk24_576MHz : IN STD_LOGIC; |
|
41 | clk24_576MHz : IN STD_LOGIC; | |
42 |
resetn : IN STD_LOGIC; |
|
42 | resetn : IN STD_LOGIC; | |
43 | grspw_tick : IN STD_LOGIC; --! grspw signal asserted when a valid time-code is received |
|
43 | grspw_tick : IN STD_LOGIC; | |
44 |
apbi : IN apb_slv_in_type; |
|
44 | apbi : IN apb_slv_in_type; | |
45 |
apbo : OUT apb_slv_out_type; |
|
45 | apbo : OUT apb_slv_out_type; | |
46 |
|
|
46 | HK_sample : IN STD_LOGIC_VECTOR(15 DOWNTO 0); | |
47 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); --! fine TIME |
|
47 | HK_val : IN STD_LOGIC; | |
48 | LFR_soft_rstn : OUT STD_LOGIC |
|
48 | HK_sel : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); | |
49 | ); |
|
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 | END COMPONENT; |
|
52 | END COMPONENT; | |
51 |
|
53 | |||
52 | COMPONENT lfr_time_management |
|
54 | COMPONENT lfr_time_management | |
@@ -99,5 +101,5 PACKAGE lpp_lfr_time_management IS | |||||
99 | END COMPONENT; |
|
101 | END COMPONENT; | |
100 |
|
102 | |||
101 |
|
103 | |||
102 |
END lpp_lfr_ |
|
104 | END lpp_lfr_management; | |
103 |
|
105 |
@@ -2,11 +2,14 LIBRARY ieee; | |||||
2 | USE ieee.std_logic_1164.ALL; |
|
2 | USE ieee.std_logic_1164.ALL; | |
3 | USE ieee.numeric_std.ALL; |
|
3 | USE ieee.numeric_std.ALL; | |
4 |
|
4 | |||
5 |
PACKAGE lpp_lfr_ |
|
5 | PACKAGE lpp_lfr_management_apbreg_pkg IS | |
6 |
|
6 | |||
7 |
CONSTANT ADDR_LFR_ |
|
7 | CONSTANT ADDR_LFR_MANAGMENT_CONTROL : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000000"; | |
8 |
CONSTANT ADDR_LFR_ |
|
8 | CONSTANT ADDR_LFR_MANAGMENT_TIME_LOAD : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000001"; | |
9 |
CONSTANT ADDR_LFR_ |
|
9 | CONSTANT ADDR_LFR_MANAGMENT_TIME_COARSE : STD_LOGIC_VECTOR(7 DOWNTO 2) := "000010"; | |
10 |
CONSTANT ADDR_LFR_ |
|
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_ |
|
15 | END lpp_lfr_management_apbreg_pkg; |
@@ -1,6 +1,6 | |||||
1 |
lpp_lfr_ |
|
1 | lpp_lfr_management.vhd | |
2 |
lpp_lfr_ |
|
2 | lpp_lfr_management_apbreg_pkg.vhd | |
3 |
apb_lfr_ |
|
3 | apb_lfr_management.vhd | |
4 | lfr_time_management.vhd |
|
4 | lfr_time_management.vhd | |
5 | fine_time_counter.vhd |
|
5 | fine_time_counter.vhd | |
6 | coarse_time_counter.vhd |
|
6 | coarse_time_counter.vhd |
@@ -39,7 +39,6 USE lpp.lpp_ad_conv.ALL; | |||||
39 | USE lpp.lpp_lfr_pkg.ALL; |
|
39 | USE lpp.lpp_lfr_pkg.ALL; | |
40 | USE lpp.iir_filter.ALL; |
|
40 | USE lpp.iir_filter.ALL; | |
41 | USE lpp.general_purpose.ALL; |
|
41 | USE lpp.general_purpose.ALL; | |
42 | USE lpp.lpp_lfr_time_management.ALL; |
|
|||
43 | USE lpp.lpp_leon3_soc_pkg.ALL; |
|
42 | USE lpp.lpp_leon3_soc_pkg.ALL; | |
44 | LIBRARY iap; |
|
43 | LIBRARY iap; | |
45 | USE iap.memctrl.all; |
|
44 | USE iap.memctrl.all; |
@@ -39,7 +39,6 USE lpp.lpp_ad_conv.ALL; | |||||
39 | USE lpp.lpp_lfr_pkg.ALL; |
|
39 | USE lpp.lpp_lfr_pkg.ALL; | |
40 | USE lpp.iir_filter.ALL; |
|
40 | USE lpp.iir_filter.ALL; | |
41 | USE lpp.general_purpose.ALL; |
|
41 | USE lpp.general_purpose.ALL; | |
42 | USE lpp.lpp_lfr_time_management.ALL; |
|
|||
43 | USE lpp.lpp_leon3_soc_pkg.ALL; |
|
42 | USE lpp.lpp_leon3_soc_pkg.ALL; | |
44 |
|
43 | |||
45 | ENTITY leon3ft_soc IS |
|
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