Mahagam (28.05.2015 14:59, просмотров: 294) ответил POV на Но тем не менее сути говнокодности я не понял. Если пришли два взаимоисключающих сигнала, то реакции корректной на них и не может быть.
а там нет взаимоисключающих сигналов. если переделывать, то так: а) вместо двух управляющих сигналов, требуется три. тактовый, разрешение инкремента, синхронное с тактовым, разрешение на сдвиг, тоже синхронный с тактовым.
б) все действия внутри модуля происходят только с фронтом тактового сигнала, и никак иначе.
в) для синхронного инкремента, если сам сигнал асинхронный, требуется тупо выделить из него фронт, который будет привязан к тактовому, и работать по нему.
синхронизация гарантирует, что никаких таких глюков не возникнет вообще. я тебе описал проблему, которая может возникнуть в текущей реализации модуля.