Цитата(ADA007 @ Nov 19 2010, 13:04)

после обнаружения критических задержек и др. проблем.....и при приеме внешних данных...
С внешними достаточно просто - либо захватываю инверсным и зафиксированное в триггере уже перезахватываю нужным фронтом, внося задержку на 1 такт, либо и вовсе работаю на более высокой, чем у данных, частоте.
А внутри ставлю конвеер с захватом промежуточных состояний и таким поэтапным проведением на выход, либо счётчик для выдержки времени и захват уже готового по нужному такту.
Как-то делал КИХ-фильтр 20-го порядка, так там такие задержки были на перемножении отсчётов на коэффициенты, что после каждой операции приходилось ставить регистр и так до тех пор, пока эта "пирамида" из комбинаторных умножителей (встроенных там не было) и триггеров не свелась к конечному регистру результата. Фактически, был организован конвеер со скоростью 1 результат за 1 такт, но с задержкой в те самые 20 тактов. Конечно, можно было бы сделать задержку на счётчике, но при смене коэффициентов-констант менялось время выполнения, да и степень использования ресурсов меняла время выполнения. Поэтому потактовая разбивка с фиксацией промежуточного результата оказалась дубовым, но надёжным решением.
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)