Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spartan3 - Global Clock Network
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Epikur
Пишу проект под Spartan3 (400 kgates), среда разработки - Xilinx ISE 7.1i, SP3.
Как мне в проекте посмотреть, какие сигналы заведены на линии Global Clocks и, если это необходимо, назначить туда другие сигналы?
И какие есть ещё способы объяснить программе, что есть и другие тактовые сигналы, которые должны распространяться по кристаллу относительно быстро при том, что все Global Clocks заняты?
3.14
В отчете PAR-а говорится сколько глобальных буферов занято. Если не указать явно что такие-то сигналы должен пользоваться глобальными линиями (пропускать сигнал черезглобальный буфер или наоборот), синтезатор попробует это сделать за Вас (чем иногда сильно раздражает, в разных синтезаторах разные способы отучения). По мимо глобалов имеюся еще lowskew линии, но они сильно завязаны с топологией кристалла, поэтому вероятнее всего будут не применимы.
o-henry
Чтобы гарантированно посадить нужные сигналы на линии Global Clocks выход вашего модуля синхронизации подключите к компоненту BUFG.
Epikur
В отчете PAR-а говорится сколько глобальных буферов занято.
Все заняты. И в статье "Generating Clock Report" он говорит, что нашел ещё целую толпу тактовых сигналов. Там же нашёл репорт о сигналах, посаженных на GCLK... Мда... (это я о том, что же там сидит)

Чтобы гарантированно посадить нужные сигналы на линии Global Clocks выход вашего модуля синхронизации подключите к компоненту BUFG.
Спасибо, попробую.
Mad Makc
Цитата
Все заняты. И в статье "Generating Clock Report" он говорит, что нашел ещё целую толпу тактовых сигналов. Там же нашёл репорт о сигналах, посаженных на GCLK... Мда... (это я о том, что же там сидит)

Есть подозрение,что у вас ошибка в подходе к проектированию.В большинстве синхроных проектов(если он у вас синхронный) бывает один тактовый сигнал.Откуда столько клоков, если не секрет?
Epikur
Mad Makc
Есть подозрение,что у вас ошибка в подходе к проектированию
Наверняка не без этого - опыта у меня в проектировании на FPGA мало, да и сам проект достался мне "по наследству" от другого человека. В последнее время часто переделываю те или иные кусочки, чтобы было красивее и грамотнее.
Значит так. Есть тактовый сигнал 12 Мгц, который затем умножается до 120 и используется везде, где нужна быстрая реакция. Только вот местами синхронизация от 120 Мгц идёт как по фронту, так и по спаду (разные части одной схемы).
Есть второй тактовый сигнал 3,6864 Мгц, который предназначен для UART, но я его использую ещё для некоторых других схем.
UART выполнен отдельным компонентом, коих в системе 2 шт. И хотя к обоим компонентам подключается один и тот же тактовый сигнал 3,6 Мгц, насколько я понял, Xilinx ISE занял под каждый из них отдельный глобальный клок (молойца, однако).
Есть ещё 2 одинаковых компонента N, где используется тактовый сигнал 120 Мгц и он же поделенный на 128 (им тактируется почти вся схема компонента). Поделен сигнал логикой. Но вот под каждый из них, похоже, ISE тоже выделил по линии глобал клока.
И ещё есть парочку сигналов не тактовых, но которые было бы очень желательно завести на быструю линию: строб импульсы разрешения записи/чтения асинхронного интерфейса EMIF к процессору. Сейчас обмен данными с процессором идёт с периодом примерно 50 нс (одно слово - 16 бит), но планируется в будущем сократить это время до 20..25 нс или вообще сделать интерфейс синхронным (но об этом я пока ещё не думал серьёзно).

Чтобы гарантированно посадить нужные сигналы на линии Global Clocks выход вашего модуля синхронизации подключите к компоненту BUFG
Попробовал. ISE ругается, что больше нет свободных линий sad.gif
Mad Makc
Насколько я понял, ваше устройство- это арифметическая молотилка,которая цепляется к процу.
несколько вопросов
1. где из 12 МГц делается 120 МГц? В ПЛИС или снаружи? И почему именно 120?
2.
Цитата
Есть второй тактовый сигнал 3,6864 Мгц, который предназначен для UART

Сразу минус один клок.UART прекрасно будет жить и на 12 МГц.
3.
Цитата
И хотя к обоим компонентам подключается один и тот же тактовый сигнал 3,6 Мгц, насколько я понял, Xilinx ISE занял под каждый из них отдельный глобальный клок (молойца, однако).

