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

 
 
> Какую ПЛИС выбрать, Вопрос по архитектуре LC
Shivers
сообщение Jun 20 2014, 12:25
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Всем привет!

Есть вопрос. Нужна ПЛИС, у которой в LC есть возможность замкнуть LUT обратной связью. При этом, LUT должен быть минимум 3х3.
Уточню. На LC заходят два входа, идут в LUT. Выход LUT должен 1) с помощью мультиплексоров быть заведен на вход этого LUT, и 2) Иметь выход из LC, минуя триггеры/защелки.
Если в LC есть сразу два LUT, у которых выходы можно завести в обратную связь, в т.ч. и наперекрест, да еще и вывести наружу, было бы вообще шикарно.

Посмотрел наугад несколько зайлинксов и альтер -возможности обратной связи нигде нет. Почему такое не делают, в общем то понятно. Но, а вдруг кто такое видел sm.gif
Спасибо!
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 28)
rloc
сообщение Jun 23 2014, 09:22
Сообщение #16


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Цитата(Shivers @ Jun 23 2014, 12:54) *
FF не нужен.
Нужен асинхронный RS триггер типа latch (классический пример - два NAND2, с заведенными обратными связями крест накрест). Для этого триггера надо задавать Set и Reset таблично, поскольку это могут быть функции 2х и более переменных. И разместить это нужно в одной LC.


Для Xilinx это возможно - один SLICE, из которого задействованы 2 LUT и один FF, но связи внешние (не внутри SLICE).
А вообще, на любой FPGA крайне не желательно делать асинхронные схемы. Подумайте на системном уровне о других вариантах решения.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 23 2014, 09:56
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(rloc @ Jun 23 2014, 13:22) *
Для Xilinx это возможно - один SLICE, из которого задействованы 2 LUT и один FF, но связи внешние (не внутри SLICE).
А вообще, на любой FPGA крайне не желательно делать асинхронные схемы. Подумайте на системном уровне о других вариантах решения.

Вариантов как бы всего два - либо FPGA (есть еще - PAL, но я как то не верю что на нем можно сделать что то больше пары счетчиков), либо кремний (БМК в расчет не беру - смешно). Других опций погонять асинхронные схемы в железе нет. Кремний дорог, ПЛИС .. выяснили. Ну что же, увы
Go to the top of the page
 
+Quote Post
SM
сообщение Jun 23 2014, 11:02
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



А в чем проблема внешних связей то? PAR их разводит корректно, с учетом заданных таймингов. А вроде ничего более и не надо. Ведь работают же себе прототипы ИС, содержащие сотни латчей самых разных видов. Главное, чтобы разводчик понял, что от него хотят. А он, вроде, понимает.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 23 2014, 11:10
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(SM @ Jun 23 2014, 15:02) *
А в чем проблема внешних связей то? PAR их разводит корректно, с учетом заданных таймингов. А вроде ничего более и не надо. Ведь работают же себе прототипы ИС, содержащие сотни латчей самых разных видов. Главное, чтобы разводчик понял, что от него хотят. А он, вроде, понимает.

Проблема асинхронная - таймингов нет, они ведь к частоте привязываются. Т.е. синтезатор не работает. Единственный вариант сделать RS триггер под свои нужды - описать вручную вызов LC с привязкой к архитектуре. При этом очень бы хотелось не выводить наружу обратную связь, потому что обратная связь - узкое место в триггере. В лучшем случае быстродействие будет с мегагерц, в худшем - вообще работать не будет.
Go to the top of the page
 
+Quote Post
SM
сообщение Jun 23 2014, 11:56
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Shivers @ Jun 23 2014, 15:10) *
Проблема асинхронная - таймингов нет, они ведь к частоте привязываются. Т.е. синтезатор не работает.

В порядке бредовой идеи - а если к каждому триггеру для цепи ОС задать пару set_max_delay и set_min_delay ? Ну не руками, естественно, а скриптом каким нибудь.
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 23 2014, 12:34
Сообщение #21


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Вроде предлагал без обратных связей. Да и описывать на уровне примитивов не надо, синтезатор сам выбирает "Latch" в качестве основы RS-триггера, правда использует входы CK и D в качестве set/reset, что впрочем лучше с точки зрения прямой связи LUT с триггером. Похоже топикстартер сам не знает, что нужно.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jun 23 2014, 13:09
Сообщение #22


Универсальный солдатик
******

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



Делал элементарно:
Код
  bit        [15:0]    adda;        // address-data latch
  always_latch
    if (!PLS_N) adda <= ADB;
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 23 2014, 14:25
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(ViKo @ Jun 23 2014, 17:09) *
Делал элементарно:
Код
  bit        [15:0]    adda;        // address-data latch
  always_latch
    if (!PLS_N) adda <= ADB;

Это защелка с разрешением, несколько другое.

Нашел свое счастье, кажется: http://www.xilinx.com/support/documentatio...cs-pdf/lab5.pdf
Мне нужна защелка с первой картинки, но с раздельными LUT на каждом входе. Видимо, это реализуемо.

Код ViKo соответствует картинке на втором листе, это защелка с разрешением.
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 23 2014, 14:37
Сообщение #24


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Метастабильного состояния не будет, один из входов обязательно приоритетный.
Go to the top of the page
 
