Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Базис И-ИЛИ-НЕ в ПЛИС возможен?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
AntiLL
Доброго времени суток, уважаемые форумчане!

Нужна Ваша помощь. Нам требуется выяснить, существуют ли в природе ПЛИСы, в базисе которых есть элементы И-ИЛИ-НЕ. Элемент И-ИЛИ-НЕ является одним из базовых элементов для построения особых самосинхронных схем, а его многокаскадная реализация на элементах И-НЕ и ИЛИ-НЕ не приемлема в виду длинных связей между каскадами. А насколько мне известно большинство ПЛИС реализуется именно на элементах И-НЕ и ИЛИ-НЕ. Хотелось бы услышать Ваше авторитетное мнение по данному вопросу. Особенно интересует подобная реализация в ПЛИС Altera. Для большей наглядности высылаю скриншот того что требуется реализовать (вариант под буквой "а" подходит, под буквой "б" - не подходит).

Жду Вашего ответа. Заранее спасибо.
andrew_b
Цитата(AntiLL @ Feb 26 2008, 15:41) *
А насколько мне известно большинство ПЛИС реализуется именно на элементах И-НЕ и ИЛИ-НЕ.
Грубо говоря, основной логический элемент ПЛИС -- это таблица (LUT) с числом входов от 4 до 6. На одной такой таблице реализуется любая логическая функция 4 (5, 6) переменных. Кроме того, её можно сконфигурировать как RAM или как сдвиговый регистр.
Boris_TS
Судя по вопросу, AntiLL с ПЛИС не работал, поэтому начну несколько из далека.

ПЛИС делятся на 2 группы CPLD и FPGA. У каждой из этих архитектур свои способы реализации логики.

У FPGA логика реализуется на таблицах истинноти (LookUpTable), в зависимости от семейства/производителя количество входов варьируется от 4 до 6 (в явном виде никаких элементов И-НЕ или ИЛИ-НЕ - просто нет).

В большинстве CPLD используется вариант AND-OR-XOR, например
в Xilinx XC9500 - (4 элемента AND) - OR - XOR (двух входжовой)
в Xilinx XPLA3 - (до 40 элементов AND) - OR - XOR (двух входжовой)

Посмотрите смледующуб документаци и надеюсь Вы найдете все ответы на ваши вопросы:

http://www.xilinx.com/support/documentatio...heets/DS063.pdf - XC9500
http://www.xilinx.com/support/documentatio...heets/ds012.pdf - CoolRunner (XPLA3)
http://www.xilinx.com/support/documentatio...heets/ds090.pdf - CoolRunner II

У Alter'ы точно есть аналог XC9500, а вот аналогов CoolRunner помоему нет, хотя я могу и ошибаться - пусть уточнят те, кто работает с Alter'овскими CPLD.

На мой взгляд, на ПЛИС лучше вообще-то делать синхронные решения,.. т.к. крайне затруднительно отлаживать схемы с "памятью" собранные только на логических элементах - в ПЛИС осциллографом не залезешь, а ножки ввода/вывода в большинстве случаев не способны выдать наружу высокочастотные glitch'и прочие бякости, коие могут присутствовать в таких асинхронных схемах.

P.S.
То, что изображено на Вашем рисунке, на мой взгляд, собранное на одном LUT - работать будет. Но вам же хочется именно AND-OR, а это ближе к CPLD.
И учтите: в ПЛИС задержка связей "выход-вход" сравнима с быстродействием логических элементов !
Шурила
Цитата(AntiLL @ Feb 26 2008, 14:41) *
Для большей наглядности высылаю скриншот того что требуется реализовать (вариант под буквой "а" подходит, под буквой "б" - не подходит).

То что показано есть обычный RS триггер, в состояние 1 -> 1+1, состояние 0 -> 0+0, т.е. промежуточные состояния входов игнорируются. Из сказанного не понятно почему под буквой "б" - не подходит, с точки зрения логики полный аналог!
так что нужно - реализовать G - триггер? да можно!
AntiLL
Огромное спасибо за ответы. С ПЛИС у меня опыту работы на самом деле не так много как хотелось бы поэтому и интересуюсь...

То что с точки зрения логики G-триггер реализовать реально, это понятно. Но проблема заключается в том, что этот G-триггер должен быть однокаскадным, то есть внутри этого элемента не должно быть "гонок" сигналов. В случае как на рисунке под "б" там реализация многокаскадная - поэтому "гонки" возможны.

