##// END OF EJS Templates
MINI_LFR-WFP_MS-0.1.32.pdb :...
pellion -
r453:8e0c2cb85822 (MINI-LFR) WFP_MS-0-1-32 JC
parent child
Show More
@@ -175,6 +175,9 ARCHITECTURE beh OF MINI_LFR_top IS
175 175 SIGNAL observation_vector_0: STD_LOGIC_VECTOR(11 DOWNTO 0);
176 176 SIGNAL observation_vector_1: STD_LOGIC_VECTOR(11 DOWNTO 0);
177 177 -----------------------------------------------------------------------------
178
179 SIGNAL LFR_soft_rstn : STD_LOGIC;
180 SIGNAL LFR_rstn : STD_LOGIC;
178 181
179 182 BEGIN -- beh
180 183
@@ -323,7 +326,9 BEGIN -- beh
323 326 apbi => apbi_ext,
324 327 apbo => apbo_ext(6),
325 328 coarse_time => coarse_time,
326 fine_time => fine_time);
329 fine_time => fine_time,
330 LFR_soft_rstn => LFR_soft_rstn
331 );
327 332
328 333 -----------------------------------------------------------------------
329 334 --- SpaceWire --------------------------------------------------------
@@ -414,11 +419,14 BEGIN -- beh
414 419 -------------------------------------------------------------------------------
415 420 -- LFR ------------------------------------------------------------------------
416 421 -------------------------------------------------------------------------------
422
423
424 LFR_rstn <= LFR_soft_rstn AND reset;
425
417 426 lpp_lfr_1 : lpp_lfr
418 427 GENERIC MAP (
419 428 Mem_use => use_RAM,
420 429 nb_data_by_buffer_size => 32,
421 -- nb_word_by_buffer_size => 30,
422 430 nb_snapshot_param_size => 32,
423 431 delta_vector_size => 32,
424 432 delta_vector_size_f0_2 => 7, -- log2(96)
@@ -428,10 +436,10 BEGIN -- beh
428 436 pirq_ms => 6,
429 437 pirq_wfp => 14,
430 438 hindex => 2,
431 top_lfr_version => X"00011F") -- aa.bb.cc version
439 top_lfr_version => X"000120") -- aa.bb.cc version
432 440 PORT MAP (
433 441 clk => clk_25,
434 rstn => reset,
442 rstn => LFR_rstn,
435 443 sample_B => sample_s(2 DOWNTO 0),
436 444 sample_E => sample_s(7 DOWNTO 3),
437 445 sample_val => sample_val,
@@ -78,9 +78,9 ARCHITECTURE beh OF cic_lfr_control IS
78 78 READ_INT_2_d1,
79 79
80 80 Wait_step,
81
82 81 INT_0, INT_1, INT_2
83 82 );
83
84 84 SIGNAL STATE_CIC_LFR : STATE_CIC_LFR_TYPE;
85 85 SIGNAL STATE_CIC_LFR_pre : STATE_CIC_LFR_TYPE;
86 86
@@ -50,7 +50,9 ENTITY apb_lfr_time_management IS
50 50 apbo : OUT apb_slv_out_type; --! APB slave output signals
51 51
52 52 coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); --! coarse time
53 fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) --! fine time
53 fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); --! fine TIME
54 ---------------------------------------------------------------------------
55 LFR_soft_rstn : OUT STD_LOGIC
54 56 );
55 57
56 58 END apb_lfr_time_management;
@@ -69,6 +71,7 ARCHITECTURE Behavioral OF apb_lfr_time_
69 71 coarse_time_load : STD_LOGIC_VECTOR(30 DOWNTO 0);
70 72 coarse_time : STD_LOGIC_VECTOR(31 DOWNTO 0);
71 73 fine_time : STD_LOGIC_VECTOR(15 DOWNTO 0);
74 LFR_soft_reset : STD_LOGIC;
72 75 END RECORD;
73 76 SIGNAL r : apb_lfr_time_management_Reg;
74 77
@@ -108,6 +111,8 ARCHITECTURE Behavioral OF apb_lfr_time_
108 111
109 112 BEGIN
110 113
114 LFR_soft_rstn <= NOT r.LFR_soft_reset;
115
111 116 PROCESS(resetn, clk25MHz)
112 117 BEGIN
113 118
@@ -116,6 +121,8 BEGIN
116 121 r.coarse_time_load <= (OTHERS => '0');
117 122 r.soft_reset <= '0';
118 123 r.ctrl <= '0';
124 r.LFR_soft_reset <= '1';
125
119 126 force_tick <= '0';
120 127 previous_force_tick <= '0';
121 128 soft_tick <= '0';
@@ -145,8 +152,9 BEGIN
145 152 IF (apbi.psel(pindex) AND apbi.penable AND apbi.pwrite) = '1' THEN
146 153 CASE apbi.paddr(7 DOWNTO 2) IS
147 154 WHEN "000000" =>
148 r.ctrl <= apbi.pwdata(0);
149 r.soft_reset <= apbi.pwdata(1);
155 r.ctrl <= apbi.pwdata(0);
156 r.soft_reset <= apbi.pwdata(1);
157 r.LFR_soft_reset <= apbi.pwdata(2);
150 158 WHEN "000001" =>
151 159 r.coarse_time_load <= apbi.pwdata(30 DOWNTO 0);
152 160 coarsetime_reg_updated <= '1';
@@ -168,7 +176,8 BEGIN
168 176 WHEN "000000" =>
169 177 Rdata(0) <= r.ctrl;
170 178 Rdata(1) <= r.soft_reset;
171 Rdata(31 DOWNTO 1) <= (others => '0');
179 Rdata(2) <= r.LFR_soft_reset;
180 Rdata(31 DOWNTO 3) <= (others => '0');
172 181 WHEN "000001" =>
173 182 Rdata(30 DOWNTO 0) <= r.coarse_time_load(30 DOWNTO 0);
174 183 WHEN "000010" =>
@@ -44,7 +44,8 PACKAGE lpp_lfr_time_management IS
44 44 apbi : IN apb_slv_in_type; --! APB slave input signals
45 45 apbo : OUT apb_slv_out_type; --! APB slave output signals
46 46 coarse_time : OUT STD_LOGIC_VECTOR(31 DOWNTO 0); --! coarse time
47 fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) --! fine time
47 fine_time : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); --! fine TIME
48 LFR_soft_rstn : OUT STD_LOGIC
48 49 );
49 50 END COMPONENT;
50 51
@@ -181,7 +181,7 ARCHITECTURE beh OF lpp_lfr IS
181 181 SIGNAL burst_f1 : STD_LOGIC;
182 182 SIGNAL burst_f2 : STD_LOGIC;
183 183
184 SIGNAL run : STD_LOGIC;
184 --SIGNAL run : STD_LOGIC;
185 185 SIGNAL start_date : STD_LOGIC_VECTOR(30 DOWNTO 0);
186 186
187 187 -----------------------------------------------------------------------------
@@ -255,7 +255,7 ARCHITECTURE beh OF lpp_lfr IS
255 255 SIGNAL data_ms_done : STD_LOGIC;
256 256 SIGNAL dma_ms_ongoing : STD_LOGIC;
257 257
258 SIGNAL run_ms : STD_LOGIC;
258 -- SIGNAL run_ms : STD_LOGIC;
259 259 SIGNAL ms_softandhard_rstn : STD_LOGIC;
260 260
261 261 SIGNAL matrix_time_f0 : STD_LOGIC_VECTOR(47 DOWNTO 0);
@@ -282,7 +282,7 ARCHITECTURE beh OF lpp_lfr IS
282 282 SIGNAL dma_grant_error : STD_LOGIC;
283 283
284 284 -----------------------------------------------------------------------------
285 SIGNAL run_dma : STD_LOGIC;
285 -- SIGNAL run_dma : STD_LOGIC;
286 286 BEGIN
287 287
288 288 sample_s(4 DOWNTO 0) <= sample_E(4 DOWNTO 0);
@@ -335,7 +335,7 BEGIN
335 335 apbi => apbi,
336 336 apbo => apbo,
337 337
338 run_ms => run_ms,
338 run_ms => OPEN,--run_ms,
339 339
340 340 ready_matrix_f0 => ready_matrix_f0,
341 341 ready_matrix_f1 => ready_matrix_f1,
@@ -383,7 +383,7 BEGIN
383 383 burst_f0 => burst_f0,
384 384 burst_f1 => burst_f1,
385 385 burst_f2 => burst_f2,
386 run => run,
386 run => OPEN, --run,
387 387 start_date => start_date,
388 388 -- debug_signal => debug_signal,
389 389 wfp_status_buffer_ready => wfp_status_buffer_ready,-- TODO
@@ -410,7 +410,7 BEGIN
410 410 clk => clk,
411 411 rstn => rstn,
412 412
413 reg_run => run,
413 reg_run => '1',--run,
414 414 reg_start_date => start_date,
415 415 reg_delta_snapshot => delta_snapshot,
416 416 reg_delta_f0 => delta_f0,
@@ -481,7 +481,7 BEGIN
481 481
482 482 -------------------------------------------------------------------------------
483 483
484 ms_softandhard_rstn <= rstn AND run_ms AND run;
484 --ms_softandhard_rstn <= rstn AND run_ms AND run;
485 485
486 486 -----------------------------------------------------------------------------
487 487 lpp_lfr_ms_1 : lpp_lfr_ms
@@ -492,8 +492,10 BEGIN
492 492 --rstn => ms_softandhard_rstn, --rstn,
493 493 rstn => rstn,
494 494
495 run => run_ms,
495 run => '1',--run_ms,
496 496
497 start_date => start_date,
498
497 499 coarse_time => coarse_time,
498 500 fine_time => fine_time,
499 501
@@ -539,7 +541,7 BEGIN
539 541 matrix_time_f2 => matrix_time_f2);
540 542
541 543 -----------------------------------------------------------------------------
542 run_dma <= run_ms OR run;
544 --run_dma <= run_ms OR run;
543 545
544 546 DMA_SubSystem_1 : DMA_SubSystem
545 547 GENERIC MAP (
@@ -547,7 +549,7 BEGIN
547 549 PORT MAP (
548 550 clk => clk,
549 551 rstn => rstn,
550 run => run_dma,
552 run => '1',--run_dma,
551 553 ahbi => ahbi,
552 554 ahbo => ahbo,
553 555
@@ -381,7 +381,7 BEGIN -- beh
381 381 reg_wp.delta_f2 <= (OTHERS => '0');
382 382 reg_wp.nb_data_by_buffer <= (OTHERS => '0');
383 383 reg_wp.nb_snapshot_param <= (OTHERS => '0');
384 reg_wp.start_date <= (OTHERS => '0');
384 reg_wp.start_date <= (OTHERS => '1');
385 385
386 386 reg_wp.status_ready_buffer_f <= (OTHERS => '0');
387 387 reg_wp.length_buffer <= (OTHERS => '0');
@@ -692,7 +692,7 BEGIN -- beh
692 692 clk => HCLK,
693 693 rstn => HRESETn,
694 694
695 run => reg_sp.config_ms_run,
695 run => '1',--reg_sp.config_ms_run,
696 696
697 697 reg0_status_ready_matrix => reg_sp.status_ready_matrix_f0_0,
698 698 reg0_ready_matrix => reg0_ready_matrix_f0,
@@ -714,7 +714,7 BEGIN -- beh
714 714 clk => HCLK,
715 715 rstn => HRESETn,
716 716
717 run => reg_sp.config_ms_run,
717 run => '1',--reg_sp.config_ms_run,
718 718
719 719 reg0_status_ready_matrix => reg_sp.status_ready_matrix_f1_0,
720 720 reg0_ready_matrix => reg0_ready_matrix_f1,
@@ -736,7 +736,7 BEGIN -- beh
736 736 clk => HCLK,
737 737 rstn => HRESETn,
738 738
739 run => reg_sp.config_ms_run,
739 run => '1',--reg_sp.config_ms_run,
740 740
741 741 reg0_status_ready_matrix => reg_sp.status_ready_matrix_f2_0,
742 742 reg0_ready_matrix => reg0_ready_matrix_f2,
@@ -760,7 +760,7 BEGIN -- beh
760 760 clk => HCLK,
761 761 rstn => HRESETn,
762 762
763 run => reg_wp.run,
763 run => '1',--reg_wp.run,
764 764
765 765 reg0_status_ready_matrix => reg_wp.status_ready_buffer_f(2*I),
766 766 reg0_ready_matrix => reg_ready_buffer_f(2*I),
@@ -1,5 +1,6
1 1 LIBRARY ieee;
2 2 USE ieee.std_logic_1164.ALL;
3 USE ieee.numeric_std.ALL;
3 4
4 5
5 6 LIBRARY lpp;
@@ -26,6 +27,7 ENTITY lpp_lfr_ms IS
26 27 ---------------------------------------------------------------------------
27 28 -- DATA INPUT
28 29 ---------------------------------------------------------------------------
30 start_date : IN STD_LOGIC_VECTOR(30 DOWNTO 0);
29 31 -- TIME
30 32 coarse_time : IN STD_LOGIC_VECTOR(31 DOWNTO 0); -- todo
31 33 fine_time : IN STD_LOGIC_VECTOR(15 DOWNTO 0); -- todo
@@ -253,9 +255,37 ARCHITECTURE Behavioral OF lpp_lfr_ms IS
253 255 SIGNAL sample_f1_empty_head_in : STD_LOGIC;
254 256
255 257 SIGNAL sample_f1_wdata_head : STD_LOGIC_VECTOR((5*16)-1 DOWNTO 0);
258 -----------------------------------------------------------------------------
259 SIGNAL sample_f0_wen_s : STD_LOGIC_VECTOR(4 DOWNTO 0);
260 SIGNAL sample_f1_wen_s : STD_LOGIC_VECTOR(4 DOWNTO 0);
261 SIGNAL sample_f2_wen_s : STD_LOGIC_VECTOR(4 DOWNTO 0);
262 SIGNAL ongoing : STD_LOGIC;
256 263
257 264 BEGIN
258 265
266 PROCESS (clk, rstn)
267 BEGIN -- PROCESS
268 IF rstn = '0' THEN -- asynchronous reset (active low)
269 sample_f0_wen_s <= (OTHERS => '1');
270 sample_f1_wen_s <= (OTHERS => '1');
271 sample_f2_wen_s <= (OTHERS => '1');
272 ongoing <= '0';
273 ELSIF clk'event AND clk = '1' THEN -- rising clock edge
274 IF ongoing = '1' THEN
275 sample_f0_wen_s <= sample_f0_wen;
276 sample_f1_wen_s <= sample_f1_wen;
277 sample_f2_wen_s <= sample_f2_wen;
278 ELSE
279 IF start_date = coarse_time(30 DOWNTO 0) THEN
280 ongoing <= '1';
281 END IF;
282 sample_f0_wen_s <= (OTHERS => '1');
283 sample_f1_wen_s <= (OTHERS => '1');
284 sample_f2_wen_s <= (OTHERS => '1');
285 END IF;
286 END IF;
287 END PROCESS;
288
259 289
260 290 error_input_fifo_write <= error_wen_f2 & error_wen_f1 & error_wen_f0;
261 291
@@ -265,7 +295,7 BEGIN
265 295 clk => clk,
266 296 rstn => rstn,
267 297
268 sample_wen => sample_f0_wen,
298 sample_wen => sample_f0_wen_s,
269 299
270 300 fifo_A_empty => sample_f0_A_empty,
271 301 fifo_A_full => sample_f0_A_full,
@@ -332,7 +362,7 BEGIN
332 362 -- sample_f1_wdata in
333 363 -- sample_f1_full OUT
334 364
335 sample_f1_wen_head_in <= '0' WHEN sample_f1_wen = "00000" ELSE '1';
365 sample_f1_wen_head_in <= '0' WHEN sample_f1_wen_s = "00000" ELSE '1';
336 366 sample_f1_full_head_in <= '0' WHEN sample_f1_full = "00000" ELSE '1';
337 367 sample_f1_empty_head_in <= '1' WHEN sample_f1_empty = "11111" ELSE '0';
338 368
@@ -374,7 +404,7 BEGIN
374 404 almost_full => sample_f1_almost_full);
375 405
376 406
377 one_sample_f1_wen <= '0' WHEN sample_f1_wen = "11111" ELSE '1';
407 one_sample_f1_wen <= '0' WHEN sample_f1_wen_s = "11111" ELSE '1';
378 408
379 409 PROCESS (clk, rstn)
380 410 BEGIN -- PROCESS
@@ -417,7 +447,7 BEGIN
417 447 almost_full => OPEN);
418 448
419 449
420 one_sample_f2_wen <= '0' WHEN sample_f2_wen = "11111" ELSE '1';
450 one_sample_f2_wen <= '0' WHEN sample_f2_wen_s = "11111" ELSE '1';
421 451
422 452 PROCESS (clk, rstn)
423 453 BEGIN -- PROCESS
@@ -74,6 +74,7 PACKAGE lpp_lfr_pkg IS
74 74 clk : IN STD_LOGIC;
75 75 rstn : IN STD_LOGIC;
76 76 run : IN STD_LOGIC;
77 start_date : IN STD_LOGIC_VECTOR(30 DOWNTO 0);
77 78 coarse_time : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
78 79 fine_time : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
79 80 sample_f0_wen : IN STD_LOGIC_VECTOR(4 DOWNTO 0);
General Comments 0
You need to be logged in to leave comments. Login now