Пpиветствую, Olga!
ON> Извольте. Кто программировал ПЛИСы знают, что состояния State_Machine
ON> часто задают принудительно в виде управляющих кодовых последовательностей.
Да ну нафиг...Как делаю я:
entity videobus is
Port
(
<...>
);
end videobus;
architecture Behavioral of videobus is
<...>
type REQSTATES is
(stIDLE,stY_WAIT_ACK,<...>,stNEXT_LINE);
signal request_state_current : REQSTATES; -- текущее состояние автомата
signal request_state_next : REQSTATES; -- следующее состояние автомата
<...>
begin
<...>
-- автомат состояний, управляющий запросом данных с хоста и записью их в буфер
req_state_change : process (VBUS_CLK)
begin
if (RST = '1') then -- начальное состояние
request_state_current <= stIDLE;
request_state_next <= stIDLE;
<...>
elsif (rising_edge(VBUS_CLK)) then
request_state_current <= request_state_next; -- изменение состояния
конечного автомата
case request_state_current is -- таблица перехода
when stIDLE =>
if (data_request_start_l2='1') then request_state_next <= stY_WAIT_ACK; end
if; -- переход
<...>
when stY_WAIT_ACK =>
if (VBUS_ACK='1') then request_state_next <= stY_RX; end if; -- переход
<...>
when stNEXT_LINE =>
request_state_next <= stIDLE;
<...>
end case;
end if;
end process;
<...>
end Behavioral;
ON> Эти последовательности выбирают как удобно
Их выбирает синтезатор.
Ему можно сказать, чтоб использовал Грея, бегущую 1 или что ещё,
но проще оставить на его усмотрение - сам сообразит, не маленький
и денег много стоит......
ON> PS. ДHК не беспокоит?
Смотря чья....
"Вы таки хотите об этом поговорить ?" (с)
Michael Tulupov
...
|