Если ничего специально не наворочено,то не должен. Вообще в таких случаях FPGA Editor спасёт отца русской демократии.Запустите хотя бы разок.
4.
Цитата
Есть ещё 2 одинаковых компонента N, где используется тактовый сигнал 120 Мгц

Вы ваще уверены,что Спартан3 раскачаете на такую частоту?

пока всё smile.gif
des00
Цитата(Mad Makc @ Mar 24 2006, 02:51) *
4.
Цитата
Есть ещё 2 одинаковых компонента N, где используется тактовый сигнал 120 Мгц

Вы ваще уверены,что Спартан3 раскачаете на такую частоту?


а что сложно ? как никак 284 у него по даташиту smile.gif

правда логики при этом (между регистрами) чуть чуть останеться smile.gif
Mad Makc
Цитата
а что сложно ? как никак 284 у него по даташиту

Ага. Только у меня такое ощущение,что на 284 только "задвиговый" регистр заведётся.Не более.
Epikur
Насколько я понял, ваше устройство- это арифметическая молотилка,которая цепляется к процу.
Исходное назначение - расширитель ввода вывода на несколько внешних устройств с разными интерфейсами. Но в последнее время стала актуальна задача и молотилки (чем сейчас и занимаюсь).

1. где из 12 МГц делается 120 МГц? В ПЛИС или снаружи? И почему именно 120?
В DCM. Конкретная конечная частота особого значения не имеет, главное, чтобы было достаточно много. Раньше стояло 60, но этого не хватало.

Сразу минус один клок.UART прекрасно будет жить и на 12 МГц.
Не, не будет. Нужно поддерживать скорость 230400 бод (и другие ниже), а для этого нужно тактовую частоту самих модулей в 16 раз выше подать. (Ну или хотя бы в 8 раз). А 12 Мгц совсем плохо делиться. Планируется в будущем заменить кварц на 24 Мгц - его ещё можно будет как-то прицепить.

Если ничего специально не наворочено,то не должен. Вообще в таких случаях FPGA Editor спасёт отца русской демократии.Запустите хотя бы разок
Запускал...

Вы ваще уверены,что Спартан3 раскачаете на такую частоту?
Судя по всему, логика будет работать на частоте где-то 60 Мгц, а на больше не вытянет. Просто она пока что ещё не готова, а остальные части работают и на 120.
Very_hard
3.6 МГц можно получить с помощью синтезатора DCM (CLKFX) из 12 МГц. Коеффициенты 13 и 4...
Кстати, сколько дсм и какие выходы дсм Вы используете?

Непонятно... у меня синтезатор (ISE6.3) не добавлял глобальный буфер на тактирующий сигнал, полученный с делителя... приходилось ставить BUFG
Epikur
3.6 МГц можно получить с помощью синтезатора DCM (CLKFX) из 12 МГц. Коеффициенты 13 и 4...
Действительно. (чего-то не сообразил). Буду пробовать.

Кстати, сколько дсм и какие выходы дсм Вы используете?
Пока что в проекте только 1 DCM. Сейчас попробую вставить второй.
Работает без обратных связей
CLKIN_IN => clk12M,
RST_IN => not reset,
CLKFX => clkH,
CLKIN_IBUFG_OUT => clk12M_int, ( может это не надо?)
LOCKED_OUT => ClockLocked (не используется в проекте)

у меня синтезатор (ISE6.3) не добавлял глобальный буфер на тактирующий сигнал, полученный с делителя...
В настройках файла, генерируемого при помощи CoreGenerator-а, есть закладка "Xilinx Clocking Wizard - Clock Buffers", где можно назначить, какие линии будут использоваться для тактовых выводов.
Very_hard
Цитата
у меня синтезатор (ISE6.3) не добавлял глобальный буфер на тактирующий сигнал, полученный с делителя...
В настройках файла, генерируемого при помощи CoreGenerator-а, есть закладка "Xilinx Clocking Wizard - Clock Buffers", где можно назначить, какие линии будут использоваться для тактовых выводов.


я вообщето не про выход дсм(с назначением глобальных буферов в ядре дсм вроде все понятно)... делитель был реализован в логике, вых. сигнал использовался для тактирования устройства(потом на этот сигнал пришлось ставить BUFG); тут говорят синтезатор сам может добавлять гл. буфер на внутренний сигнал, если он используется для тактирования...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.