реклама на сайте
подробности

 
 
> bidirectional I/O, имитация внешнего проводника внутри FPGA
qwqw
сообщение Apr 6 2006, 10:21
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



на промежуточном этапе понадобилось внутри Spartan'a соединить 2 ноги, обе двунаправленные,
тоесть имитировать обычный проводник на ПП
Возможно ли это в принципе?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
andrew_b
сообщение Apr 6 2006, 10:23
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(qwqw @ Apr 6 2006, 13:21) *
напромежуточном этапе понадобилось внутри Spartan'a соединить 2 ноги, обедвунаправленные,
тоесть имитировать обычный проводник на ПП
Возможно ли это в принципе?

В принципе, возможно, если управлять направлением. Делается натристабильных буферах, если они есть внутри FPGA, а не только в IOB'ах.
Go to the top of the page
 
+Quote Post
qwqw
сообщение Apr 6 2006, 10:30
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



не совсем понял, как управлять переключением.
Задача полностью имитировать внешний проводник,
сигналы на обоих его концах двунаправленные, с третим состоянием (сигналы PCI)
Go to the top of the page
 
+Quote Post
DS
сообщение Apr 6 2006, 10:54
Сообщение #4


Гуру
******

Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250



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


--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
Go to the top of the page
 
+Quote Post
oval
сообщение Apr 6 2006, 13:59
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(qwqw @ Apr 6 2006, 14:21) *
на промежуточном этапе понадобилось внутри Spartan'a соединить 2 ноги, обе двунаправленные,
тоесть имитировать обычный проводник на ПП
Возможно ли это в принципе?

В принципе возможно, если в Вашем семействе Spartan'а имеются внутренние линии с тремя состояниями. Возможно придется организовать еще один более высокий уровень иерархии проекта, чтобы там и организовать эту самую двунаправленную связь. Также некоторые средства синтеза по умолчанию преобразуют локальные (внутренние) двунаправленные шины в обычные однонаправленные. Чтобы в действительности получить внутреннюю двунаправленную шину (сигнал), возможно потребуется задать некоторые специфические атрибуты синтезатора. Кроме того, обычно внутренние шины кристалла "подтянуты" к питанию или земле.
Go to the top of the page
 
+Quote Post
vladec
сообщение Apr 6 2006, 15:33
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



В принципе невозможно переключать сигнал по значению самого сигнала. Вне зависимости от наличия тристабильных буферов внутри кристалла.
Go to the top of the page
 
+Quote Post
Iouri
сообщение Apr 7 2006, 12:29
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 364
Регистрация: 11-07-05
Пользователь №: 6 707



и да и нет. описать в хдл файле нет проблем, сдругой сторы как это
имплиментируется зависит от фпга и компалера. если это только для
модели то вперед, если для реального железа то советую подумать
удачи
Go to the top of the page
 
+Quote Post
beg
сообщение Apr 7 2006, 15:35
Сообщение #8


Участник
*

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



Делал внутренние двунаправленные шины на Virtex, без проблем.
Go to the top of the page
 
+Quote Post
oval
сообщение Apr 7 2006, 15:44
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(beg @ Apr 7 2006, 19:35) *
Делал внутренние двунаправленные шины на Virtex, без проблем.

Аналогично, на VirtexII, тоже без проблем wink.gif
Go to the top of the page
 
+Quote Post
Gate
сообщение Apr 7 2006, 17:59
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



Цитата(oval @ Apr 7 2006, 19:44) *
Цитата(beg @ Apr 7 2006, 19:35) *

Делал внутренние двунаправленные шины на Virtex, без проблем.

Аналогично, на VirtexII, тоже без проблем wink.gif

Без управляющего сигнала, задающего направление передачи? Задача ведь стоит "полностью имитировать внешний проводник".
По-моему, часть авторов прочитала цитату, которая в кавычках, а часть авторов ее пропустила. Или у виртекса действительно такие чудесные буфера на пинах?


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post
beg
сообщение Apr 7 2006, 20:17
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 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 имеют десятки килоом, поэтому с ними тактов можно потерять гораздо больше.
Go to the top of the page
 
+Quote Post
oval
сообщение Apr 8 2006, 09:57
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 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, тоже без проблем wink.gif

Без управляющего сигнала, задающего направление передачи? Задача ведь стоит "полностью имитировать внешний проводник".
По-моему, часть авторов прочитала цитату, которая в кавычках, а часть авторов ее пропустила. Или у виртекса действительно такие чудесные буфера на пинах?


Я уже чего-то совсем ничего не понимаю sad.gif

Берете два блока, каждый из которых имеет по порту типа inout, соединяете эти порты сигналом, получаете двунаправленную шину. Все управление третьим состоянием заключено внутри блоков. Другой вариант, если буферы двунаправленных сигналов внешние по отношению к блокам (или единому блоку): создаем отдельную архитектуру верхнего уровня, в ней сохраняем все технологические буферы, кроме тех двунаправленных буферов, которые относятся к эмулируемому проводнику. Вместо них HDL текстом описываем двунаправленную локальную шину, то есть организуем два буфера с тремя состояниями: один для сигналов (AIn, AOut, AEn), второй для сигналов (BIn, BOut, BEn).

Вообщем, логически повторить поведение проводника, проблемы не вижу smile.gif
Go to the top of the page
 
+Quote Post
Gate
сообщение Apr 8 2006, 11:06
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



Oval,
думаю, что Вы ошибаетесь. Двунаправленный буфер в fpga - это входной буфер объединенный с выходным (с z-состоянием). Этим вых. буфером надо управлять.
Еще синтезатор очень часто внутренние шины с z превращает в мультиплексор. Хотя, насколько я помню, у какого-то виртекса были внутренние буфера с z, но вроде в последующих сериях от них отказались, т.к. они очень медленные. Знающие xilinx да поправят меня.


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post
makc
сообщение Apr 8 2006, 11:40
Сообщение #14


Гуру
******

Группа: Админы
Сообщений: 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
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
oval
сообщение Apr 8 2006, 13:22
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(Gate @ Apr 8 2006, 15:06) *
Oval,
думаю, что Вы ошибаетесь. Двунаправленный буфер в fpga - это входной буфер объединенный с выходным (с z-состоянием). Этим вых. буфером надо управлять.

Думаю, вряд-ли я ошибаюсь. smile.gif Из чего состоят двунаправленные буфера, я знаю и понимаю. Надо управлять, не вопрос, будем управлять, как я описал выше. smile.gif

Цитата
Еще синтезатор очень часто внутренние шины с z превращает в мультиплексор.

Да, совершенно верно. Но этим процессом зачастую можно управлять с помощью специальных атрибутов синтеза.

Цитата
Хотя, насколько я помню, у какого-то виртекса были внутренние буфера с z, но вроде в последующих сериях от них отказались, т.к. они очень медленные. Знающие xilinx да поправят меня.

Да, не во всех семействах FPGA Xilinx есть возможность организовать внутренние шины с тримя состояниями.

Так вот, логическое НОРМАЛЬНОЕ поведение структуры IOB и внешнего проводника можно повторить, используя внутренние буфера с тримя состояниями. Естественно, электрические проблемы (платы, соединения и т. п.) повторить таким образом не удасться. Например, можно с эмулировать логическое соединение PCI мастера(ов) и PCI слэйва(ов) внутри FPGA, то есть создать виртуальную PCI шину. Подчеркиваю, что речь идет об эмуляции логики работы шины PCI.

P.S. Как я понял автора темы, у него стояла некоторая подобная задача. Возможно, для отладки.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th June 2025 - 15:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.0149 секунд с 7
ELECTRONIX ©2004-2016