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

 
 
> Тактирование без генератора, Нетактируемые задержки в ПЛИС
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
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 24)
Shtirlits
сообщение Oct 29 2004, 21:12
Сообщение #16


Знающий
****

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



Менять можно, только это секретная информация, отдается atmel-ом под подписку о нераспространении. Не люблю я это дело, мне исходники публиковать нужно.
Пробовать не стал.
В том документе, который мне случайно перепал, про параметры pad-ов я ничего не нашел.

На возможность динамической реконфигурации я облизывался, правда как на способ обмена с AVR-кой. Жалко ячейки на мультиплексоры, а тут можно как бы через заднюю дверь зайти. Имея возможность менять функцию LUT4, получаешь как бы LUT6.
Go to the top of the page
 
+Quote Post
pergunt
сообщение Nov 1 2004, 09:58
Сообщение #17


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

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



USTAS
Извиняюсь за повтор вопроса к Вам по-поводу схем генераторов:
1. Возможно ли рассчитать частоту или придется мерить, что получается на других чипах?
2. Повторяемость частоты при прошивке схемы в другой чип (но с тем же номером)?
3. Запуск всегда происходит или возможны проблемы?
Go to the top of the page
 
+Quote Post
USTAS
сообщение Nov 1 2004, 11:58
Сообщение #18


Участник
*

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



1. Ориентировочный расчет частоты для приведенный выше схем покажу на
примере первой (где в качестве линии задержки используется UPAD).
Из Datasheet на Virtex (10.2002) для кристалла XCV50PQ240-4 видим
следующие времена:
O input to Pad (Tioop) = 3.5 ns - для буфера LVTTL, 12mA, Fast ;
Pad to I output, no delay (Tiopi) = 1.0 ns ;
Output Delay Adjustments (Tolvttl_f24) = -0.23 ns.
Получаем задержку на Tupad = (Tioop - Tolvttl_f24) + Tiopi = 4.27 ns .
Остается добавить задержку по цепи, соединяющей вход и выход IOB
(инвертер реализуется внутри IOB). В данной реализации она составила
0.877 ns (скорость Switch Boxes не приводится в Datasheet sad.gif ).
Итого F = 1 / (4.27 + 0.877) = 194.28 MГц.
Такой же прогноз показывает Time Simulation. Если достать вход и выход
инвертера и подать стимул на выход, то задержка до входа составит 5.1 ns.
2. Частота будет зависить не только от чипа, но и от температуры. Приведенный
выше расчет - для макисальных задержек. Минимальные задержки можно
прогнозировать на уровне "соседнего" по скорости XCV50PQ240-5. Тогда
прогнозируемая частота составит около 209 МГц, т.е. примерно 8%.
3. Пока не замечал проблем.
Go to the top of the page
 
+Quote Post
Gorby
сообщение Mar 8 2005, 14:09
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Цитата(USTAS @ Oct 27 2004, 16:19)
В принципе, похожие трюки можно делать, используя атрибуты для цепей (KEEP, S(ave)). Назначение атрибутов можнно посмотреть Libraries Guide.
Альтернативный способ - построить генератор на внутренней логике ПЛИС (используются только внутренние ресурсы). В зависимости от скорости кристалла частота такого генератора может быть порядка 100 - 200 МГц.
*


Ага. И "плавать" в этих же пределах от температуры, напряжения питания и фазы Луны.


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Mar 9 2005, 07:14
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Послушайте, а почему не поставить дешевый резонатор? Это один трехвыводной корпус (резонатор + два согласованных кондюка), стоит он пять рублей в розницу. А внутри синтезите инвертор и все, дальше - внутренняя PLL и нужная частота на ее выходе. Если надо, чтобы стабильно запускалось при разбросе температур - еще один резистор 1М параллельно резонатору.

А вот тут http://www.xilinx.com/xlnx/xweb/xil_tx_dis..._ID=pa_six_easy есть схема, как получить надежную генерацию известной частоты на двух резисторах и одном кондюке - еще в пять раз дешевле, чем резонатор smile.gif.
Go to the top of the page
 
