Перейти к содержанию
    

Как правильно расположить выводы?

Недавно начал разбираться с ПЛИСами (Xilinx). И тут возникла маленькая проблема, что толком не научился работать, и не понял всех тонкостей.. Как нужно рисовать схему подключения. Скажите какими правилами нужно руководствываться при назначении выводов? И на что это влияет? И действительно это важно на частоте 100МГц?

p.s. у меня в проекте будет Spartan3 (pin 208), RAM, АЦП и контроллер-USB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Недавно начал разбираться с ПЛИСами (Xilinx). И тут возникла маленькая проблема, что толком не научился работать, и не понял всех тонкостей.. Как нужно рисовать схему подключения. Скажите какими правилами нужно руководствываться при назначении выводов? И на что это влияет? И действительно это важно на частоте 100МГц?

p.s. у меня в проекте будет Spartan3 (pin 208), RAM, АЦП и контроллер-USB.

 

Конкретно по Xilinx не скажу, но стратегия везде одинаковая:

 

1. Задействуй глобальные цепи (клоки, ресеты, разрешения).

2. распределяй выводы крокодила так, чтобы длина внешних цепей была минимальна. То есть перераспределяй после компановки платы так, чтобы по плате легко и близко разбегались до окружающих компонентов.

3. Так как недавно начал работать- обрати внимание на корректную разводку питаний, не жадничай на конденсаторах.

4. В твоем средстве разработки наверняка есть какие-то средства указать критичные по частоте цепи, тогда они разведутся с учетом твоих требований.

5. Конечно обрати внимание на предопределенные пины. Вдруг у тебя там есть пины, которые только на ввод годятся, либо зареезервированные под конфигурирование, либо еще под что. Тут внимательно читаешь те страницы мануала, где сведены в таблицу все ноги микросхемы, обычно справа в примечании указывают особые свойства вывода.

 

Ну еще после синтеза (я о альтеровском rpt-файле, для Xilinx у тебя наверное что-то подобное тоже есть) в файле рапорта можешь еще раз убедится, что у тебя на какой ноге находится, а также может быть и написано, какие уровни на какие из остальных ног камня следует подавать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скажите какими правилами нужно руководствываться при назначении выводов?
RtFM от Xilinx. В книгах Altera раздел по IO-контактам обычно называется "Pad Placement & DC Guidelines", по специфическим подключениям (DDR, MultiVoltage ...) - "Design Considerations". Ищи нечто подобное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конкретно по Xilinx не скажу, но стратегия везде одинаковая:

 

1. Задействуй глобальные цепи (клоки, ресеты, разрешения).

2. распределяй выводы крокодила так, чтобы длина внешних цепей была минимальна. То есть перераспределяй после компановки платы так, чтобы по плате легко и близко разбегались до окружающих компонентов.

3. Так как недавно начал работать- обрати внимание на корректную разводку питаний, не жадничай на конденсаторах.

4. В твоем средстве разработки наверняка есть какие-то средства указать критичные по частоте цепи, тогда они разведутся с учетом твоих требований.

5. Конечно обрати внимание на предопределенные пины. Вдруг у тебя там есть пины, которые только на ввод годятся, либо зареезервированные под конфигурирование, либо еще под что. Тут внимательно читаешь те страницы мануала, где сведены в таблицу все ноги микросхемы, обычно справа в примечании указывают особые свойства вывода.

 

Ещё обратите внимание на банки ввода-вывода, т.е. желательно, чтобы ножки с одинаковым функциональным предназначением (скажем вся шина данных) относились к одному банку ввода-вывода.

Насчёт конденсаторов - не вижу смысла в обильном навешивании электролитов вокруг ПЛИС (другое дело - керамические конденсаторы еёмкостью порядка 0,1 мкФ.) В идеале к каждой ножке питания свой конденсатор - но так не получится, поэтому конденсаторы располагайте равномерно по периметру микросхемы.

Число конденсаторов можно прикинуть на схеме, если нарисовать элемент ПЛИС в виде двух УГО: на первом сосрдоточены сигнальные ноги, входы тактовой частоты, а на втором - цепи питания, jtag, загрузка. В результате блокировочные конденсаторы не загромождают основную схему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понял 100 МГц - тактовая частота для Спартана? В таком случае схалявить вряд-ли получится - надо использовать Time Constraints, иначе можно получить разные радости с редкими глюками. Самый лучший способ для начинающего, ИМХО, использовать Reference Designs от Xilinx, Иначе трудно сразу въехать в эти "ограничители". Вот нормальный, не слишком сложный пример по близкой мне тематике. Вы можете для вашего дизайна подобрать что-то ближе к вашей душе на сайте Xilinx :)

 

Конденсаторы блокировочные - количество и номиналы, разводка цепей питания и сигнальных, количество слоев платы - это отдельная большая тематика относящаяся скорее к PCB Layout. Здесь опять-же могут очень помочь Reference Designs - например, Spartan 3 Development Board

 

В принципе, для начала, ИМХО, лучше не использовать сигналы с частотами выше ~50 МГц, ни во внутренних, ни во внешних цепях. Разберетесь с кухней FPGA - а там можно и High Speed Design осваивать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просто в дело в чём... У меня нет времени для раскачивания... То есть я начитался теории и нужно уже сейчас рисовать схему, а потыркаться на реальной железяке смогу только когда будет старт кит, а он будет примерно тогда когда и будет разведена плата для схемы... И очень боюсь напароть ерунды в разводке, может если кому не трудно будет, чтобы глянуть мои наброски схему... и покритиковать сможет.. Буду очень рад и это мне здорово поможет.. Могу выслать несколько маленьких файлов со схемой на мыло.. Помоги кто сможет..очень надо!!! :help:

