##// END OF EJS Templates
Update arbitration in front of FFT based on falling edge of fft_ready and sample_load
pellion -
r386:100ad6ccce4d (MINI-LFR) WFP_MS-0-1-21 JC
parent child
Show More
@@ -428,7 +428,7 BEGIN -- beh
428 pirq_ms => 6,
428 pirq_ms => 6,
429 pirq_wfp => 14,
429 pirq_wfp => 14,
430 hindex => 2,
430 hindex => 2,
431 top_lfr_version => X"000114") -- aa.bb.cc version
431 top_lfr_version => X"000115") -- aa.bb.cc version
432 PORT MAP (
432 PORT MAP (
433 clk => clk_25,
433 clk => clk_25,
434 rstn => reset,
434 rstn => reset,
@@ -234,7 +234,7 ARCHITECTURE Behavioral OF lpp_lfr_ms IS
234 SIGNAL status_component_fifo_0_end : STD_LOGIC;
234 SIGNAL status_component_fifo_0_end : STD_LOGIC;
235 SIGNAL status_component_fifo_1_end : STD_LOGIC;
235 SIGNAL status_component_fifo_1_end : STD_LOGIC;
236 -----------------------------------------------------------------------------
236 -----------------------------------------------------------------------------
237 SIGNAL fft_ongoing_counter : STD_LOGIC_VECTOR(1 DOWNTO 0);
237 SIGNAL fft_ongoing_counter : STD_LOGIC;--_VECTOR(1 DOWNTO 0);
238
238
239 SIGNAL fft_ready_reg : STD_LOGIC;
239 SIGNAL fft_ready_reg : STD_LOGIC;
240 SIGNAL fft_ready_rising_down : STD_LOGIC;
240 SIGNAL fft_ready_rising_down : STD_LOGIC;
@@ -310,8 +310,16 BEGIN
310 rdata => sample_f0_B_rdata,
310 rdata => sample_f0_B_rdata,
311 empty => sample_f0_B_empty,
311 empty => sample_f0_B_empty,
312 full => sample_f0_B_full,
312 full => sample_f0_B_full,
313 almost_full => OPEN);
313 almost_full => OPEN);
314
314
315 -----------------------------------------------------------------------------
316 -- sample_f1_wen in
317 -- sample_f1_wdata in
318 -- sample_f1_full OUT
319
320
321
322
315 lppFIFOxN_f1 : lppFIFOxN
323 lppFIFOxN_f1 : lppFIFOxN
316 GENERIC MAP (
324 GENERIC MAP (
317 tech => 0,
325 tech => 0,
@@ -351,6 +359,8 BEGIN
351 END IF;
359 END IF;
352 END PROCESS;
360 END PROCESS;
353
361
362 -----------------------------------------------------------------------------
363
354
364
355 lppFIFOxN_f2 : lppFIFOxN
365 lppFIFOxN_f2 : lppFIFOxN
356 GENERIC MAP (
366 GENERIC MAP (
@@ -481,7 +491,7 BEGIN
481 -- FSM LOAD FFT
491 -- FSM LOAD FFT
482 -----------------------------------------------------------------------------
492 -----------------------------------------------------------------------------
483
493
484 sample_ren <= (OTHERS => '1') WHEN fft_ongoing_counter = "10" ELSE
494 sample_ren <= (OTHERS => '1') WHEN fft_ongoing_counter = '1' ELSE
485 sample_ren_s WHEN sample_load = '1' ELSE
495 sample_ren_s WHEN sample_load = '1' ELSE
486 (OTHERS => '1');
496 (OTHERS => '1');
487
497
@@ -557,7 +567,7 BEGIN
557 END IF;
567 END IF;
558 END PROCESS;
568 END PROCESS;
559
569
560 sample_valid <= '0' WHEN fft_ongoing_counter = "10" ELSE sample_valid_r AND sample_load;
570 sample_valid <= '0' WHEN fft_ongoing_counter = '1' ELSE sample_valid_r AND sample_load;
561
571
562 sample_data <= sample_rdata(16*1-1 DOWNTO 16*0) WHEN next_state_fsm_load_FFT = FIFO_1 ELSE
572 sample_data <= sample_rdata(16*1-1 DOWNTO 16*0) WHEN next_state_fsm_load_FFT = FIFO_1 ELSE
563 sample_rdata(16*2-1 DOWNTO 16*1) WHEN next_state_fsm_load_FFT = FIFO_2 ELSE
573 sample_rdata(16*2-1 DOWNTO 16*1) WHEN next_state_fsm_load_FFT = FIFO_2 ELSE
@@ -582,7 +592,7 BEGIN
582 fft_data_valid => fft_data_valid,
592 fft_data_valid => fft_data_valid,
583 fft_ready => fft_ready);
593 fft_ready => fft_ready);
584
594
585 observation_vector_0(11 DOWNTO 0) <= "00" & --11 10
595 observation_vector_0(11 DOWNTO 0) <= "000" & --11 10
586 fft_ongoing_counter & --9 8
596 fft_ongoing_counter & --9 8
587 sample_load_rising_down & --7
597 sample_load_rising_down & --7
588 fft_ready_rising_down & --6
598 fft_ready_rising_down & --6
@@ -603,23 +613,26 BEGIN
603 fft_ready_reg <= '0';
613 fft_ready_reg <= '0';
604 sample_load_reg <= '0';
614 sample_load_reg <= '0';
605
615
606 fft_ongoing_counter <= "00";
616 fft_ongoing_counter <= '0';
607 ELSIF clk'event AND clk = '1' THEN
617 ELSIF clk'event AND clk = '1' THEN
608 fft_ready_reg <= fft_ready;
618 fft_ready_reg <= fft_ready;
609 sample_load_reg <= sample_load;
619 sample_load_reg <= sample_load;
610
620
611 IF fft_ready_rising_down = '1' AND sample_load_rising_down = '0' THEN
621 IF fft_ready_rising_down = '1' AND sample_load_rising_down = '0' THEN
612 CASE fft_ongoing_counter IS
622 fft_ongoing_counter <= '0';
613 WHEN "01" => fft_ongoing_counter <= "00";
623
614 WHEN "10" => fft_ongoing_counter <= "01";
624 -- CASE fft_ongoing_counter IS
615 WHEN OTHERS => NULL;
625 -- WHEN "01" => fft_ongoing_counter <= "00";
616 END CASE;
626 ---- WHEN "10" => fft_ongoing_counter <= "01";
627 -- WHEN OTHERS => NULL;
628 -- END CASE;
617 ELSIF fft_ready_rising_down = '0' AND sample_load_rising_down = '1' THEN
629 ELSIF fft_ready_rising_down = '0' AND sample_load_rising_down = '1' THEN
618 CASE fft_ongoing_counter IS
630 fft_ongoing_counter <= '1';
619 WHEN "00" => fft_ongoing_counter <= "01";
631 -- CASE fft_ongoing_counter IS
620 WHEN "01" => fft_ongoing_counter <= "10";
632 -- WHEN "00" => fft_ongoing_counter <= "01";
621 WHEN OTHERS => NULL;
633 ---- WHEN "01" => fft_ongoing_counter <= "10";
622 END CASE;
634 -- WHEN OTHERS => NULL;
635 -- END CASE;
623 END IF;
636 END IF;
624
637
625 END IF;
638 END IF;
General Comments 0
You need to be logged in to leave comments. Login now