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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Тактирование без генератора, Нетактируемые задержки в ПЛИС
svtsvt
сообщение Oct 26 2004, 11:13
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 26-10-04
Пользователь №: 983



Поделюсь опытом

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

В таких случаях я делаю машины состояний на линиях задержки с отводами.
А эти линии задержки - это последовательно соединенные не подключенные к ногам ПЛИС блоки ввода/вывода (unbonded I/O pad - UPAD). Обычно их довольно много на кристалле и чем меньше ног у корпуса, тем больше количество UPAD. Сама задержка в основном определяется задаваемым выходным током UPAD - чем меньше ток, тем больше задержка. Например, для Spartan2 при заданном выходном токе в 2мА (минимальный) задержка на UPAD составляет около 25нс.
Go to the top of the page
 
+Quote Post
Porychik Kize
сообщение Oct 26 2004, 13:52
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 15-10-04
Пользователь №: 884



...........минуты 3 репу чесал, что же написать в ответ :-))))))........
В общем, в силу специфики работы для меня важна детерминированость поведения конечного продукта, а вопрос цены не слишком важен. Так что я, конечно, галочку себе в памяти поставлю на всякий случай, что можно в крайнем случае и вот так извернуться, но применять данный метод пока поостерегусь. :-))))
Все это - IMHO.


--------------------
"Я люблю путешествовать, посещать новые города, страны, знакомиться с новыми людьми."
Чингисхан.
Go to the top of the page
 
+Quote Post
pergunt
сообщение Oct 27 2004, 10:57
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 21-10-04
Пользователь №: 936



А в схематике есть возможность приделать зтот UPAD ?
И какие еще способы кто знает чтобы внести задержку в схему(без применения клока! ) ?
Как, например, для CPLD есть атрибута NOREDUCE.
А какие варианты для FPGA, чтобы лишние внесенные для задержки элементы не удалялись (не оптимизировались)?
Задержки порой хотелось бы подстраивать от 2 до 25 нс.
Go to the top of the page
 
+Quote Post
USTAS
сообщение Oct 27 2004, 13:19
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 27-09-04
Пользователь №: 731



В принципе, похожие трюки можно делать, используя атрибуты для цепей (KEEP, S(ave)). Назначение атрибутов можнно посмотреть Libraries Guide.
Альтернативный способ - построить генератор на внутренней логике ПЛИС (используются только внутренние ресурсы). В зависимости от скорости кристалла частота такого генератора может быть порядка 100 - 200 МГц.
Go to the top of the page
 
+Quote Post
pergunt
сообщение Oct 27 2004, 13:47
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 21-10-04
Пользователь №: 936



Атрибуты KEEP и OPTIMIZE ведут себя, на мой взгляд, как-то нестабильно при транслировании чипа. То одну задержку получишь, то другую. Да и набирать элементов мне приходилось порой очень много - т.е. такое чувство, что все равно оптимизируется..
С внутренним генератором - организовывать как то опасаюсь(да и как сделать не выходя на ножки чипа?).
Кто еще какие способы задержек может предложить?

И вопрос к svtsvt - Как вы все таки прописываете UPAD !?
Как определяете номер пина Unbonded ?
Go to the top of the page
 
+Quote Post
svtsvt
сообщение Oct 28 2004, 14:48
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 26-10-04
Пользователь №: 983



pergunt
Один элемент задержки - это IOBUF (от IOBUF_S_24 до IOBUF_S_2 - последний - самый медленный) с прицепленным UPAD c атрибутом LOC=UNBx. Номер (х) UNB беру из структуры кристалла через FPGA editor (это быстрее, чем искать в документации).
Вот кусочек из Post Layout Timing Report
Source |Destination | Delay |
---------------+---------------+---------+
H4/DUP2 |H4/DUP3 | 24.434|
H4/DUP2 |H4/DUP4 | 49.460|
H4/DUP2 |H4/DUP5 | 73.984|
H4/DUP2 |H4/DUP6 | 99.064|
H4/DUP2 |H4/DUP7 | 123.448|
H4/DUP2 |H4/DUP8 | 147.866|

DUP2-3-4-5-6-7-8 - это последовательно соединенные элементы задержки из IOBUF_S_2 и UPAD. Видно, что задержка на каждом практически одинаковая - около 25нс.
Go to the top of the page
 
+Quote Post
pergunt
сообщение Oct 28 2004, 15:42
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 21-10-04
Пользователь №: 936



[B]svtsvt
Пробовал нарисовать как Вы рекомендуете, пока не получается - ошибки при трансляции.
А какой версией Вы пользуетесь (ISE..?..)?
Go to the top of the page
 
+Quote Post
USTAS
сообщение Oct 28 2004, 15:49
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 27-09-04
Пользователь №: 731