Цитата
Однокаскадным наывается элемент, перезаряд выходной емкости которого осуществляется только через транзисторы с затворами, соединенными с его входными сигналами. К его выходу может быть подключено любое число последовательно включенных элементов НЕ, что удовлетворяет требованию индуцируемости.


Цитата
Любой однокаскадный элемент со стандартным (с двумя состояниями) выходом отвечает требованию индицируемости, а однокаскадная реализация индикаторов является необходимым условием реализации. Теоретически и практически доказано, что корректные индикаторные элементы нельзя построить на упрощенном базисе И-НЕ и ИЛИ-НЕ - необходим базис И-ИЛИ-НЕ.


Вообще, это разработка наших ученых из РАН. Самосинхронные схемы, а точне строго-самосинхронные схемы (ССС-схемы), обладают сверхвыскокой надежностью, потребляют мало энергии, не используют тактовых генераторов и их поведение не зависит от задержек элементов. По сути такие схемы не зависят от внешних условий в которых они работают. Начинал разрабатывать это все хозяйство еще Варшавский, заканчивают вот они. У меня перед носом лежит статья в которой говориться о том что такие схемы невозможно реализовать на ПЛИС, в виду многокаскадности реализации G-триггера. Опытные образцы были реализованны на БМК в Зеленограде. Но реально вопрос остался открытым, поэтому я бы хотел прояснить что к чему. Ведь есть асинхронные ПЛИСы, представления о которых я не имею почти совсем. smile.gif
Пока вопрос для меня открытый...

CPLD как я понял включают в себя И -ИЛИ -НЕ в своей матрице, но они все таки также являются многокаскадными.. Тоже самое в FPGA.. Или я ошибаюсь?

Все это я Вам пишу с разрешения авторов, так как даже у автора статьи есть сомнения по поводу того что он забраковал ПЛИС для реализации таких схем. Если у кого то есть интерес к этим схемам пишите в личку, поделюсь информацией.
vetal
Какова цель данного вопроса?
Если нужно сделать рабочую реализацию - используйте для построения d и rs триггеры как ячейки памяти.
Если иное - ни fpga, ни cpld не предназначены для построения асинхронных схем, выходящих за рамки базовых примитивов.
CaPpuCcino
Цитата(AntiLL @ Feb 27 2008, 21:13) *
CPLD как я понял включают в себя И -ИЛИ -НЕ в своей матрице, но они все таки также являются многокаскадными.. Тоже самое в FPGA.. Или я ошибаюсь?

Все это я Вам пишу с разрешения авторов, так как даже у автора статьи есть сомнения по поводу того что он забраковал ПЛИС для реализации таких схем. Если у кого то есть интерес к этим схемам пишите в личку, поделюсь информацией.

давайте, может сразу ссылку на статью, а то меня начинают терзать смутные сомнения
ТИ:вообще говоря несмотря на то, что БМК и непосредственный предок ФПГА, но применительно к вашей проблеме они существенно разные вещи: ФПГА - стандартная ИС, а БМК - полузаказная; если для БМК вы имеете некоторую свободу в выборе наполнителя регулярной ячейки, то ФПГА производятся как микропроцессоры миллионными партиями и состав ячейки и матрица соединений пропаяны железно и согласно текущему этапу эволюции в данном конкретном классе ИС (ФПГА). т.е. для ячейки характерно типовой генератор функции как правило на мультиплексоре или ЛУТ и элемент памяти. для CPLD процесс производства аналогичен - это стандартная ИС (принцип.разница с ФПГА только в архитектуре системы межсоединений)
Boris_TS
Цитата(AntiLL @ Feb 27 2008, 21:13) *
С ПЛИС у меня опыту работы на самом деле не так много как хотелось бы поэтому и интересуюсь...

Коли есть опыт работы с ПЛИС, то опишите свою схему, скомпилируйте её и запустите POSTFIT/POST Place&Route симуляцию и погоняйте схемку. Посмотрите как легла ваша логика в кристале: Для FPGA удавите ее в один LUT, для CPLD убедитесь, что схема впшего G-триггера реализованна в одном MacroCell.
При не POSTFIT/POST Place&Route симуляции симуляторы не могут коректно учитывать задержки связей, поэтому и результат бывает неверный. Еще раз обращу внимание на существеннось задержек в матрице соединений любого семейства ПЛИС, чего в БМК нет.