+Quote Post
yes
сообщение Jun 24 2014, 13:54
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



проблема во всем этом не "быстрая" обратная связь, а "медленная" прямая.

то есть так или иначе все самосинхронные схемы опираются на то, что в цепи req/ack задержка была дольше, чем в функциональной логике.
а в современных ПЛИС трассировка составляет 70% от задержки, а "логика" 30%

то есть: после синтеза нужно получить времянку (я это делал повставляв обычные тактируемые регистры вместо латчей), затем заменить их на латчи, а добавленную цепочку буферов в req/ack разбросать по кристаллу так, чтобы площадь была не меньше, чем у "логики"

после этого добыть времянку сложно - я ничего лучше не нашел, чем добавлять регистры в начало конец и вырезать из полного отчета слака по пути нужные мне куски (гемор еще тот), писал какие-то скрипты и т.п.

практически мне это понадобилось для одной платы (да и то, если честно, хотелось просто такую крутотень воплотить в реальности), в которой поставили такой генератор тактов, который требовал начальной загрузки - в конце концов я остановился на кольцевом генераторе и синхронной схеме - уж слишком геморно было делать на асинхронщине - там нужно было что-то типа задержек (диаграммы) и SPI

с асинхронщиной еще раньше было интересно повозится, "заради концепции", у меня на тот момент было полно разного железа (отходы производства) и альтеры и ксайлинцы, но актел ProASIC3 и его производные (при том что я их не особо люблю для практических задач) по-моему самое то
то что я дал ссылку на asic the book - то просто показать как из мультиплексоров строится логика, а из PA3 tile строится и защелка, и может даже триггер - две защелки (точно не помню уже) - то есть там есть обратные связи, просто там сложная картинка, много элементов. струмент (либеро) позволяет достаточно просто генерить размещения (то есть скриптами, а не руками), без чего, имхо, никак.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 25 2014, 10:22
Сообщение #26


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(yes @ Jun 24 2014, 17:54) *
проблема во всем этом не "быстрая" обратная связь, а "медленная" прямая.

Интересно, спасибо. Я не собирался в хендшейки линии задержек встраивать, но с ПЛИСовыми костылями по другому и не выйдет. Вы ведь понимаете, что линии задержек - это не чистые асинхронные схемы, а скажем так - гибрид? Высчитывать величину задержек для каждого участка .. нее. Мне больше интересно было бы реализовать настоящие асинхронные автоматы, где переключение идет по цепочке и не зависит от задержек. Но такие автоматы сильно привязаны к архитектуре, и на ПЛИС один фиг сделать не получится, видимо. Но вообще, Ваш опыт очень интересен. И что, действительно, на задержках удалось пайплайн запустить? Пробовали греть/морозить микросхему?
Go to the top of the page
 
+Quote Post
yes
сообщение Jun 25 2014, 13:51
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(Shivers @ Jun 25 2014, 14:22) *
Интересно, спасибо. Я не собирался в хендшейки линии задержек встраивать, но с ПЛИСовыми костылями по другому и не выйдет. Вы ведь понимаете, что линии задержек - это не чистые асинхронные схемы, а скажем так - гибрид? Высчитывать величину задержек для каждого участка .. нее. Мне больше интересно было бы реализовать настоящие асинхронные автоматы, где переключение идет по цепочке и не зависит от задержек. Но такие автоматы сильно привязаны к архитектуре, и на ПЛИС один фиг сделать не получится, видимо. Но вообще, Ваш опыт очень интересен. И что, действительно, на задержках удалось пайплайн запустить? Пробовали греть/морозить микросхему?


нет в температуре не проверял.
но нетлист с sdf-ом симулировал, там вроде как крайние температуры

ну и я хотел 8ми битный контроллер типа PIC-а запустить, но самое сложное, что осилил - сумматор с защелками по краям
потом устал sm.gif , возможно, я неправильно организовал процесс - статьей практических не нашел, может как-то проще можно было

для кольцевого генератора смотрели где-то -30 +70, визуально заметно на осциллографе, точно не помню, но раза в полтора быстрее на морозе.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 25 2014, 15:00
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(yes @ Jun 25 2014, 17:51) *
ну и я хотел 8ми битный контроллер типа PIC-а запустить, но самое сложное, что осилил - сумматор с защелками по краям
потом устал sm.gif ,

Задача очень трудоемкая, согласен. В мире асинхронных чипов на задержках по пальцам одной руки можно пересчитать. Самое известное - Филипс в начале 00х сделала и запустила в серию два микроконтроллера по такой технологии: аналог ARM-996 (32бит) и 8051. Остальное - только опытные образцы в исследовательских целях. А на ПЛИС -Вы были бы первым =)
Go to the top of the page
 
+Quote Post
yes
сообщение Jun 26 2014, 11:02
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(Shivers @ Jun 25 2014, 19:00) *
А на ПЛИС -Вы были бы первым =)


это врядли
http://opencores.org/project,aspida

ну и более простых имплементаций находил раньше, по универам и т.п.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 20:52
Рейтинг@Mail.ru


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