Pin.doc

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меньше всего нужно беспокоиться за работоспособность FPGA. Она всегда будет работать. А вот требуемое от АЦП добиться всегда труднее. Последущая переразводка по результатам настройки - обычное дело. Наверно нужно продумать размещение элементов на плате. Развести плату с учетом всех требований аналоговой части. А чтобы не пролететь с FPGA, разбить символьный элемент на части:

первая часть глобальные клоки, контакты двойного назначения, загрузочная часть, вторая все питание, третья или последующие банки контактов ввода вывода (они могут иметь различные vcc i/o)

И сделать пины этих банков эквивалентными. Т.Е. чистые контакты i/o отдать на откуп разводчику (он может их перекидывать в соответствии со стратегией разводки). И тогда Вы убиваете все зайцев в лесу. Сразу рисуете свою схему и от балды раскидываете свои данные и адреса по банкам чистых i/o (все равно без размещения всех элементов на плате согласно рекомендациям фирм производителей Вы сразу на нужные пины FPGA не попадете). Делаете своей проект без всяких ограничений по пинам (без констренов) Разводчик печатной платы отдает Вам конечный вариант, Вы конвертируете его обратно в схему и присваиваете эти пины FPGA. Даже если пролетите на один два пина (что мало вероятно для чистых i/o ) всегда можно отыграть назад. У меня пока проблем с таким подходом не было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какие сложности могут возникнуть с АЦП?

 

У нас планировали на 50МГц, работать, а спартан 3е схему пред обработки не вытянул, теперь на 25 работаем:)... Примерно такие могут быть трудности:). Опять же шумы и прочая фигня, АЦП вещ неспокойная...

 

Но это у нас получилось, а вот спартан зараза пускается через раз, и что ему не нравиться понять не могу... Как будто не грузиться, никаких синтезаторов клока внутри настраиваемых не используем, сразу на ногу клока 100МГц, а из 10 включений, 3-4 схема молчит, на управление не реагирует, может кто такое видел?!

 

Ресета то у ФПГА нет, как ее на бут проверить, как ей подсказать что давно пора загрузиться то уже!?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какие сложности могут возникнуть с АЦП?

Например шумы младших разрядов.

Нужно думать, где аналоговые и цифровые земли соединять, как повлияют на ацп внешние тактовые генераторы для FPGA, работа самой FPGA.

Кстати, эти тактовые генераторы могут влиять и на загрузку самой FPGA. Я в интервале конфигурациии запрещаю работу внутреннх генераторов (у FPGA есть пины для этого).

Если схема загрузки FPGA сделана согласно всем рекомендациям даташит, не может быть сбойной загрузки. (Поню один раз к ПЗУ загрузки не был подведен GND, так все равно грузила FPGA через раз (сбойно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А зачем на прямую 100 МГц? Что есть какие подводные камни в DCM?

 

пока со стар китом игрался не замечал... просто генератор такой был, удобно...

 

А какие сложности могут возникнуть с АЦП?

Например шумы младших разрядов.

Нужно думать, где аналоговые и цифровые земли соединять, как повлияют на ацп внешние тактовые генераторы для FPGA, работа самой FPGA.

Кстати, эти тактовые генераторы могут влиять и на загрузку самой FPGA. Я в интервале конфигурациии запрещаю работу внутреннх генераторов (у FPGA есть пины для этого).

Если схема загрузки FPGA сделана согласно всем рекомендациям даташит, не может быть сбойной загрузки. (Поню один раз к ПЗУ загрузки не был подведен GND, так все равно грузила FPGA через раз (сбойно).

 

Генератор на плате единый, все остальные схемы тактуются через плис. Не очень понял про запрет внутренних генераторов, и пины,... это как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И ещё у меня возник вопрос недавно... Можно ли оставлять в подвешанном состоянии выводы, которые я не использую?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Генератор на плате единый, все остальные схемы тактуются через плис. Не очень понял про запрет внутренних генераторов, и пины,... это как?

Если плис не загружена, то и работа генератора без надобности. Значит можно иэбавиться от наводок по цепям загрузки. У FPGA есть контакты, позволяющие контролировать интервал конфигурвции и инциализации. У Альтера это configdone & initdone на OE генератора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И ещё у меня возник вопрос недавно... Можно ли оставлять в подвешанном состоянии выводы, которые я не использую?

 

Можно. У Xilinx очень хорошо продуманы схемы внешних буферов I/O. На практике ни разу не видел проблем (поправьте меня если кто видел). Хотя, если боитесь, можно, например, запрограммировать все выходы как output и заземлить их в прошивке FPGA (как это рекомендуется для некоторых микроконтроллеров)

 

Генератор на плате единый, все остальные схемы тактуются через плис. Не очень понял про запрет внутренних генераторов, и пины,... это как?

Если плис не загружена, то и работа генератора без надобности. Значит можно иэбавиться от наводок по цепям загрузки. У FPGA есть контакты, позволяющие контролировать интервал конфигурвции и инциализации. У Альтера это configdone & initdone на OE генератора.

 

Это как-же должна быть спроектирована схема и плата, чтобы работа генераторов вызывала сбои конфигурации FPGA :blink: ? Генераторы не по 100 Вт случайно? :biggrin:

 

Тогда и сбои при работе устройства неизбежны...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...