Alexlapb писал(а):Спасибо за ответ. Этим и ограничивается разработка синхронных схем на ПЛИС? Или это более глубокая тема, со своими нюансами и тонкостями?
Сложности будут возникать на схемах больших размеров. Сигналы же распространяются не мгновенно, поэтому, если схема занимает приличное число ячеек, приходится тем или иным образом это учитывать. Сходу могу выделить следующие моменты:
1) У ПЛИС имеются специальные линии, предназначенные для разводки синхросигналов по кристаллу. В сложных проектах надо учитывать их количество, характеристики и т.п. вещи. Кроме того, возможно, потребуется вручную прописывать, что такие-то сигналы должны разводиться именно такими линиями, а не абы какими (компиляторы сами по себе могут некорректно такие линии выявлять, да и в любом случае, явная подсказка не помешает; кроме того, число синхролиний весьма ограничено, а разводка таких сигналов по обычным линиям чревата существенным падением предельно допустимых частот или вообще какими-нибудь глюками).
2) Крупные схемы обычно бывает целесообразно делить на несколько кусков поменьше, каждый со своей синхронизацией. Возникает, правда, вопрос, как их заставить работать совместно, но при грамотном разбиении это особых проблем не представляет.
3) В некоторых случаях бывает целесообразно часть схемы тактировать фронтом синхросигнала, а другую часть -- спадом. Поскольку сами схемы срабатывают не мгновенно, но за вполне предсказуемое время (в документации на ПЛИС всё это расписано для отдельных ячеек, блоков памяти и т.п.; из используемого инструментария можно "вытрясти" времена для конкретных схем), такой подход может позволить поднять общую частоту, если требуется "двухступенчатая" обработка, причём каждая ступень вписывается по времени в полупериод синхронизации (естественно, с запасом).
4) Средства проектирования обычно "видят", что схема большая, и более-менее адекватно понижают предельно возможные частоты работы. Необходимо контролировать, чтобы они не падали слишком низко, т.е. чтобы задача всё равно решалась адекватно. Если частота недопустимо низкой получилась, необходимо перерабатывать схему.
В общем, нюансов хватает, но они обычно проявляются только в достаточно сложных проектах.