для самостоятельного изучения
6 стробов показывают положение импульсов друг относительно друга - точность выше
лень думать над решающим устройством - но если очень хочется особенно для курсача штука любопытная
ARCHITECTURE system_architecture OF system IS signal syg_1 : std_logic; signal syg_2 : std_logic; signal syg_1_del_line_p : std_logic_vector(0 to 3); signal syg_2_del_line_n : std_logic_vector(0 to 3); signal syg_1_del_line_p : std_logic_vector(0 to 3); signal syg_2_del_line_n : std_logic_vector(0 to 3); signal syg_1_front_p : std_logic; signal syg_2_front_p : std_logic; signal syg_1_front_n : std_logic; signal syg_2_front_n : std_logic;
signal 100meg : std_logic ;
signal strob_1 : std_logic ; signal strob_2 : std_logic ; signal strob_3 : std_logic ; signal strob_4 : std_logic ; signal strob_5 : std_logic ; signal strob_6 : std_logic ; BEGIN
process (100meg) begin if (100meg'event and 100meg = '1') --polog front then syg_1_del_line_p(0 to 3) <= syg_1 & syg_1_del_line_p(0 to 2) ; syg_2_del_line_p(0 to 3) <= syg_2 & syg_2_del_line_p(0 to 2) ; end if; end process ;
process (100meg) begin if (100meg'event and 100meg = '0') --otr front then syg_1_del_line_n(0 to 3) <= syg_1 & syg_1_del_line_n(0 to 2) ; syg_2_del_line_n(0 to 3) <= syg_2 & syg_2_del_line_n(0 to 2) ; end if; end process ;
syg_1_front_p <= syg_1_del_line_p(2) and not(syg_1_del_line_p(3)); syg_2_front_p <= syg_2_del_line_p(2) and not(syg_2_del_line_p(3)); syg_1_front_n <= syg_2_del_line_n(2) and not(syg_2_del_line_n(3)); syg_2_front_n <= syg_2_del_line_n(2) and not(syg_2_del_line_n(3));
process (100meg) --stroby begin if (100meg'event and 100meg = '1') --polog front then if syg_1_front_n = '1' and syg_2_front_n = '1' then signal strob_1 <= '1'; else signal strob_1 <= '0'; end if;
if syg_1_front_p = '1' and syg_2_front_n = '1' then signal strob_3 <= '1'; else signal strob_3 <= '0'; end if;
if syg_1_front_n = '1' and syg_2_front_p = '1' then signal strob_4 <= '1'; else signal strob_4 <= '0'; end if;
end if; end process ;
process (100meg) --stroby begin if (100meg'event and 100meg = '0') --neg front then if syg_1_front_p = '1' and syg_2_front_p = '1' then signal strob_2 <= '1'; else signal strob_2 <= '0'; end if;
if syg_1_front_p = '1' and syg_2_front_n = '1' then signal strob_5 <= '1'; else signal strob_5 <= '0'; end if;
if syg_1_front_n = '1' and syg_2_front_p = '1' then signal strob_6 <= '1'; else signal strob_6 <= '0'; end if; end if; end process ;
END system_architecture;
|