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

 
 
> Какую ПЛИС выбрать, Вопрос по архитектуре 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
Ответов (1 - 28)
rloc
сообщение Jun 20 2014, 13:17
Сообщение #2


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

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



Цитата(Shivers @ Jun 20 2014, 16:25) *
Посмотрел наугад несколько зайлинксов и альтер -возможности обратной связи нигде нет.

Обратная связь возможна, но внешними (по отношению к LC) цепями.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 20 2014, 13:35
Сообщение #3


Знающий
****

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



Цитата(rloc @ Jun 20 2014, 17:17) *
Обратная связь возможна, но внешними (по отношению к LC) цепями.

Это понятно sm.gif Но я спрашивал - про связи внутри LC
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 20 2014, 13:38
Сообщение #4


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

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



Зачем? Это противоречит здравому смыслу с точки зрения производителя.
Go to the top of the page
 
+Quote Post
yes
сообщение Jun 20 2014, 13:45
Сообщение #5


Гуру
******

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



это для самосинхронных схем нужно, что-ли?

такой обратной связи в LC нет по определению - даже средства синтеза на такое ругается, то есть сама идея современного плисостроения считает такую связь порочной.

я использовал для самосинхронных схем актеловские проазики - там 3х входовые луты (вернее некая фигня, tile, которая может быть сконфигурена либо в триггер, либо в логику - реализовано на мультиплексорах) и можно сделать детерменированый путь быстрее чем остальные
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 20 2014, 13:52
Сообщение #6


Знающий
****

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



Цитата(yes @ Jun 20 2014, 17:45) *
я использовал для самосинхронных схем актеловские проазики - там 3х входовые луты (вернее некая фигня, tile, которая может быть сконфигурена либо в триггер, либо в логику - реализовано на мультиплексорах) и можно сделать детерменированый путь быстрее чем остальные

Спасибо за совет!

Да, мне это нужно для экспериментов с нестандартными триггерами и латчами, и в частности - С-элемент хотелось бы тоже сделать.
Вопрос - тот же 2-входовой С-элемент сколько этих tile требует?

Вообще, tile это круто. Название, возможно, говорит о NOC-архитектуре. Надо присмотреться к актелям поближе
p.s. и подвопрос -сколько может потребоваться tile для простой RS защелки на, скажем, двух NAND2?
Go to the top of the page
 
+Quote Post
yes
сообщение Jun 20 2014, 15:21
Сообщение #7


Гуру
******

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



ну я давно этим занимался
введение вроде тут
http://www10.edacafe.com/book/ASIC/CH05/CH05.1.php

С по моему на одном можно (не уверен), я делал некий конвеер, без явного С элемента

RS - по-моему одна, но если explicit NAND2 то 2

в актелях проблемы - очень хреново сложная логика, скорость (задержка) от сложности, зависит как у студента финансы после степендии sm.gif - чем дальше, тем хуже.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 20 2014, 20:07
Сообщение #8


Знающий
****

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



Редкий какой изврат они народили! Наверное, кто то пару докторских защитил, если авторы серьезно считают, что кучка мультиплексоров может заменить старый добрый LUT. Но, им виднее. К несчастью, обратные связи опять же отсутствуют внутри LC. Но судя по всему, ничего лучше я не наду.
Я так понимаю, мне из всего подходит только ACT1. Для RS триггера с прямым и инверсным выходом нужно два tile. Для С-элемента .. надо считать, но скорее всего так же два.

Проблема обратных связей в ПЛИС была и есть - их делают мало. Если передать сигнал от LC к другой LC занимает 1-2 задержки ключа, то роутинг в обратную связь - минимум в два раза больше, а то и в четыре. А что хуже всего, это ресурсы - на обратные связи линий не так много закладывается, ресурсы очень быстро сжираются. В Актеле, может ситуация обстоит лучше, буду пробовать. Еще раз, спасибо!
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 23 2014, 06:06
Сообщение #9


Знающий
****

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



Изучил доки на актель, RS триггер на двух ACT1 можно сделать. А С-элемент теоретически на одном, но работать почти наверняка не будет. Использовать две АСТ1 с перекрестными обратными связями - тоже сомнительно что будет работать. В общем, актель не подходит, видимо

Пожалуй, вопрос надо перефразировать:

Подскажите ПЛИС, в которой есть RS триггер в LC?

Иногда встречаются D-триггеры c асинхронным Set и Reset, но как правило эти сброс/установки являются региональными, т.е. много самостоятельных RS триггеров так не получишь.
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 23 2014, 06:17
Сообщение #10


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

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



Цитата(Shivers @ Jun 23 2014, 10:06) *
много самостоятельных RS триггеров так не получишь.

В пределах одной структуры, например SLICE у Xilinx, больше одного RS-триггера нельзя.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 23 2014, 06:34
Сообщение #11


Знающий
****

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



Цитата(rloc @ Jun 23 2014, 10:17) *
И в Altera и в Xilinx нет ограничений. Один из входов set/reset приоритетный.

У Альтеры одновременно Set и Reset только в старых Flex/Apex сериях были, кажется. Циклоны и стратиксы я смотрел вроде все, не видел такого.
Не подскажете конкретную серию?
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 23 2014, 07:17
Сообщение #12


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

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



Триггер устанавливается в режиме "Latch", на вход D - "0" или "1", СK и SR - входы set/reset
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 23 2014, 07:48
Сообщение #13


Знающий
****

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



Цитата(rloc @ Jun 23 2014, 11:17) *
Триггер устанавливается в режиме "Latch", на вход D - "0" или "1", СK и SR - входы set/reset

Скачал доку (>link<) на CLB в 6м виртексе, про режим защелки почти ничего не сказано. Спасибо за инфу.

Проблема в том, что CK и RS - региональные, судя по доке. Меня даже компоновка в виде SLICE бы устроила, лишь бы Set и Reset задавались индивидуальными LUT. А в таком виде на один RS триггер нужно два SLICE: в одном функции сброса и установки с помощью LUT, а в другом одна защелка.

Спасибо за ответы

Видимо, ничего подходящего найти не удастся. Классика жанра, RS триггер, практически не реализуем в современных ПЛИС
Go to the top of the page
 
+Quote Post
rloc
сообщение Jun 23 2014, 08:22
Сообщение #14


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

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



Сложно понять что Вам хочется. На SR и CK могут подаваться и локальные сигналы. Один FF, даже без привлечения LUT, что может быть проще?
Go to the top of the page
 
+Quote Post
Shivers
сообщение Jun 23 2014, 08:54
Сообщение #15


Знающий
****

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



Цитата(rloc @ Jun 23 2014, 12:22) *
Сложно понять что Вам хочется. На SR и CK могут подаваться и локальные сигналы. Один FF, даже без привлечения LUT, что может быть проще?

FF не нужен.
Нужен асинхронный RS триггер типа latch (классический пример - два NAND2, с заведенными обратными связями крест накрест). Для этого триггера надо задавать Set и Reset таблично, поскольку это могут быть функции 2х и более переменных. И разместить это нужно в одной LC.
Go to the top of the page
 
+Quote Post
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 Текстовая версия Сейчас: 19th July 2025 - 21:23
Рейтинг@Mail.ru


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