@@ -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"00011 |
|
431 | top_lfr_version => X"000114") -- 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,8 +234,13 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 ping_npong : STD_LOGIC; |
|
237 | SIGNAL fft_ongoing_counter : STD_LOGIC_VECTOR(1 DOWNTO 0); | |
|
238 | ||||
|
239 | SIGNAL fft_ready_reg : STD_LOGIC; | |||
|
240 | SIGNAL fft_ready_rising_down : STD_LOGIC; | |||
|
241 | ||||
238 |
|
|
242 | SIGNAL sample_load_reg : STD_LOGIC; | |
|
243 | SIGNAL sample_load_rising_down : STD_LOGIC; | |||
239 |
|
244 | |||
240 | BEGIN |
|
245 | BEGIN | |
241 |
|
246 | |||
@@ -476,7 +481,8 BEGIN | |||||
476 | -- FSM LOAD FFT |
|
481 | -- FSM LOAD FFT | |
477 | ----------------------------------------------------------------------------- |
|
482 | ----------------------------------------------------------------------------- | |
478 |
|
483 | |||
479 | sample_ren <= sample_ren_s WHEN ping_npong = fft_pong AND sample_load = '1' ELSE |
|
484 | sample_ren <= (OTHERS => '1') WHEN fft_ongoing_counter = "10" ELSE | |
|
485 | sample_ren_s WHEN sample_load = '1' ELSE | |||
480 | (OTHERS => '1'); |
|
486 | (OTHERS => '1'); | |
481 |
|
487 | |||
482 | PROCESS (clk, rstn) |
|
488 | PROCESS (clk, rstn) | |
@@ -551,8 +557,7 BEGIN | |||||
551 | END IF; |
|
557 | END IF; | |
552 | END PROCESS; |
|
558 | END PROCESS; | |
553 |
|
559 | |||
554 |
|
|
560 | sample_valid <= '0' WHEN fft_ongoing_counter = "10" ELSE sample_valid_r AND sample_load; | |
555 | sample_valid <= sample_valid_r AND sample_load WHEN ping_npong = fft_pong ELSE '0'; |
|
|||
556 |
|
561 | |||
557 | sample_data <= sample_rdata(16*1-1 DOWNTO 16*0) WHEN next_state_fsm_load_FFT = FIFO_1 ELSE |
|
562 | sample_data <= sample_rdata(16*1-1 DOWNTO 16*0) WHEN next_state_fsm_load_FFT = FIFO_1 ELSE | |
558 | sample_rdata(16*2-1 DOWNTO 16*1) WHEN next_state_fsm_load_FFT = FIFO_2 ELSE |
|
563 | sample_rdata(16*2-1 DOWNTO 16*1) WHEN next_state_fsm_load_FFT = FIFO_2 ELSE | |
@@ -577,9 +582,10 BEGIN | |||||
577 | fft_data_valid => fft_data_valid, |
|
582 | fft_data_valid => fft_data_valid, | |
578 | fft_ready => fft_ready); |
|
583 | fft_ready => fft_ready); | |
579 |
|
584 | |||
580 |
observation_vector_0(11 DOWNTO 0) <= "00 |
|
585 | observation_vector_0(11 DOWNTO 0) <= "00" & --11 10 | |
581 |
|
|
586 | fft_ongoing_counter & --9 8 | |
582 |
|
|
587 | sample_load_rising_down & --7 | |
|
588 | fft_ready_rising_down & --6 | |||
583 | fft_ready & --5 |
|
589 | fft_ready & --5 | |
584 | fft_data_valid & --4 |
|
590 | fft_data_valid & --4 | |
585 | fft_pong & --3 |
|
591 | fft_pong & --3 | |
@@ -588,16 +594,34 BEGIN | |||||
588 | sample_valid; --0 |
|
594 | sample_valid; --0 | |
589 |
|
595 | |||
590 | ----------------------------------------------------------------------------- |
|
596 | ----------------------------------------------------------------------------- | |
|
597 | fft_ready_rising_down <= fft_ready_reg AND NOT fft_ready; | |||
|
598 | sample_load_rising_down <= sample_load_reg AND NOT sample_load; | |||
|
599 | ||||
591 |
|
|
600 | PROCESS (clk, rstn) | |
592 | BEGIN |
|
601 | BEGIN | |
593 | IF rstn = '0' THEN |
|
602 | IF rstn = '0' THEN | |
594 |
|
|
603 | fft_ready_reg <= '0'; | |
595 | sample_load_reg <= '0'; |
|
604 | sample_load_reg <= '0'; | |
|
605 | ||||
|
606 | fft_ongoing_counter <= "00"; | |||
596 | ELSIF clk'event AND clk = '1' THEN |
|
607 | ELSIF clk'event AND clk = '1' THEN | |
|
608 | fft_ready_reg <= fft_ready; | |||
597 | sample_load_reg <= sample_load; |
|
609 | sample_load_reg <= sample_load; | |
598 | IF sample_load_reg = '1' AND sample_load = '0' THEN |
|
610 | ||
599 | ping_npong <= NOT ping_npong; |
|
611 | IF fft_ready_rising_down = '1' AND sample_load_rising_down = '0' THEN | |
|
612 | CASE fft_ongoing_counter IS | |||
|
613 | WHEN "01" => fft_ongoing_counter <= "00"; | |||
|
614 | WHEN "10" => fft_ongoing_counter <= "01"; | |||
|
615 | WHEN OTHERS => NULL; | |||
|
616 | END CASE; | |||
|
617 | ELSIF fft_ready_rising_down = '0' AND sample_load_rising_down = '1' THEN | |||
|
618 | CASE fft_ongoing_counter IS | |||
|
619 | WHEN "00" => fft_ongoing_counter <= "01"; | |||
|
620 | WHEN "01" => fft_ongoing_counter <= "10"; | |||
|
621 | WHEN OTHERS => NULL; | |||
|
622 | END CASE; | |||
600 | END IF; |
|
623 | END IF; | |
|
624 | ||||
601 | END IF; |
|
625 | END IF; | |
602 | END PROCESS; |
|
626 | END PROCESS; | |
603 |
|
627 | |||
@@ -969,4 +993,4 BEGIN | |||||
969 |
|
993 | |||
970 | ----------------------------------------------------------------------------- |
|
994 | ----------------------------------------------------------------------------- | |
971 |
|
995 | |||
972 | END Behavioral; No newline at end of file |
|
996 | END Behavioral; |
General Comments 0
You need to be logged in to leave comments.
Login now