Цитата(Kirill_Good @ Mar 1 2011, 18:18)

Есть ли у кого нибудь хорошие ссылки на статьи, сайты, как можно абстрактно(без примитивов, и расположения dedicated pins) объясняют синхронизацию внутри ПЛИС.
Ссылок дать не могу, но попробую кратенько дать отправную точку, чтобы было легче читать документацию - без её чтения ливить нечего.
0. Ну, коли лень читать документацию, то необходимо взять FPGA Editor и внимательно рассмотреть ПЛИС - что, где и как лежит, а также как туда добраться - без понимания всего этого, работа с ПЛИС - баловство.
1. Есть куча синхронных элементов (nриггеры, блочная память, распределённая память и пр. дрянь). На всё это должны подаваться (да еще и синхронно в пределах одного clock domain !) различные тактовые сигналы. Линии, доставляющие эти сигналы, должны уметь работать с огромной нагрузкой (т.е. на этих линиях сидит много входов - количество входов обзывается: Fanout). Соответственно, у линий, доставляющие эти сигналы должны быть весьма мощные драйверы (буфера).
2. Так как из вышесказанного следует, что всё это сильно отличается от обычных линий, то такие линии и буферы были выделы в отдельную категорию - clocking resource... Ну а затем, по мере развития ПЛИС туда добавились и DLL, PLL и пр. прелести жизни.
3. По своему назначению, clock должен приходить
только на тактовые входы синхронных элементов, поэтому, в большинстве ПЛИС, нет штатных линий для подачи clock'а на обычные линии. (
именно поэтому у Вас и ругается MAP во втором случае. Вывод clock'а за пределы кристалла делается по иному, например через DDR регистр)
4. Для того, чтобы у схемотехника не сорвало крышу от работы с ненужными подробностями, система доставки одного clock'а примитивно изображается одним BUFG и подключенной к нему системой глобальных тактовых линий.
5. Clock - это дорогое удовольствие. Поэтому всё, что связанно с clock'ами в ПЛИС, находится в ограниченном количестве.
6. В ПЛИС есть особые ножки ввода(/вывода), от которых проложены особые трассы к BUFG (а в некоторых случае можно запитать с них и DLL/PLL -
это уже надо рассматривать подробно FPGA Editor'ом).
Вот как раз в документации подробно и расписано: откуда и до чего можно дотянуться. А т.к. всё это бурно развивалось 10 лет, то и информации в документации вывалено куча.
Возможно, Вам имеет смысл проследить развитие clocking resource ПЛИС: Spartan-1 -> Spartan-2 (или Virtex-1), Spartan 3x, Spartan 6. Тогда всё станет просто и понятно: что, как и для чего было сделано, а также, почему оно было сделано именно так.