+Quote Post
Serega Doc
сообщение Mar 11 2005, 14:51
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 267
Регистрация: 11-11-04
Из: Одесса
Пользователь №: 1 103



Почему все про Xilinx да про Xilinx для Altera это что не актуально.

У меня проект на MAX 3032. И как к нему подключить импульсы синхросиналов.
Я пробовал подключить кварц через инвертор. Но схема не за работала. Может что то не то?
Еще пробовал вот такой код
library IEEE;
use IEEE.STD_LOGIC_1164.all;

entity GEN is
port(
I1 : in STD_LOGIC;
RST : in STD_LOGIC;
OUT_CLK : out STD_LOGIC;
I2 : out STD_LOGIC
);
end GEN;

architecture GEN of GEN is
signal TMP : STD_LOGIC;
begin
process (I1, RST)
begin
if RST='0' then
TMP<='0';
elsif I1='1' and I1'event then
TMP<= not TMP;
end if;

end process;

I2<= TMP;
OUT_CLK<=not TMP;

end GEN;

На I1 и I2 подключен кварц с двумя емкостями.
И тоже не генерит .

Помогите кто может!!!
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Mar 12 2005, 16:46
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



На www.xilinx.com есть раздел TechXclusives, там выступает дюже вумный дядька Peter Alfke. У него есть статья "Six Easy Pieces (Non-Synchronous Circuit Tricks)". Там описывается схема простого генератора на ПЛИС со стабильным запуском и без кварцевого резонатора.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
Serega Doc
сообщение Mar 14 2005, 07:08
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 267
Регистрация: 11-11-04
Из: Одесса
Пользователь №: 1 103



Я читал эту статью. Но приведенные генераторы не обеспечивают стабильность частоты. По моему в промышленное устройство уж лучше с кварцем
Go to the top of the page
 
+Quote Post
v_mirgorodsky
сообщение Mar 15 2005, 10:46
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



Сейчас нет времени проверять на практике, но в "Искусство схемотехники" есть схема типового генератора на кварце. Там кроме двух емкостей присутствуют еще два резистора. Эта схема проверена на практике, работает очень хорошо и стабильно. Теперь по Вашему описанию. Есть подозрение, что

elsif I1='1' and I1'event then
TMP<= not TMP;
end if;

этот фрагмент родит триггер, а не инвертор. В данном случае надо использовать простой комбинаторный процесс с I1 в списке чувствительности, а выключать генератор элементом ИЛИ.

По идее выглядит вот так:

process (I1, RST) begin
I2 <= NOT (I1 OR RST);
end process;

OUT_CLK <= NOT I2;

Попробуйте, скажите, если получилось. Смотреть генерацию надо на OUT_CLK, касание щупом осциллографа к I1 или I2 может срывать генерацию.


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
leevv
сообщение Mar 23 2005, 21:39
Сообщение #25


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

Группа: Свой
Сообщений: 100
Регистрация: 4-01-05
Пользователь №: 1 799



USTASU OT ALEKSA.

Vernee ot leevv. ;-0


Spasibo SvtSvt i USTAS za zamechatel'nujy ideju. Mne davno v Xilinx ne hvataet vozmognosti generit' avtonomnyi clk.
Interesno by poprobovat' s Virtex4, u kotorogo est' tochnaja i upravljaemaja liniya zadergki "SyncChip" v kazdom IOB. Da i vremena tam pobystree.
Skoro poluchu V4 eval board i objazatelno poprobuju.
Pravda ne znaju, vozmogen li dostup k "SyncChip" na UPAD. No v ljybom sluchae odin real'nyj no neispolzuemyj pin vsegda v designe najdetsja, chtoby sdalat' clk gen.
A voobshe eto horoshij material dlja appnote for Xilinx. Ne proboval li kto nibud' is vas svjazat'sja s Xilinx korifejami, s tem ge Peter Alfke, naprimer?
Go to the top of the page
 
+Quote Post

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

 


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


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