Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Clock resources Xilinx
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Kirill_Good
Здравствуйте!
Xilinx ISE 12.3, SPARTAN 6
Есть два кода :

1) entity clkdist is
port(
clk_in : in std_logic;
clk_out : out std_logic
);
end clkdist;
architecture Behavioral of clkdist is
begin
clk_out <= clk_in;
end Behavioral;

2) myclk - PLL умножающая входную частоту на 2.
--//---//--
architecture Behavioral of clkdist is
component myclk
port
(
CLK_IN1 : in std_logic;
CLK_OUT1 : out std_logic
);
end component;
begin
your_instance_name : myclk
port map
(
CLK_IN1 => clk_in,
CLK_OUT1 => clk_out);
end Behavioral;

На этапе Implement Design первый код проходит нормально, и я наблюдаю частоту входную на соответствующем выводе ПЛИС в "железе". Но второй код на этапе mapping приводит к такой ошибке :

This design contains a global buffer instance,
<your_instance_name/clkout1_buf>, driving the net, <clk_out_OBUF>, that is
driving the following (first 30) non-clock source pins off chip.
< PIN: clk_out.O; >
This design practice, in Spartan-6, can lead to an unroutable situation due
to limitations in the global routing. If the design does route there may be
excessive delay or skew on this net.

Вот мои предположения : В первом случае используются общие пути для передачи сигналов, не специальная сеть для передачи синхросигнала. Во втором случае задействуется та самая clock сеть, потому что на вход PLL должен поступить сигнал только с этой сети. А выход PLL идет на non-clock source pins off chip. И нельзя его физически соединить с этим non - clock. Я верно предполагаю?

Я пока не могу одолеть эти Clock Resources, чтобы точно знать, когда пишу на HDL, как подведется clock к триггерам, как к pll , как от pll к триггерам, и другие ситуации. Чтение Clock resources Spartan 6 pdf сложно дается, они сыплют своими примитивами, и расположением , что теряется общее представление системы синхронизации.

Есть ли у кого нибудь хорошие ссылки на статьи, сайты, как можно абстрактно(без примитивов, и расположения dedicated pins) объясняют синхронизацию внутри ПЛИС.

Спасибо!
Boris_TS
Цитата(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. Тогда всё станет просто и понятно: что, как и для чего было сделано, а также, почему оно было сделано именно так.
Kirill_Good
Спасибо за ответ!
Мне не лень разбираться в документации, просто для быстроты процесса , хотел почитать сначала общую информацию, так сказать от общего к частному, а не собирать из частных общее)
Искал статьи на kit-e, eetimes, не нашел. Попробую со старых разбираться семейств.
D-Luxe
Цитата(Kirill_Good @ Mar 1 2011, 23:02) *
Спасибо за ответ!
Мне не лень разбираться в документации, просто для быстроты процесса , хотел почитать сначала общую информацию, так сказать от общего к частному, а не собирать из частных общее)
Искал статьи на kit-e, eetimes, не нашел. Попробую со старых разбираться семейств.

А зачем разбираться с Clocking Resources ? Как я понял, среда их сама расставит так как будет ей удобнее, без твоего ведома.

Или возникают ситуации, когда их вручную надо расставлять?

Поправьте меня, если я ошибаюсь.
kst
Вот посмотрите ка, по-моему, это ОНО. Сильно не углублялся в прочтении.
http://www.xilinx.com/support/answers/35032.htm
http://www.xilinx.com/support/answers/33025.htm

Цитата(D-Luxe @ Aug 5 2011, 19:49) *
А зачем разбираться с Clocking Resources ? Как я понял, среда их сама расставит так как будет ей удобнее, без твоего ведома.
Или возникают ситуации, когда их вручную надо расставлять?
Поправьте меня, если я ошибаюсь.
Не всегда среда, а особенно ISE, может расставить сама все как надо. Это наглядно подтверждается в приведенных выше ссылках.


Кстати, Kirill_Good, хорошего качества выходного тактового сигнала ждать не стоит.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.