Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Знатоки FPGA, подскажите
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Страницы: 1, 2
sazh
To Boris_TS
//////////////////////////////////////
А как Вам удается задействовать этот аппаратный xor. Ведь и у Эктела есть
Rising Edge Flip-Flop with Asynchronous Reset and Clock Enable.


И у Xilinx тоже есть
Boris_TS
Цитата(sazh @ Feb 2 2007, 15:15) *
А как Вам удается задействовать этот аппаратный xor. Ведь и у Эктела есть
Rising Edge Flip-Flop with Asynchronous Reset and Clock Enable.

Ознакомившись с архитектурой Xilinx CoolRunner (XPLA3 CPLD) http://direct.xilinx.com/bvdocs/publications/ds012.pdf, вы обнаружите, что логика в XPLA3 реализуется на PLA и XOR (который может быть использован перед триггегом). Если в опциях XST поставить Preserv XOR, то XOR не будет преврашен в логику на AND и OR, а Fitter точно положит XOR на место.

(с особенностями логических матриц PAL и PLA можно ознакомиться тут: http://direct.xilinx.com/bvdocs/publications/xapp444.pdf)

При использовании FPGA Spartan-IIE, меня вполне устраивала реализация XOR на базе LUT, но ведь и частоты в этом случае были менее 50 МГц.

А при чем тут Actel (я правильно воссановил слово 'Эктел' ?) и его триггер я не понял. Я вроде про него ничего не писал, а чтобы не было двусмысленности указал конкретную микросхему, на которой проводились наиболее зверские тесты: XCR3256-7TQ144.

Мне моя схема нравится (а как может быть иначе ?), но если у кого есть варианты по компактнее (но с тойже надежностью подавления метостабильности), то я с интересом с ними ознокомлюсь.
Oldring
Цитата(Boris_TS @ Feb 3 2007, 09:55) *
Ознакомившись с архитектурой Xilinx CoolRunner (XPLA3 CPLD) http://direct.xilinx.com/bvdocs/publications/ds012.pdf, вы обнаружите, что логика в XPLA3 реализуется на PLA и XOR (который может быть использован перед триггегом). Если в опциях XST поставить Preserv XOR, то XOR не будет преврашен в логику на AND и OR, а Fitter точно положит XOR на место.

(с особенностями логических матриц PAL и PLA можно ознакомиться тут: http://direct.xilinx.com/bvdocs/publications/xapp444.pdf)


А слона-то я и не заметил... То есть что речь идет про CPLD.

В CPLD другая модель тайминга, поэтому и методы борьбы с метастабильностью IMHO должны быть несколько иными. Главное - что все соединения между триггерами производятся через ZIA. То есть путь для метастабильного сигнала (выход D1 - вход D2) все равно большой, почти равен периоду клока, и слабо зависит от того, сколько логики на нем висит. А значит, вблизи максимальной рабочей частоты кристалла (а именно этот случай особо интересен) простой синхронизатор из двух триггеров может работать ненадежно.

Как с этим можно бороться?

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

Второе - проанализировать модель тайминга и использовать короткий путь (единственный P-term), полагая, что разница между длиной короткого пути и обычного пути в логике (порядка 0.5 нс) будет достаточна для восстановления из метастабильного состояния. Это именно Ваш метод. Кстати, почему именно аппаратный XOR, а не T-вход триггера? И Вы, случайно, не исследовали параметры метастабильности для этого кристалла, чтобы можно было оценить вероятность сбоя при таком методе?

Третий, причем, вероятно железный путь - можно организовать работу синхронизатора на половинной частоте. В этом случае будет еще дополнительный период клока для выхода D1 из метастабильности. Но, конечно, это решение может потребовать пару дополнительных триггеров - делитель и формирователь выходного импульса.
sazh
Что касется xor, я был неправ. Про CPLD слишком поздно понял. Слабо ориентируюсь в названиях Xilinx. Вашу схему анализировал в Квартусе да еще на FPGA. Независимо от описания, она на циклоне FPGA использует для реализации триггера с enable и инвертор.
Что касается CPLD, то элемент xor я понимаю в структуре как объединение функций (ИЛИ и “Исключающее ИЛИ”), причем есть равноправная линия разрешения тактирования запоми-
нающего элемента.
Я посмотрел реализацию на данном CPLD в sinplify Pro. Что интересно, независимо от описания он игнорирует линию enable триггера и реализует элемент xor. Думаю он не имеет отношения к xor самой матрицы. Но не суть. Синтезатор так считает правильным.
cyclop
Схемы Титце-Шенка (Т-Ц) и Boris_TS (В) различны. Схема (Т-Ц) осуществляет привязку асинхр. сигнала к тактовой частоте; на выходе схемы импульс появляется второй раз после того, как на асинхр. входе сигнал "пропадёт" и снова появится во второй раз, но если не "пропадает", то 2-го импульса не будет (о числе тактов умолчим). В схеме же (В) дело обстоит не так: там введён 2-ой тактовый сигнал, и сдаётся мне, он не непрерывный.
Дело автора, а уж если так хочется XOR, то я бы, обходясь одним клоком, ввёл ещё триггерок, который бы устанавливался вместе с выдаче схемой её одиночного импульса и перекрывал повторную установку F1-FD0, а сбрасывался бы со сбросом START. А ещё можно улучшить схеиу (Т-Ц), добавив по триггеру на вход и на выход, - это в целях устранения метастабильности, вернее её последствий.
О метастабильности неплохо изложено в книжке "Говард Джонсон, Мартин Грэхэм
"Конструирование высокоскоростных цифровых устройств. Начальный курс черной магии". Видел её тут:http://lord-n.narod.ru/walla.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.