|
bidirectional I/O, имитация внешнего проводника внутри FPGA |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Apr 6 2006, 13:59
|
Местный
  
Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367

|
Цитата(qwqw @ Apr 6 2006, 14:21)  на промежуточном этапе понадобилось внутри Spartan'a соединить 2 ноги, обе двунаправленные, тоесть имитировать обычный проводник на ПП Возможно ли это в принципе? В принципе возможно, если в Вашем семействе Spartan'а имеются внутренние линии с тремя состояниями. Возможно придется организовать еще один более высокий уровень иерархии проекта, чтобы там и организовать эту самую двунаправленную связь. Также некоторые средства синтеза по умолчанию преобразуют локальные (внутренние) двунаправленные шины в обычные однонаправленные. Чтобы в действительности получить внутреннюю двунаправленную шину (сигнал), возможно потребуется задать некоторые специфические атрибуты синтезатора. Кроме того, обычно внутренние шины кристалла "подтянуты" к питанию или земле.
|
|
|
|
|
Apr 7 2006, 15:35
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 11-06-05
Из: М. О.
Пользователь №: 5 926

|
Делал внутренние двунаправленные шины на Virtex, без проблем.
|
|
|
|
|
Apr 7 2006, 17:59
|
Знающий
   
Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943

|
Цитата(oval @ Apr 7 2006, 19:44)  Цитата(beg @ Apr 7 2006, 19:35)  Делал внутренние двунаправленные шины на Virtex, без проблем.
Аналогично, на VirtexII, тоже без проблем  Без управляющего сигнала, задающего направление передачи? Задача ведь стоит "полностью имитировать внешний проводник". По-моему, часть авторов прочитала цитату, которая в кавычках, а часть авторов ее пропустила. Или у виртекса действительно такие чудесные буфера на пинах?
--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
|
|
|
|
|
Apr 7 2006, 20:17
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 11-06-05
Из: М. О.
Пользователь №: 5 926

|
Цитата(Gate @ Apr 7 2006, 21:59)  Без управляющего сигнала, задающего направление передачи? Задача ведь стоит "полностью имитировать внешний проводник". По-моему, часть авторов прочитала цитату, которая в кавычках, а часть авторов ее пропустила. Или у виртекса действительно такие чудесные буфера на пинах? Само собой, делал с управлением. А задача "полностью имитировать внешний проводник" здесь, очевидно возникла из - за нежелания терять 1-2 такта на переключение направления. Думаю, что для сигналов типа t/s и s/t/s без этого не обйтись, разве что провод припаять. Для сигналов типа o/d можно попытаться использовать буферы IOBUF. На входы T буферов перекрестно подать инверсии выходов O, входы I - на gnd. Потребуются подтягивающие резисторы. Встроенные pull-ups имеют десятки килоом, поэтому с ними тактов можно потерять гораздо больше.
|
|
|
|
|
Apr 8 2006, 09:57
|
Местный
  
Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367

|
Цитата(Gate @ Apr 7 2006, 21:59)  Цитата(oval @ Apr 7 2006, 19:44)  Цитата(beg @ Apr 7 2006, 19:35)  Делал внутренние двунаправленные шины на Virtex, без проблем.
Аналогично, на VirtexII, тоже без проблем  Без управляющего сигнала, задающего направление передачи? Задача ведь стоит "полностью имитировать внешний проводник". По-моему, часть авторов прочитала цитату, которая в кавычках, а часть авторов ее пропустила. Или у виртекса действительно такие чудесные буфера на пинах? Я уже чего-то совсем ничего не понимаю  Берете два блока, каждый из которых имеет по порту типа inout, соединяете эти порты сигналом, получаете двунаправленную шину. Все управление третьим состоянием заключено внутри блоков. Другой вариант, если буферы двунаправленных сигналов внешние по отношению к блокам (или единому блоку): создаем отдельную архитектуру верхнего уровня, в ней сохраняем все технологические буферы, кроме тех двунаправленных буферов, которые относятся к эмулируемому проводнику. Вместо них HDL текстом описываем двунаправленную локальную шину, то есть организуем два буфера с тремя состояниями: один для сигналов (AIn, AOut, AEn), второй для сигналов (BIn, BOut, BEn). Вообщем, логически повторить поведение проводника, проблемы не вижу
|
|
|
|
|
Apr 8 2006, 11:40
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(Gate @ Apr 8 2006, 15:06)  Oval, думаю, что Вы ошибаетесь. Двунаправленный буфер в fpga - это входной буфер объединенный с выходным (с z-состоянием). Этим вых. буфером надо управлять. Еще синтезатор очень часто внутренние шины с z превращает в мультиплексор. Хотя, насколько я помню, у какого-то виртекса были внутренние буфера с z, но вроде в последующих сериях от них отказались, т.к. они очень медленные. Знающие xilinx да поправят меня. Еще BUFT были у Spartan-2. А вот у Spartan-3 их нет... Для него синтезатор, действительно, делает мультиплексоры.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
Apr 8 2006, 13:22
|
Местный
  
Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367

|
Цитата(Gate @ Apr 8 2006, 15:06)  Oval, думаю, что Вы ошибаетесь. Двунаправленный буфер в fpga - это входной буфер объединенный с выходным (с z-состоянием). Этим вых. буфером надо управлять. Думаю, вряд-ли я ошибаюсь.  Из чего состоят двунаправленные буфера, я знаю и понимаю. Надо управлять, не вопрос, будем управлять, как я описал выше.  Цитата Еще синтезатор очень часто внутренние шины с z превращает в мультиплексор. Да, совершенно верно. Но этим процессом зачастую можно управлять с помощью специальных атрибутов синтеза. Цитата Хотя, насколько я помню, у какого-то виртекса были внутренние буфера с z, но вроде в последующих сериях от них отказались, т.к. они очень медленные. Знающие xilinx да поправят меня. Да, не во всех семействах FPGA Xilinx есть возможность организовать внутренние шины с тримя состояниями. Так вот, логическое НОРМАЛЬНОЕ поведение структуры IOB и внешнего проводника можно повторить, используя внутренние буфера с тримя состояниями. Естественно, электрические проблемы (платы, соединения и т. п.) повторить таким образом не удасться. Например, можно с эмулировать логическое соединение PCI мастера(ов) и PCI слэйва(ов) внутри FPGA, то есть создать виртуальную PCI шину. Подчеркиваю, что речь идет об эмуляции логики работы шины PCI. P.S. Как я понял автора темы, у него стояла некоторая подобная задача. Возможно, для отладки.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|