Вот пример построения внутреннего генератора, использующего только "внутренности" кристалла. В симуляторе не работает, а в жизни - на всю катушку smile.gif На выбранном кристалле XCV50PQ240-4 внутренняя частота CLK составила 210 МГц. При изменении типа OBUFT изменяется и частота. А дальше используй, хоть для задержек, хоть для работы другой внутренней схемы.
Прикрепленные файлы
Прикрепленный файл  XLG.ZIP ( 66.18 килобайт ) Кол-во скачиваний: 125
 
Go to the top of the page
 
+Quote Post
svtsvt
сообщение Oct 29 2004, 05:34
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 26-10-04
Пользователь №: 983



pergunt
Схемы я рисую в Foundation 4.2, но думю что это без разницы рисовать чем-то или текстом на VHDL/Verilog.
На прицепленном рисунке реально работающая в одном из устройств линия задержки из 8-ми элементов.
ПЛИС - Xilinx XC2S30-5-VQ100
Прикрепленные файлы
Прикрепленный файл  DELAY8.pdf ( 22.61 килобайт ) Кол-во скачиваний: 187
 
Go to the top of the page
 
+Quote Post
USTAS
сообщение Oct 29 2004, 06:03
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 27-09-04
Пользователь №: 731



А вот еще одна "необычная" схема. На том же кристалле XCV50PQ240-4 внутренняя частота CLK составила 365 МГц ! Хитрость - PULLUP - если убрать, схема после оптимизации становится пустой... wink.gif
Прикрепленные файлы
Прикрепленный файл  XLG2.ZIP ( 65.92 килобайт ) Кол-во скачиваний: 106
 
Go to the top of the page
 
+Quote Post
pergunt
сообщение Oct 29 2004, 08:42
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 21-10-04
Пользователь №: 936



svtsvt
Большое спасибо за ИДЕЮ ! и пример.
Мне также удалось в пакете ISE подцепить для задержек Unbonded pins.
Весьма существенно, как Вы отметили, это поиск неподсоединенных падов
через эдитор, т.к. никакого дата шита с их номерами нет.
Прямо в библиотеке UPAD нет, поэтому извратился через bidirect.

USTAS
Схему пока открыть не смог. Ваши примеры для какого софта (версии)?!
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Oct 29 2004, 09:26
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Все же не совсем я понимаю, что во всех этих конструкциях является пороговым элементом?
Мои попытки сделать генератор на atmel AT94 (AT40) ни к чему не привели, получается "серое" состояние.
С софтом, пытающимся оптимизировать петли, я боролся тупо. Делал hard-macro, в vhdl их использовал как черный ящик.

Если пожертвовать парой ног ввода-вывода, снаружи их соединить, а внутри зациклить через инвертор, то за счет встроенного триггера шмидта генератор получается надежный.
Go to the top of the page
 
+Quote Post
USTAS
сообщение Oct 29 2004, 13:42
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 46
Регистрация: 27-09-04
Пользователь №: 731



Проекты сделаны в Xilinx Foundation v4.1.
Обычно я использую для открытия таких архивов в меню Project Manager (File\Restore Project).
Если не получается, то вот копии TOP Sheet этих двух проектов.
И еще раз напоминаю, что в симуляторе такие вещи дают неопределенное состояние, а в реальном кристалле - нормальный генератор. Так что приходится в симуляторе навязывать стимул.
Прикрепленные файлы
Прикрепленный файл  XLG.pdf ( 5.91 килобайт ) Кол-во скачиваний: 157
 
Go to the top of the page
 
+Quote Post
pergunt
сообщение Oct 29 2004, 15:48
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 21-10-04
Пользователь №: 936



USTAS
Спасибо за схемы !
Насколько стабильная получалась частота генерации?
Запускалась всегда?
Могут ли быть срывы?
А как возможно прикинуть частоту этих генераторов?
Как изменить частоту(в осцилляторе)?
Go to the top of the page
 
+Quote Post
hlebn
сообщение Oct 29 2004, 19:48
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-10-04
Пользователь №: 963



Цитата(Shtirlits @ Oct 29 2004, 01:26 PM)
Все же не совсем я понимаю, что во всех этих конструкциях является пороговым элементом?
Мои попытки сделать генератор на atmel AT94 (AT40) ни к чему не привели, получается "серое" состояние.
С софтом, пытающимся оптимизировать петли, я боролся тупо. Делал hard-macro, в vhdl их использовал как черный ящик.

Если пожертвовать парой ног ввода-вывода, снаружи их соединить, а внутри зациклить через инвертор, то за счет встроенного триггера шмидта генератор получается надежный.

В AT94 вроде есть возможность поправить прошивку плис со стороны авр
не пробовал?
если там есть доступ к конфигурации PAD можно наверно и частотой поиграть изменяя задержки wink.gif
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 - 10:32
Рейтинг@Mail.ru


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