|
CPLD EPM7032SLC44, Как узнать какие пины закреплены за логическими блоками? |
|
|
|
May 29 2012, 17:09
|
Частый гость
 
Группа: Участник
Сообщений: 145
Регистрация: 19-12-07
Пользователь №: 33 422

|
Hi All
Есть простенький проект на EPM7032SLC44, в который упакована небольшая городушка из одного синхронного счетчика на 8 разрядов и кучки триггеров, которая если ее делать на 74-й логие заняла бы десяток-другой корпусов. В общем примитивно и ничего выдающегося. Проект вполне помещается в эту CPLD (занимает 20 макроячеек из 32) и все было прекрасно пока я не задействовал почти все имеюшиеся i/o пины (остался один в резерве). И тут оказалось, что просто так от балды назначать пины на ноги CPLD уже не прокатывает - итог действа варьируется от удачной компиляции в 20 макроячеек до варнингов что компилятору пришлось дополнительно назначить кучку LCELL либо вааще ошибке компиляции так как нет возможности развести тот или иной пин. Я догадываюсь корень зла в том, что ресурсов у этой ПЛИС немного и всего два логических блока. Соответственно часть пинов напрямую доступна одному блоку, а часть другому, и если я начинаю назначать пины от балды, напимер когда половина счетчика использует выходы одного лог. блока а вторая половина выходы другого, то компилятор запросто может упереться в нехватку линий в PIA и скомпилировать проект не сможет. Из сего следует как я понимаю что пины надо назначать не тупо, а так чтобы не создавать компилятору лишних проблем с последующей трассировкой. Это как бы не проблема, но я нигде не нашел в датшите инфы какой пин у сабжа какому лог. блоку принадлежит. Где это можно посмотреть? Или вопрос как-то иначе решается? Сейчас у меня этап разводки PCB, при этом хотелось бы осмысленно тасовать функционал выводов а не методом тыка и последующей перекомпиляции решать вопрос соберется проект при такой разводке или нет
PS В ПЛИС я чайник. Но моих скромных знаний хватает на то чтобы накидать прокет в блочном редакторе, назначить пины и прошить плисину байтбластером. И даже как-то заставить это правильно работать. Бурить языки ттипа *log *DL я пока не стал так как мне кажется для простого проекта это не требуется. PPS Именно EPM7032SLC44 выбрана потому, что а) они у меня есть б) так как будет стоять в силовом девайсе 5-и вольтовая версия предпочтительнее. Так понимаю что если взять EPM7064SLC44 то подобной проблемы с пинами не возникнет, так как лог. блоков уже 4 и уж 20 макроячеек компилятор в ней по любому разведет, но у меня их нет и они ощутимо дороже. Проект накидан в квартусе 9.1 веб эдишен, его так понимаю вполне достаточно для этой CPLD
|
|
|
|
|
 |
Ответов
(1 - 11)
|
May 29 2012, 17:24
|
Частый гость
 
Группа: Участник
Сообщений: 145
Регистрация: 19-12-07
Пользователь №: 33 422

|
Цитата(des00 @ May 29 2012, 21:14)  можно было просто даташит глянуть %) дело в том что триггеры у этого семейства в пинах стоят. поэтому и связь такая. Но веть у той же 7064 триггеров в два раза больше чем пинов, как то они меж собой делят их  Цитата лучше всего собрать проект при нулевых пинах и взять те что предложит квартус У меня он сам не назначает выводы, пока я в планере не расставлю. Наверное где-то в сетапе нада галочку поставить, но где я не знаю. И опять же, хочется понимать что делаешь а не надеяться на мудрость компилятора. Вот я щас при таком раскладе разведу PCB, а потом если вдруг возникнет нужда внутри что нить куда нить подвинуть в пределах оставшихся 12 макроячеек, то окажется что при такой трассировке PCB проект уже не собирается. И что тогда, опять доверится квартусу а потом скальпель плюс МГТФ? Не вдохновляет и хотелось бы сего избежать. Цитата ЗЫ. На некоторые пины квартус ставит метку Must not be connected. Будьте осторожны %) Не сталкивался. Что это такое?
|
|
|
|
|
May 29 2012, 17:34
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(pwn @ May 29 2012, 12:24)  Но веть у той же 7064 триггеров в два раза больше чем пинов, как то они меж собой делят их  а там не все пины чипа на корпус разварены + нужно учесть что есть специальные входы %) Цитата У меня он сам не назначает выводы, пока я в планере не расставлю... Не сталкивался. Что это такое? у вас должен быть отчет о пинах и их соединениях в нем написано какие режимы стоят на пинах и что с этим делать. Всякие входные сигналы нужно задать, а выходные пусть ква назначит. Рекомендациям относительно пинов на этом семействе желательно соблюдать, что бы потом не было мучительно больно %)
--------------------
|
|
|
|
|
May 29 2012, 17:39
|
Местный
  
Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023

