|
|
  |
Знатоки FPGA, подскажите, проблеммы сонхронизации |
|
|
|
Feb 2 2007, 10:17
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(Boris_TS @ Feb 2 2007, 09:33)  Насколько я изучил ПЛИС, логика в них работает как фильтр нижних частот, т.е. ее конечное быстродействие несколько ниже, чем у триггера. А при метостабильном состоянии у триггера на выходе достаточно высокочастотные колебания, которые в чистом виде через логику пройти не могут. Но это пол дела.
В добавок в моей схеме, у триггера F2_FD1 заложено время на выход из метастабильного режима = 1T CLK2 - (Troutes delay + Txor delay). Если для вас этого мало - модифицируйте схему под свои нужды. Не обращая внимание на результаты -тестирования (каждый программист знает, что никакое тестирование не находит всех ошибок) должен заметить, что схема представляется вполне работоспособной. Более того, по устойчивости к метастабильности она не сильно хуже обычной схемы их двух последовательных триггеров - время задержки в логике перед триггером мало по сравнению со временем разводки. При нормальной работе логики эта схема не может залипнуть - но если есть сомнения, XOR можно наменить на "D1 and not D2". И еще мысль. Учитывая, что в современных FPGA время разводки часто превышает все остальное - имеет смысл в синхронизаторах жестко констрейнить время распространения сигнала с выхода первого триггера на вход второго, чтобы его не развели через весь кристалл по диагонали.
--------------------
Пишите в личку.
|
|
|
|
|
Feb 2 2007, 10:45
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(Oldring @ Feb 2 2007, 10:17)  При нормальной работе логики эта схема не может залипнуть - но если есть сомнения, XOR можно наменить на "D1 and not D2". XOR использовался в XPLA3 (там он аппаратный XOR с своими специфическими свойствами). Цитата(Oldring @ Feb 2 2007, 10:17)  И еще мысль. Учитывая, что в современных FPGA время разводки часто превышает все остальное - имеет смысл в синхронизаторах жестко констрейнить время распространения сигнала с выхода первого триггера на вход второго, чтобы его не развели через весь кристалл по диагонали. biggrin.gif А в FPGA (Spartan-IIE) я плотно обкладываю RLOC'ом все узлы и схемы синхронизыции (строки с RLOC я вырезал из предоставленного исходника, чтобы не загромождать код). Цитата(Oldring @ Feb 2 2007, 10:17)  Не обращая внимание на результаты -тестирования (каждый программист знает, что никакое тестирование не находит всех ошибок) Ну я не программист... Без эксперимента (т.е. по теоретическим выкладкам) я не могу сказать будет ли какая-либо метастабильная схема работать на "больших" частотах в ПЛИС - поэтому без экспериментов - никуда (только ведь эксперименты разные бывают...)
|
|
|
|
|
Feb 2 2007, 11:13
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(sazh @ Feb 2 2007, 10:58)  Что интересно, что бы Вы не делали, лучше Тицце и Шенка все равно не сделаете. Вот его реализация без петли обратной связи. Уважаемый sazh! Ничего если я замечу, что чтение литературы не заменяет самостоятельных размышлений? Приведенная Вами схема опасна и ни в коей мере не эквивалентна исходной. Потому что метастабильное состояние триггера D1 может неконтролируемо распространяться через выход Q на неопределенную часть схемы. Исходная схема этим свойством не обладает - в ней возможная метастабильность D1 ограничена коротким путем через XOR лишь входом второго триггера. Цитата(Boris_TS @ Feb 2 2007, 10:45)  XOR использовался в XPLA3 (там он аппаратный XOR с своими специфическими свойствами). Обладает - но не факт, что путь через него быстрее пути через LUT. Я когда-то исследовал один тестовый пример - меня удивляло, почему синтезатор использует LUT вместо такого хорошего встроенного XORF. Написал использование элемента явно. Получил слегка большее время.
--------------------
Пишите в личку.
|
|
|
|
|
Feb 2 2007, 11:40
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(sazh @ Feb 2 2007, 11:34)  Я на триггерах не экономлю. (В реальности уже давно ставлю дополнительный буфер. Я тут тексты выкладывал. Уверен, Вы даже не взглянули на них). Для меня важней простота, наглядность. Читаемость схемы сходу пользователем любой квалификации. Простите, но если ресь идет об этом тексте (других Ваших текстов я в топике не вижу): Код process (CLK_2) begin if rising_edge(CLK_2) then F2_FD1 <= F1_FD0; F2_FD2 <= F2_FD1; end if; end process;
Q <= not F2_FD2 and F2_FD1; end architecture; то, поверьте, именно о нем я и пишу. Наглядность и читаемость - это здорово, но хорошо бы еще чтобы схемы были работоспособными  IMHO синхронизатор - вещь тонкая, понятной для каждого быть не может по определению, поэтому для него важнее оформление в виде отдельного компонента и куча предупреждающих и поясняющих комментариев, чтобы не трогали.
--------------------
Пишите в личку.
|
|
|
|
|
Feb 2 2007, 11:51
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(sazh @ Feb 2 2007, 11:45)  Ничего если я замечу, что чтение njgbrf не заменяет самостоятельных размышлений?
Имелось ввиду топика Ничего - но не могу понять, к каким выводам я должен прийти после размышлений. Торможу, наверное. Не подскажете? Вы же не будете оспаривать, что Ваш код в том виде, в котором он опубликован, не обладает свойством устойчивости к метастабильности, в отличие от исходного кода, несмотря на то, что Вы утверждали, что исходный код можно заменить Вашим?
--------------------
Пишите в личку.
|
|
|
|
|
Feb 2 2007, 12:12
|

Гуру
     
Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874

|
Цитата(sazh @ Feb 2 2007, 12:07)  Функционально можно заменить. Что касается текста, я имел ввиду файлы *.zipб которые все уже посмотрели кроме Вас. Поэтому с метастабильностью вопрос у всех уже закрыт. Если все в совокупности польностью рассмореть, все и так уже понятно. Единственное, что печалит, после Ваших высказываний я уже врядли дождусь чего то от авторов текстов. Мне ведь действительно интересно их мнение. Файлы? Возможно, я действительно что-то упустил. Я видел только один zip - вчера с именем ________________.zip. Его я сразу же просмотрел. Вы имеете в виду какой-то другой zip, который я постоянно пропускаю? И какие-то Ваши вопросы, мнение по поводу которых Вас интересует? И потом, что означает "заменить функционально"? Это как - заменить все-таки можно, наплевав на то, что в железе с новым кодом могут возникнуть проблемы, которые в исходной схеме возникнуть не могут?
--------------------
Пишите в личку.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|