Пытаюсь поделить немерено разросшуюся FSM на несколько частей, в т.ч. выделить кусок в нечто типа функции (не в смысле понятия функции в HDL, а просто как узел, используемый из разных частей схемы).
Как правильно организовывать взаимодействие между несколькими FSM ? Флагами, или есть более красивый/правильный способ ?
И что делать, если две FSM должны управлять одними и теми же сигналами ? Например, есть автомат, производящий довольно сложный процесс инициализации устройства по SPI. Этот автомат должен использовать отдельную FSM для передачи байтов в устройство, но при этом и сам основной автомат хочет иногда подергать сигналы SPI.
Как правильнее поступать в подобных случаях ? У меня все работает, но нагромождение флагов и прочей фигни делает код нечитаемым даже для меня

P.S. Вообще пишу на VHDL, но вряд ли это сильно зависит от конкретного языка - скорее, интересует общий подход...