|
Параллельная шина внутри ПЛИС, можно ли упростить? |
|
|
|
Jul 25 2016, 08:59
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Есть внешняя шина, подключенная к микроконтроллеру. Внутри ПЛИС к шине подключено несколько устройств. В ПЛИС они объединяются по "или", не смотря, что сигналы описаны с z-состоянием. Потому что внутри ПЛИС таких буферов нет (экзотику обсуждать не предлагаю). Представим 8 16-битовых устройств, и все по "или" объединить. Много логики отъедается. Кстати, я хочу так и описать эту шину, как она реально создается. Если проще не станет, так хотя бы, понятнее. Нет ли иного способа прочитать устройства? Например, медленные читать последовательно? Точно, сковать всех одной цепью!  И по SPI выбросить. А еще как...?
|
|
|
|
|
 |
Ответов
|
Jul 25 2016, 13:23
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(_pv @ Jul 25 2016, 14:52)  daisy chain конечно здорово, но вот если устройств сильно много, частота работы не упрётся во время прохождения через всех подряд?
точнее вопрос даже: как именно это обычно делается в каких-нибудь процессорах когда есть куча memory maped регистров на шине памяти и без z состояния. В ПЛИС для этой цели есть "регистровый файл", который делается из "памяти"... Берем память с раздельными шинами на чтение и запись или двухпортовку, со стороны логики пишем (читаем), со стороны процессора - читаем (пишем)... Дешифрация памяти - встроенная, объем довольно большой... Или скажем берем "двухпортовку", по одной стороне используем небольшую часть как регистры, по другой - используем как остальную память... Или вот так... У Ксайлинкса есть блоки памяти 16х1 из одной ячейки SRL... 16 таких блочков дадут поле 16х16... У более новых - это 64х1... Думаю что 16 регистров - вполне хватит для начала... И это всего 16 логических ячеек... И к ним FSM, который из "регистров модулей" переносит информацию в "регистровый файл". Возможно что при записи потребуется несколько тактов. Но уж зато чтение - быстрое... PS... Просто в этом случае "голову" надо перестроить с ASIC на FPGA... В ASIC там в одном блоке и обработка и регистры... И шин накрутить не проблема...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Jul 25 2016, 14:47
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(iosifk @ Jul 25 2016, 20:23)  В ПЛИС для этой цели есть "регистровый файл", который делается из "памяти"... Берем память с раздельными шинами на чтение и запись или двухпортовку, со стороны логики пишем (читаем), со стороны процессора - читаем (пишем)... Дешифрация памяти - встроенная, объем довольно большой... Или скажем берем "двухпортовку", по одной стороне используем небольшую часть как регистры, по другой - используем как остальную память... Или вот так... У Ксайлинкса есть блоки памяти 16х1 из одной ячейки SRL... 16 таких блочков дадут поле 16х16... У более новых - это 64х1... Думаю что 16 регистров - вполне хватит для начала... И это всего 16 логических ячеек... я про, например, регистры различной периферии, которой может быть довольно много, килобайты, то есть наружу оно должно торчать как регистры, а процессору - как область памяти на общей шине с остальной нормальной памятью. как тут поможет двух портовая память? не будут же например два различных порта IO, или какой-нибудь уарт чтобы данные из своего регистра прочитать/записать драться за доступ к второму порту шине памяти которая к ним смотрит.
|
|
|
|
Сообщений в этой теме
ViKo Параллельная шина внутри ПЛИС Jul 25 2016, 08:59 iosifk Цитата(ViKo @ Jul 25 2016, 11:59) Есть вн... Jul 25 2016, 09:05 ViKo Цитата(iosifk @ Jul 25 2016, 12:05) Снача... Jul 25 2016, 09:19 ViKo Цитата(des00 @ Jul 25 2016, 12:52) Xilinx... Jul 25 2016, 10:11   ViKo Цитата(iosifk @ Jul 25 2016, 16:23) В ПЛИ... Jul 25 2016, 13:37    iosifk Цитата(ViKo @ Jul 25 2016, 16:37) Чтобы п... Jul 25 2016, 13:46     ViKo Цитата(iosifk @ Jul 25 2016, 16:46) Вопро... Jul 25 2016, 13:58      RobFPGA Приветствую!
Цитата(ViKo @ Jul 25 2016, ... Jul 25 2016, 14:31       iosifk Цитата(RobFPGA @ Jul 25 2016, 17:31) Если... Jul 25 2016, 15:46 ViKo В FLEX10 были цепи Cascade, позволяющие объединять... Jul 25 2016, 16:00 RobFPGA Приветствую!
Цитата(ViKo @ Jul 25 2016, ... Jul 25 2016, 16:35
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|