@@ -391,7 +391,7 BEGIN -- beh | |||
|
391 | 391 | pirq_ms => 6, |
|
392 | 392 | pirq_wfp => 14, |
|
393 | 393 | hindex => 2, |
|
394 |
top_lfr_version => X"01013 |
|
|
394 | top_lfr_version => X"01013C") -- aa.bb.cc version | |
|
395 | 395 | -- AA : BOARD NUMBER |
|
396 | 396 | -- 0 => MINI_LFR |
|
397 | 397 | -- 1 => EM |
@@ -151,6 +151,9 ARCHITECTURE Behavioral OF apb_lfr_manag | |||
|
151 | 151 | SIGNAL DAC_CFG : STD_LOGIC_VECTOR(3 DOWNTO 0); |
|
152 | 152 | SIGNAL DAC_CAL_EN_s : STD_LOGIC; |
|
153 | 153 | |
|
154 | SIGNAL HK_debug_mode : STD_LOGIC; | |
|
155 | SIGNAL HK_sel_debug : STD_LOGIC_VECTOR(1 DOWNTO 0); | |
|
156 | ||
|
154 | 157 | BEGIN |
|
155 | 158 | |
|
156 | 159 | LFR_soft_rstn <= NOT r.LFR_soft_reset; |
@@ -214,7 +217,9 BEGIN | |||
|
214 | 217 | Rdata(0) <= r.ctrl; |
|
215 | 218 | Rdata(1) <= r.soft_reset; |
|
216 | 219 | Rdata(2) <= r.LFR_soft_reset; |
|
217 | Rdata(31 DOWNTO 3) <= (OTHERS => '0'); | |
|
220 | Rdata(3) <= HK_debug_mode; | |
|
221 | Rdata(5 DOWNTO 4) <= HK_sel_debug; | |
|
222 | Rdata(31 DOWNTO 6) <= (OTHERS => '0'); | |
|
218 | 223 | WHEN ADDR_LFR_MANAGMENT_TIME_LOAD => |
|
219 | 224 | Rdata(30 DOWNTO 0) <= r.coarse_time_load(30 DOWNTO 0); |
|
220 | 225 | WHEN ADDR_LFR_MANAGMENT_TIME_COARSE => |
@@ -260,6 +265,8 BEGIN | |||
|
260 | 265 | r.ctrl <= apbi.pwdata(0); |
|
261 | 266 | r.soft_reset <= apbi.pwdata(1); |
|
262 | 267 | r.LFR_soft_reset <= apbi.pwdata(2); |
|
268 | HK_debug_mode <= apbi.pwdata(3); | |
|
269 | HK_sel_debug <= apbi.pwdata(5 DOWNTO 4); | |
|
263 | 270 | WHEN ADDR_LFR_MANAGMENT_TIME_LOAD => |
|
264 | 271 | r.coarse_time_load <= apbi.pwdata(30 DOWNTO 0); |
|
265 | 272 | coarsetime_reg_updated <= '1'; |
@@ -440,7 +447,6 BEGIN | |||
|
440 | 447 | -- for 14, the update frequency is |
|
441 | 448 | -- 4Hz and update for each |
|
442 | 449 | -- HK is 1.33Hz |
|
443 | ||
|
444 | 450 | BEGIN -- PROCESS |
|
445 | 451 | IF resetn = '0' THEN -- asynchronous reset (active low) |
|
446 | 452 | |
@@ -458,9 +464,27 BEGIN | |||
|
458 | 464 | IF previous_fine_time_bit = NOT(fine_time_s(BIT_FREQUENCY_UPDATE)) THEN |
|
459 | 465 | previous_fine_time_bit <= fine_time_s(BIT_FREQUENCY_UPDATE); |
|
460 | 466 | CASE HK_sel_s IS |
|
461 | WHEN "00" => r.HK_temp_0 <= HK_sample; HK_sel_s <= "01"; | |
|
462 |
|
|
|
463 | WHEN "10" => r.HK_temp_2 <= HK_sample; HK_sel_s <= "00"; | |
|
467 | WHEN "00" => | |
|
468 | r.HK_temp_0 <= HK_sample; | |
|
469 | IF HK_debug_mode = '1' THEN | |
|
470 | HK_sel_s <= HK_sel_debug; | |
|
471 | ELSE | |
|
472 | HK_sel_s <= "01"; | |
|
473 | END IF; | |
|
474 | WHEN "01" => | |
|
475 | r.HK_temp_1 <= HK_sample; | |
|
476 | IF HK_debug_mode = '1' THEN | |
|
477 | HK_sel_s <= HK_sel_debug; | |
|
478 | ELSE | |
|
479 | HK_sel_s <= "10"; | |
|
480 | END IF; | |
|
481 | WHEN "10" => | |
|
482 | r.HK_temp_2 <= HK_sample; | |
|
483 | IF HK_debug_mode = '1' THEN | |
|
484 | HK_sel_s <= HK_sel_debug; | |
|
485 | ELSE | |
|
486 | HK_sel_s <= "00"; | |
|
487 | END IF; | |
|
464 | 488 | WHEN OTHERS => NULL; |
|
465 | 489 | END CASE; |
|
466 | 490 | END IF; |
@@ -504,4 +528,4 BEGIN | |||
|
504 | 528 | ); |
|
505 | 529 | |
|
506 | 530 | DAC_CAL_EN <= DAC_CAL_EN_s; |
|
507 | END Behavioral; No newline at end of file | |
|
531 | END Behavioral; |
General Comments 0
You need to be logged in to leave comments.
Login now