Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: помогите с выбором ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Сергей s7
help.gif необходимо организовать внешнюю логику , а конкретнее:
имеется микроконтроллер (16 разрядная шина данных) - необходимо организовать передачу и приём в устройство с 64разрядной шиной
Заранее благодарен за совет
MrYuran
4 регистра-защелки вешаете на свою 16р шину, входы клоков-на 4 дополнительные ноги мк.
Классика жанра.

Так... ещё и приём...

тогда двунаправленные буферы и ещё одна нога мк на DIR
r_dot
Цитата(Сергей s7 @ May 8 2008, 10:56) *
... имеется микроконтроллер (16 разрядная шина данных) - необходимо организовать передачу и приём в устройство с 64разрядной шиной


Только понадобятся и регистры (с третьим состоянием), и буферы, так как наверняка записывать все 64 разряда параллельно надо. А читать можно и по 16 бит. Только вот реализовать это хозяйство лучше программно, иначе понадобится гораздо больше обвески.
Работать это будет просто:
Запись - заполнение четырёх регистров, вывод их из третьего состояния, формирование сигналов записи в 64-разрядное устройство, опять выходы регистров в третье состояние.
Чтение - установка сигналов чтения 64-разрядного устройства, последовательное чтение четырёх буферов (у каждого своя выборка), снятие сигналов чтения.

Схема:
К 16-разрядному порту - входы регистров параллельно и выходы буферов параллельно. К 64-разрядному устройству - выходы регистров и входы буферов.

А вот если у контроллера "16 разрядная шина данных" действительно шина данных, а не двунаправленный порт, то внешняя логика ещё разрастётся. Можно использовать ещё две линии адреса (добавить младшие). Тогда логика будет такая:
При чтении - четыре раза подряд будет читаться один и тот же адрес 64-разрядного устройства, а дешифратором дополнительных двух линий адреса будут выбираться буфера от младшего к старшему слову.
При записи - три младших слова запоминаются в регистрах, а по четвёртому все 64 бита записываются в устройство.
Где-то так. smile.gif
LeonY
Если речь идет об Altera-овских FPGA, то можно использовать FIFO с различной разрядность шин данных (16 <-> 64). Я этим пользовался вполне успешно для преобразования 128 <-> 32 в одном из проектов N лет назад на Stratix-е. Не знаю есть ли что-то подобное у Xilinx, у Actel - точно нет.
Сергей s7
Здравствуйте!
Мне необходимо выбрать ПЛИС для решения следующей задачи:
необходимо принять данные из 8 разрядного двунаправленного порта , передать их на устройство с 64 разрядной шиной данных через которое они идут транзитом и данные , уже прошедшие через устройство обратно в порт
Если у кого есть решения по этому поводу - помогите , оочень надо!
заранее благодарен за помощь!
vetal
epm3218
DmitryR
Если восьмиразрядная шина - это ISA, а 64-разрядная - PCI-X, то нужен Virtex-5LXT или Arria-GX. А если это просто шины - то CPLD в большом будет достаточно. Так что уточните задачу, чтобы получить точный ответ.
Сергей s7
двунаправленный 8 разрядный порт и 64 разрядная шина данных
rezident
Цитата(Сергей s7 @ May 22 2008, 02:18) *
двунаправленный 8 разрядный порт и 64 разрядная шина данных
Вам уже указали что это неполные данные. У двунаправленного порта долен быть как минимум сигнал, управляющий направлением передачи. И на шине данных тоже какие-то управляющие сигналы. Это раз. Во-вторых, какие частоты преполагаются? В-третьих, какие уровни сигналов на этих шинах? В-четвертых, данные нужно передавать синхронно или ПЛИС еще должна выполнять м функцию буфера-синхронизатора обмена?
Если хотите качественный ответ/совет получить, то не играйте в партизанов - сообщайте более полные и подробные исходные данные.
Сергей s7
модуль WoodmanUSB((2 FIFO буфера (входной и выходной). Размер каждого составляет 1024 Байта )) имеет двунаправленный порт , сигналы управления направлением передачи : PB_RD и PB-WR - Линия чтения данных порта и линия записи данных порта соответственно.
При изменении входного уровня с высокого на низкий происходит установка на линии данных порта PORTB текущего байта из входного FIFO буфера модуля (данные из компьютера - IN_FIFO). Теперь возможно чтение этого байта. При переключении обратно на высокий уровень, линии данных возвращаются в исходное состояние, а во входном буфере становится готовым для чтения следующий байт (епри его наличии). При изменении входного уровня с высокого на низкий происходит чтение модулем текущих состояний линий данных порта PORTB и запись полученного байта в выходной FIFO буфер модуля (OUT_FIFO).
PORTB_FF -- (FIFO FULL) Если уровень на этом выводе становится низким, это означает что драйвер не успевает транспортировать данные из модуля при их передаче от внешнего устройства в компьютер через PORTB. Необходимо приостановить передачу данных, пока уровень не вернется в свое исходное состояние - высокий.
PORTB_FNE -- FIFO not EMPTY) Если уровень на этом выводе становится высоким, это означает что компьютер начинает передачу данных и в буфере модуля есть доступные данные для чтения через порт PORTB. Уровень сохраняется высоким, пока IN_FIFO буфер не будет прочтен полностью. При отсутсвии данных уровень низкий.

