Я предполагал подобное замечание. Если рассматривать проект в целом, то действительно, дизайн проекта не синхронный - почти у каждого модуля своя частота синхронизации. И это сделано намерено. Попробую объяснить, чем я руководствовался.
Внешний клок 50 МГц заводится только на один модуль - делителей частоты. Все остальные модули синхронизированы выходными сигналами модуля делителей частоты. Ведь можно считать, что эти сигналы делителей частоты синхронизированы между собой? Если да, то дизайн - синхронный.
Если же нет, то нужно оценить, скажется ли асинхронность клоковых сигналов для разных модулей на работоспособности системы в целом.
Основной внутрисистемный клок - FTakt, эта частота не постоянная, она зависит от выбранной скорости мотора, и текущей "подстройки" этой скорости. Этот клок заводится во все модули, участвующие в формировании фазных сигналов, и именно относительно фронта этой частоты нужно оценивать синхронность всех процессов в системе. Максимальная частота FTakt - не более 95 кГц, т.е., по меркам ПЛИСки, довольно низкая. Значит, все переходные процессы в отдельных логических элементах и триггерах, наверняка будут заканчиваться до очередного фронта FTakt. И, по большому счету, синхронность дизайна проекта следует оценивать с позиций именно этой частоты.
Все входные сигналы асинхронны по отношению к внешнему клоку (и его производных), и по отношению друг с другом. Но нажатия кнопок (имхо) не требуют жесткой синхронизации - они опрашиваются с очень низкой частотой (FSlow ~10 Гц, синхронна FTakt и исключает влияние дребезга контактов), и, как правило, не участвуют в дальнейших процессах, а лишь разрешают их выполнение. Могу ошибаться, но стоит ли привязывать сюда внешний клок, и добиваться синхронизации на этом этапе?
Сигналы с датчиков Холла вообще штука не предсказуемая, частота их фронтов и спадов зависит от многих факторов - от угловой скорости ротора, до неточности изготовления и механических настроек железа. Но ДХ опрашиваются с заведомо высокой частотой FTakt, и с этой же частотой "отправляются" дальше - в блок коммутатора фаз, который работает на частоте FFase, которая существенно ниже FTakt.
Внутри каждого модуля синхронизация выполняется по фронту той частоты, которая принципиальна для выполнения той, или иной операции. И в каждом последующем модуле частота выполнения этих операций уменьшается, а периодичность всех процессов становится все больше. Следовательно, и здесь нет весомых предпосылок к синхронизации от более высоких тактовых частот. В целом система довольно тихоходна, если не сказать - вялотекуща. По этому я и не стал ломать копья и добиваться сквозной синхронизации.
Некоторое сомнение у меня вызывает решение модуля DelControl - вот там, возможно, и не хватает синхронизации. Остальные же модули как бы живут каждый своей жизнью, и не сильно влияют на смежные процессы.
Понимаю, что такой подход вряд ли можно назвать профессиональным, но это только первая моя попытка что-то "наваять" для Альтеры, и в данный момент мне нужно решить конкретную задачу с минимальными временными затратами.
Leka, прошу не считать, что я встал в боевую стойку, и пытаюсь во что бы то ни стало доказать свою правоту. Я просто привык аргументированно отстаивать пояснять свою точку зрения. Если же Вы, так же аргументированно, покажете, что я ошибаюсь в своих выводах, я безоговорочно признаю свои заблуждения, и с благодарностью приму все Ваши замечания к сведению, и в дальнейшем постараюсь не допускать подобных просчетов.