Могу ошибать, но и в случае б) схемы G-триггера все будет работать нормально, при "достаточно длинных" импульсах на входе. Также думаю можно подобрать последовательность коротких импульсов, который и схему а) загонят в "неправильное" состояние. Так, что присрвокупите к вышезапрошенной статье еще и временные диаграммы, на которых показан случай устойчивой работы схема а) и неудовлетворительной работы схемы Б), а то меня тоже начинают терзать темные сомнения...
AntiLL
Цитата
Если иное - ни fpga, ни cpld не предназначены для построения асинхронных схем, выходящих за рамки базовых примитивов.

В том то и суть вопроса, что единственный особенный элемент это однокаскадный G-триггер. Если бы этот триггер можно было реализовать, то подобные схемы можно было бы реализовывать на ПЛИСах, и это было бы супер. Все упирается только в этот G-тригер.


Вот с разрешения атворов разместили статью.

http://2301.ru/articles/circuits/full/268.shtml

Почитайте, даже просто для саморазвития, думаю будет интересно. Ну и заодно глядишь и нам поможете =)

Суть проблемы - избавить G-триггер от "гонок" сигналов в нем. В однокаскадной реализации время его переключения определяется, в основном, временем перезаряда его выходной емкости (для МДП –технологии изготовления микросхем).
vetal
Вам ведь никто не мешает взять и реализовать smile.gif
Схема реализуется на встроенном LUT, а дальше - исследуйте.
Leka
Цитата(AntiLL @ Mar 6 2008, 22:18) *
...Все упирается только в этот G-тригер...

Допустим, G-триггер у нас есть, но - длина входных/выходных проводов по километру - сохранится свойство "индикаторности"?
AntiLL
Цитата
Допустим, G-триггер у нас есть, но - длина входных/выходных проводов по километру - сохранится свойство "индикаторности"?

Да, свойство сохранится. В чем и вся прелесть в этих схемах, хоть какие линии связи делай, а схемы обладают всеми свойствами асинхронности, то есть их не надо ориентировать на худший случай (подгонять такт) в данных условиях работы, а они всегда работают по тому физическому максимуму который для них доступен. И от длины связей это не зависит, схема отреагирует только тогда когда все сигнали придут, все гонки закончаться.

Народ, а кто нибудь слышал что-нибудь про так называемые self-timed fpga?
AMagleli
Цитата(AntiLL @ Mar 8 2008, 02:16) *
Народ, а кто нибудь слышал что-нибудь про так называемые self-timed fpga?


http://www.achronix.com/

Эти ребята, похоже, занимаются чем-то подобным.
dvladim
Цитата(AMagleli @ Mar 14 2008, 13:12) *
Эти ребята, похоже, занимаются чем-то подобным.

А кто-нибудь в курсе чем они занимаются?
По температурному диапазону, напряжениям и частотам - это прорыв.
Интересно что у них по потреблению и логической емкости.

Кто-нибудь видел их схемы, патенты, даташиты, софт? Может и схемотехнику кто-нибудь знает?
Kostos
Странно, но судя по всему - 2ГГц, это проджект а не реализованный прототип (1.93GHz в эквиваленте к "обычным" тактируемым FPGA в начале 2006го года, температурный диапазон -196..+130 по словам John Lofton Holt, CEO achronix в том же 2006м году), после того много воды утекло. И.. реализованный в промышленных масштабах образец - это производство BAE,- 150nm/350MGz в конце 2007го (и тут же пишут что тот же уровень производительности в 2GHz) . Новостей у них немного, секретничают.

В плюс записали себе, что избавились от троирования как средства обеспечения надежности, из статьи не ясно как этого добились,- кто знает, может это собственно BAE так свою технологию защиты от радиации построила. И троирование применяется, но уже не на этапе проектирования и программирования FPGA.

Информация о том, что из себя они представляют пишут - фирма без собственного производства нацеленная на разработку таких вот суперFPGA.

Свой первый образец они разместили с помощью MOSIS на фабрике TSMC по 180nm технологии, интересный момент - MOSIS органиизовала производство множества проектов в одном цикле, потом с помощью французов получили аж 22 кристалла по 90nm технологии. Все они были годными.

PS в числе управленческого состава столько народу с большим послужным списком по работе в индустрии... Что-то не совсем чисто тут wink.gif.
LeonY
Цитата(AMagleli @ Mar 14 2008, 12:12) *


Интересная ссылка, но я со своим скепцицизмом - не верю... (Станиславский). О продуктах отсутствует всякая инфа вааще, о поддержке в Tools тоже ничего не проскакивало (может чего пропустил...). Подобная инфа время от времени блуждает по Инету, но, как правило, является не более, чем полным фуфлом. Ну а исследования - они идут, было бы кому финансировать, у BAE деньги немеряные, может чего народ и клепает....

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