[an error occurred while processing this directive]
|
Вобщем сигнал Tx_buff_ld от рук отбился.
в некоторых состояниях он произвольно изменяется, хотя я этого не указывал.
Я его меняю только в 3-х состояниях IDLE,RD_DATA_1,RD_DATA_2.
Причем только в RD_DATA_1 я его делаю нулем.
А на диаграммах он еденица только в IDLE.
Симуляция-функциональная(квартус)
Никакие шальные состояния не пробегают, форма описания автомата - как в хелпе квартуса.
Наставьте братия!
process (state)
begin
case state is
when IDLE =>
en_rd <='0';
Tx_buff_ld <='1';
en_wr <='0';
when ADDR_BYTE_RECEIVED =>
case Rx_buff_data(1 downto 0) is
when flag_addr_WR=>
addr_wr(2 downto 0)<=Rx_buff_data(4 downto 2);
when flag_addr_RD=>
addr_rd(2 downto 0)<=Rx_buff_data(4 downto 2);
when flag_data_WR=>
null;
when flag_reserved=>
null;
end case;
when WAIT_4_DATA_WR =>
null;
when RD_DATA_1 =>
en_rd <='1';
Tx_buff_ld <='0';
when RD_DATA_2 =>
en_rd <='0';
Tx_buff_ld <='1';
when WR_DATA_1 =>
en_wr <='1';
when WR_DATA_2 =>
en_wr <='0';
end case;
end process;
E-mail: info@telesys.ru