@@ -266,11 +266,11 BEGIN | |||
|
266 | 266 | |
|
267 | 267 | tick => new_timecode, |
|
268 | 268 | new_coarsetime => new_coarsetime, |
|
269 |
coarsetime_reg => coarsetime_reg(3 |
|
|
269 | coarsetime_reg => coarsetime_reg(31 DOWNTO 0), | |
|
270 | 270 | |
|
271 | 271 | fine_time => fine_time_49, |
|
272 | 272 | fine_time_new => fine_time_new_49, |
|
273 | 273 | coarse_time => coarse_time_49, |
|
274 | 274 | coarse_time_new => coarse_time_new_49); |
|
275 | 275 | |
|
276 | END Behavioral; No newline at end of file | |
|
276 | END Behavioral; |
@@ -15,7 +15,7 ENTITY coarse_time_counter IS | |||
|
15 | 15 | |
|
16 | 16 | tick : IN STD_LOGIC; |
|
17 | 17 | set_TCU : IN STD_LOGIC; |
|
18 |
set_TCU_value : IN STD_LOGIC_VECTOR(3 |
|
|
18 | set_TCU_value : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
19 | 19 | CT_add1 : IN STD_LOGIC; |
|
20 | 20 | fsm_desync : IN STD_LOGIC; |
|
21 | 21 | FT_max : IN STD_LOGIC; |
@@ -34,6 +34,9 ARCHITECTURE beh OF coarse_time_counter | |||
|
34 | 34 | SIGNAL coarse_time_new_counter : STD_LOGIC; |
|
35 | 35 | SIGNAL coarse_time_31 : STD_LOGIC; |
|
36 | 36 | SIGNAL coarse_time_31_reg : STD_LOGIC; |
|
37 | ||
|
38 | SIGNAL set_synchronized : STD_LOGIC; | |
|
39 | SIGNAL set_synchronized_value : STD_LOGIC_VECTOR(5 DOWNTO 0); | |
|
37 | 40 | |
|
38 | 41 | --CONSTANT NB_SECOND_DESYNC : INTEGER := 4; -- TODO : 60 |
|
39 | 42 | BEGIN -- beh |
@@ -48,12 +51,17 BEGIN -- beh | |||
|
48 | 51 | RST_VALUE => (OTHERS => '0'), |
|
49 | 52 | MAX_VALUE => "111" & X"FFFFFFF" , |
|
50 | 53 | set => set_TCU, |
|
51 | set_value => set_TCU_value, | |
|
54 | set_value => set_TCU_value(30 DOWNTO 0), | |
|
52 | 55 | add1 => CT_add1, |
|
53 | 56 | counter => coarse_time(30 DOWNTO 0)); |
|
54 | 57 | |
|
55 | 58 | |
|
56 | 59 | add1_bit31 <= '1' WHEN fsm_desync = '1' AND FT_max = '1' ELSE '0'; |
|
60 | ||
|
61 | ||
|
62 | set_synchronized <= (tick AND (NOT coarse_time_31)) OR (coarse_time_31 AND set_TCU); | |
|
63 | set_synchronized_value <= STD_LOGIC_VECTOR(to_unsigned(NB_SECOND_DESYNC, 6)) WHEN (set_TCU AND set_TCU_value(31)) = '1' ELSE | |
|
64 | (OTHERS => '0'); | |
|
57 | 65 | |
|
58 | 66 | counter_2 : general_counter |
|
59 | 67 | GENERIC MAP ( |
@@ -64,8 +72,8 BEGIN -- beh | |||
|
64 | 72 | rstn => rstn, |
|
65 | 73 | RST_VALUE => STD_LOGIC_VECTOR(to_unsigned(NB_SECOND_DESYNC, 6)), |
|
66 | 74 | MAX_VALUE => STD_LOGIC_VECTOR(to_unsigned(NB_SECOND_DESYNC, 6)), |
|
67 |
set => |
|
|
68 | set_value => (OTHERS => '0'), | |
|
75 | set => set_synchronized, | |
|
76 | set_value => set_synchronized_value, | |
|
69 | 77 | add1 => add1_bit31, |
|
70 | 78 | counter => nb_second_counter); |
|
71 | 79 |
@@ -34,7 +34,7 ENTITY lfr_time_management IS | |||
|
34 | 34 | tick : IN STD_LOGIC; -- transition signal information |
|
35 | 35 | |
|
36 | 36 | new_coarsetime : IN STD_LOGIC; -- transition signal information |
|
37 |
coarsetime_reg : IN STD_LOGIC_VECTOR(3 |
|
|
37 | coarsetime_reg : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
38 | 38 | |
|
39 | 39 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); |
|
40 | 40 | fine_time_new : OUT STD_LOGIC; |
@@ -57,7 +57,7 PACKAGE lpp_lfr_time_management IS | |||
|
57 | 57 | rstn : IN STD_LOGIC; |
|
58 | 58 | tick : IN STD_LOGIC; |
|
59 | 59 | new_coarsetime : IN STD_LOGIC; |
|
60 |
coarsetime_reg : IN STD_LOGIC_VECTOR(3 |
|
|
60 | coarsetime_reg : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
61 | 61 | fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); |
|
62 | 62 | fine_time_new : OUT STD_LOGIC; |
|
63 | 63 | coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); |
@@ -72,7 +72,7 PACKAGE lpp_lfr_time_management IS | |||
|
72 | 72 | rstn : IN STD_LOGIC; |
|
73 | 73 | tick : IN STD_LOGIC; |
|
74 | 74 | set_TCU : IN STD_LOGIC; |
|
75 |
set_TCU_value : IN STD_LOGIC_VECTOR(3 |
|
|
75 | set_TCU_value : IN STD_LOGIC_VECTOR(31 DOWNTO 0); | |
|
76 | 76 | CT_add1 : IN STD_LOGIC; |
|
77 | 77 | fsm_desync : IN STD_LOGIC; |
|
78 | 78 | FT_max : IN STD_LOGIC; |
General Comments 0
You need to be logged in to leave comments.
Login now