Частоты - 30 либо 48Мгц - синхронный режим работы модуля с внутренним тактированием
на шине данных управляющих сигналов нет
Сергей s7
может у кого есть подобный пример реализации ?
rezident
Woodman USB говорите? Ну с одной стороны EZ-USB от Кипариса, там сигналы 3.3В, но толерантные по входам к 5В уровням - с этим разобрались. Теперь с другой стороной давайте разбираться. Что это за такая 64-разрядная шина данных, не имеющая сигналов квитирования? Просто сигналы ввода и/или вывода что ли? Что к ним или к чему она будет/должна подключаться?
rezident
Сергей s7, даже если вы и не издеваетесь, то вы явно нарушаете п.3.2 Правил форума, создав два сообщения по одной и той же теме. twak.gif
http://electronix.ru/forum/index.php?showtopic=48085&hl=
Сергей s7
Цитата(rezident @ May 22 2008, 00:48) *
Woodman USB говорите? Ну с одной стороны EZ-USB от Кипариса,


а почему против WoodmanUSB? какие с ним проблемы?
Сергей s7
ок, я понял!
а по поводу издевательств - это зря
Вы сами видите, что подходы к решению задачи различные
если нужно одну тему можно заблокировать
Сергей s7
и всё же - почему против WoodmanUSB? какие с ним проблемы?
rezident
Цитата(Сергей s7 @ May 22 2008, 04:04) *
а почему против WoodmanUSB? какие с ним проблемы?
Почему против? Я лишь уточнил на основе чего сделан этот "неизвестный науке зверь", потому что на сайте никакой документации не нашел, а вы сами не можете ничего вразумительного сказать об электрических характеристиках интерфейса этого модуля. Будем пытку партизана продолжать или где? wink.gif Что там с 64-х разрядной шиной-то?
Сергей s7
Цитата(rezident @ May 22 2008, 16:00) *
а вы сами не можете ничего вразумительного сказать


вот подучусь и буду говорить вразумительно! smile.gif
по поводу шины - это шина законченного устройства. в усройстве идёт постоянный опрос шины на наличие входных данных, т е , если на регистрах , подключенных к шине появляются данные - устройство считывает их и , преобразовав, возвращает обратно на выход шины, откуда они могут быть считаны. Данные через устройство проходят транзитом, 64 разряда пришло, преобразовалось и ушло!
rezident
Цитата(Сергей s7 @ May 23 2008, 04:05) *
в усройстве идёт постоянный опрос шины на наличие входных данных, т е , если на регистрах , подключенных к шине появляются данные
Опять непонятно. Что значит "появляются данные"? Какой-то сигнал индицирует, что данные появились? Или смена состояния сигнала служит признаком "появления" данных?
Цитата(Сергей s7 @ May 23 2008, 04:05) *
устройство считывает их и , преобразовав, возвращает обратно на выход шины, откуда они могут быть считаны.
Стоп! А где на этой шине вход и где выход? Или шина двунаправленная? Тогда какой сигнал управляет ее направлением?
Ну и самое главное, о чем уже вторые сутки пытаюсь узнать: какие по величине (напряжение какое?) электрические сигналы присутствуют на этой "64-х разрядной шине"? В пределах 5В или выше? 3,3В-ые FPGA и CPLD обычно толерантны к 5В входным сигналам. А вот с выходами нужно смотреть внимательно. Вы хоть прозрачно намекните, что за шина-то? И что к ней подключается? Или вообще, что за устройство вы изобретаете?
Сергей s7
( Устройство условно назавём "преобразователь данных" , т.е. в данном случае прослеживается тема защиты информацииsmile.gif)
Шина не двунаправленная - на ней есть вход и есть выход!
Признаком "появления" данных служит сигнал , подаваемый устройством сопряжения ,я так понимаю - непосредственно ПЛИС и будет подавать этот сигнал. По сигналу "преобразователь данных" считывает данные , далее данные преобразовываются и тутже поступают на выход шины.
Сигналы на шине в пределах 5В . Питание "преобразователя данных" от внешнего источника, т.е. либо от ПЛИС либо от модуля USB, следовательно уровни сигналов на ПЛИС и "преобразователе данных" будут одинаковы.
vetal
Просто возьмите и реализуйте вашу логику на hdl. После этого вы увидите какую ПЛИС вам нужно брать.
Сергей s7
Это конечно дельный совет , но есть как всегда одно но!
Это но -мой уровень! Я так скажем - начинающий !
Проект, который я рассматриваю нужно реаоизовать быстро, т е в ближайшую пару дней, а знаний у меня честно говоря недостаточно!
Если кто поможет с реализацией - буду очень благодарен!
rezident
Цитата(Сергей s7 @ May 25 2008, 21:36) *
Сигналы на шине в пределах 5В . Питание "преобразователя данных" от внешнего источника, т.е. либо от ПЛИС либо от модуля USB, следовательно уровни сигналов на ПЛИС и "преобразователе данных" будут одинаковы.
Вы никак не можете осознать важность согласования уровней электрических сигналов. Посему берите какую-нибудь старинную CPLD (XC9500 от Xilinx или MAX7000S от Altera) ну или FPGA с питанием и можете играться в своих партизанов дальше. Только вот тип конкретной ПЛИС можно будет выбрать уже после того, как будет понятен размер прошивки. Т.е. вам нужно сначала создать проект и уже после компиляции выбрать ПЛИС с необходимым количеством пинов и макроячеек или LUTов.
Кстати, а это не ваш ли коллега по "несчастью"? wink.gif Может имеет смысл с ним скооперироваться?
Сергей s7
Цитата(rezident @ May 25 2008, 23:10) *
Кстати, а это не ваш ли коллега по "несчастью"? wink.gif Может имеет смысл с ним скооперироваться?