|
Цитата(pwn @ May 29 2012, 21:09)  но я нигде не нашел в датшите инфы какой пин у сабжа какому лог. блоку принадлежит. Эту информацию можно выкопать из отчётов Квартуса после компиляции. Попробуйте запустить из меню Tools инструмент Equations Writer или как-то так он называется. В отчёт компиляции добавится соответствующий раздел, там будет написано что сигнал такой-то на LCxx. Первыё 16 хх - первый блок, следующие 16 хх -второй блок. Кажется так, здесь Квартуса у меня нет проверить не могу.
|
|
|
|
|
May 29 2012, 18:20
|
Частый гость
 
Группа: Участник
Сообщений: 145
Регистрация: 19-12-07
Пользователь №: 33 422

|
Цитата(maksimp @ May 29 2012, 21:39)  Эту информацию можно выкопать из отчётов Квартуса после компиляции. Попробуйте запустить из меню Tools инструмент Equations Writer или как-то так он называется. Такого инструмента не нашел, видимо потому что квратус старый (9.1) и веб эдишен. Но порывшись в отчете компиляции во вкладке Fitter похоже нашел именно то что требуется
Это для входов. И рядом такая же табличка для выходов. Спасибо. Щас я его быстренько выведу на чистую воду и распланирую ноги так, чтобы компилятор не создавал мне проблем а я ему
Сообщение отредактировал pwn - May 29 2012, 18:20
|
|
|
|
|
May 29 2012, 18:28
|
Местный
  
Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023

|
Цитата(pwn @ May 29 2012, 22:20)  Такого инструмента не нашел, видимо потому что квратус старый (9.1) и веб эдишен. У меня как раз на точно таком Квартусе это было. Там в меню Tools ещё подменю есть, и может в нём этот Equations Writer.
|
|
|
|
|
May 29 2012, 20:16
|
Частый гость
 
Группа: Участник
Сообщений: 145
Регистрация: 19-12-07
Пользователь №: 33 422

|
Цитата(maksimp @ May 29 2012, 22:28)  У меня как раз на точно таком Квартусе это было. Там в меню Tools ещё подменю есть, и может в нём этот Equations Writer. Не нашел, да и видимо не надо уже. Оказалось все просто - с 4-го по 21-й пин это 1-й блок, с 24 по 41-й это 2-й блок, 2,1,44,43 - глобальные входы. Пины JTAG-а не в счет и их так понимаю лучше не трогать чтобы не лишиться возможности прошивать байтбластером. Они правда раскиданы по всем 4-м сторонам (нет бы собрать рядом до кучи весь JTAG  ) и пин планнер вроде бы как позволяет JTAG на другие ноги назначить, но рисковать как-то совсем не хочется, тем паче что нет никого рядом у кого был бы параллельный программатор. А так я его бы с радостью переназначил на 4,2,1,44 выводы (чтобы не пришлось по всей PCB собирать до кучи на JTAG конектор) а его выводы поюзал бы под свои нужды. Но сойдет и так. Переназначил выводы и компилятор без каких либо криков и возмущений скомпилил все в 20 макроячеек и вроде как все работает
|
|
|
|
|
Jun 1 2012, 08:55
|
Частый гость
 
Группа: Участник
Сообщений: 145
Регистрация: 19-12-07
Пользователь №: 33 422

|
Цитата(Alex11 @ Jun 1 2012, 02:26)  JTAG ноги не переназначаются. Их можно только запретить и назначить как IO. Но тогда останетесь без бластера. Спасибо, теперь вопросов нет. А то квартусовский пинпланер не возражает если JTAG назначить куданить еще, но назанчить и потом прошить и глянуть что выйдет как-то стремновато
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|