Я смотрю на создание системы на VHDL, которая фильтрует изображение после получения его через USB-устройство FTDI. Как часть этого, я считаю, что я определил состояния, в которых должен находиться мой CPLD, но я никогда раньше не создавал сложный конечный автомат в VHDL, поэтому я сомневаюсь, что мои методы являются надежными. В настоящее время основной план для моего конечного автомата таков:
begin
process(clk, reset, USB_RXFN, USB_TXEN)
begin
case state is
when IDLE =>
when NEGOTIATING =>
when RECEIVING =>
when FILTERING =>
when TRANSMITTING =>
when OTHERS => -- this should never happen but go to IDLE
end process;
Моя проблема здесь в том, что в каждом руководстве по конечному автомату мне удалось найти состояние изменений на каждом переднем фронте (или аналогичном, но один раз за такт), и это устройство должно много раз находиться в режиме ожидания и переходить в режим NEGOTIATING только при USB_RXFN снижается, оставайтесь в ПЕРЕГОВОРЕ, пока это не будет сделано, оставайтесь в ПОЛУЧЕНИИ, пока не будет передано все изображение и т. д. *
Есть ли в моем подходе что-то принципиальное? CPLD просто не подходят для этой цели? Или можно оставаться в состоянии более одного часа, а учебники просто написаны таким образом для простоты?