Что-то общего у нас конечно есть - у меня время тоже жмёт, но поекты то совсем разные!
мне лишь необходимо произвести преобразование 8 битной посылки в 64 битную и всё!
может кто поможет реализовать! Если дело в материальных средствах - договоримся!
XVR
Цитата(Сергей s7 @ May 25 2008, 19:36) *
( Устройство условно назавём "преобразователь данных" , т.е. в данном случае прослеживается тема защиты информации smile.gif )
Шина не двунаправленная - на ней есть вход и есть выход!
Признаком "появления" данных служит сигнал , подаваемый устройством сопряжения ,я так понимаю - непосредственно ПЛИС и будет подавать этот сигнал. По сигналу "преобразователь данных" считывает данные , далее данные преобразовываются и тутже поступают на выход шины.
Сигналы на шине в пределах 5В . Питание "преобразователя данных" от внешнего источника, т.е. либо от ПЛИС либо от модуля USB, следовательно уровни сигналов на ПЛИС и "преобразователе данных" будут одинаковы.
Угу, сухой остаток - шина данных разделенная 2х64 бит, стробы записи и чтения - так?

Плюс еще с десяток ног для 8ми битной шины, итого около 150 ног. Вырисовывается некий монстр в BGA корпусе wacko.gif Ишите девайс подходящий по количеству ног и напряжениям, по ресурсам он похоже подойдет автоматически smile.gif
MrYuran
Цитата(XVR @ May 26 2008, 11:18) *
итого около 150 ног. Вырисовывается некий монстр в BGA корпусе

не обязательно BGA, QFP 208, например
ReedCat
Цитата(Сергей s7 @ May 26 2008, 00:45) *
Что-то общего у нас конечно есть - у меня время тоже жмёт, но поекты то совсем разные!
мне лишь необходимо произвести преобразование 8 битной посылки в 64 битную и всё!
может кто поможет реализовать! Если дело в материальных средствах - договоримся!


В вопросе содержался намёк на то, что "преобразователь 64 бит в 64 бита", а проще "блочный шифратор" cool.gif может быть проще реализовать внутри ПЛИСины,а не занимать ее вопросами согласования с этим "преобразователем". smile.gif cranky.gif

З.Ы. Ключ-то тоже через эту же шину загружать будете? smile.gif
XVR
Цитата(MrYuran @ May 26 2008, 12:27) *
не обязательно BGA, QFP 208, например
То, что у корпуса 208 ног не означает, что к нему можно подключить 208 пользовательских вывода sad.gif Например, Spartan IIIE PQ208 - 158 user I/O, может и не влезть (автор добавит еще ног 10 о которых забыл сказать сразу - и привет cranky.gif )
Сергей s7
Цитата(ReedCat @ May 26 2008, 15:34) *
В вопросе содержался намёк на то, что "преобразователь 64 бит в 64 бита", а проще "блочный шифратор" cool.gif может быть проще реализовать внутри ПЛИСины,а не занимать ее вопросами согласования с этим "преобразователем". smile.gif cranky.gif

З.Ы. Ключ-то тоже через эту же шину загружать будете? smile.gif

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