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

 
 
 
Reply to this topicStart new topic
> Передача сигнала из синхронной 66MHz в синхронную схему 50MHz
gosha
сообщение Jul 8 2009, 13:03
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 15-06-04
Из: Менделеево
Пользователь №: 30



Подск пож: необходимо передать 2 сигнала (hsync, vsync) по 1бит с выхода D триггеров (clk_in=66MHz), на вход триггеров 50MHz.

Длительность имп на частоте 50MHz может быть неск тактов (не критично).

В схеме 50Mhz будет производиться взаимный анализ сигналов.

Код
if(vsync)
else
   if(hsync)
       else


Если увеличить длительность пульсов vsync, hsync на частоте 66MHz, все- равно это приводит к иногда (1/100) нестабилльности работы схемы (Chipscope)

Спасибо.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jul 8 2009, 13:40
Сообщение #2


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

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



Ищите: в форуме тема перехода временного домена раскрыта чуть более, чем полностью. Кратко, надо поставить синхронизаторы и длительность импульса на 66 сделать минимум наверное 3 такта.
Go to the top of the page
 
+Quote Post
gosha
сообщение Jul 8 2009, 14:19
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 15-06-04
Из: Менделеево
Пользователь №: 30



Цитата(DmitryR @ Jul 8 2009, 17:40) *
Ищите: в форуме тема перехода временного домена раскрыта чуть более, чем полностью. Кратко, надо поставить синхронизаторы и длительность импульса на 66 сделать минимум наверное 3 такта.


Не очень ищется.

http://www.google.ru/search?hl=ru&neww...mp;aq=f&oq=

Может ссылочку подбросите?
Go to the top of the page
 
+Quote Post
Шурила
сообщение Jul 8 2009, 14:23
Сообщение #4


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

Группа: Свой
Сообщений: 81
Регистрация: 28-07-07
Из: Кишинев
Пользователь №: 29 434



Цитата(DmitryR @ Jul 8 2009, 16:40) *
Ищите: в форуме ...

ключевое слово метастабильность
например:
Констрейнты при переходе из одного клокового домена в другой.
метастабильность
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jul 8 2009, 14:33
Сообщение #5


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(gosha @ Jul 8 2009, 16:03) *
Подск пож: необходимо передать 2 сигнала (hsync, vsync) по 1бит с выхода D триггеров (clk_in=66MHz), на вход триггеров 50MHz.

Длительность имп на частоте 50MHz может быть неск тактов (не критично).

В схеме 50Mhz будет производиться взаимный анализ сигналов.

Код
if(vsync)
else
   if(hsync)
       else


Если увеличить длительность пульсов vsync, hsync на частоте 66MHz, все- равно это приводит к иногда (1/100) нестабилльности работы схемы (Chipscope)

Спасибо.


Попробуйте это

Код
--  Provides a one-shot pulse from a non-clock input, with reset
--**Insert the following between the 'architecture' and
---'begin' keywords**
signal Q1, Q2, Q3 : std_logic;

--**Insert the following after the 'begin' keyword**
process(<clock>)
begin
   if (<clock>'event and <clock> = '1') then
      if (<reset> = '1') then
         Q1 <= '0';
         Q2 <= '0';
         Q3 <= '0';
      else
         Q1 <= D_IN;
         Q2 <= Q1;
         Q3 <= Q2;
      end if;
   end if;
end process;

Q_OUT <= Q1 and Q2 and (not Q3);

код на VHDL
Дополнительно скажу: сделайте строб готовности данных - этот строб пропускаете через схему (см код на VHDL), т.о. производите синхронизацию и забираете свои данные уже на другой тактовой частоте


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
rsv
сообщение Jul 8 2009, 18:36
Сообщение #6


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

Группа: Свой
Сообщений: 119
Регистрация: 16-07-07
Из: Тула
Пользователь №: 29 160



тут все замечательно расписано:
http://en.wikipedia.org/wiki/Clock_domain_crossing
там есть ссылочки на 2 статьи, очень полезные.

если тяжко читать по английски, то есть цикл статей вот этого господина http://iosifk.narod.ru/hdl_coding/verilog.htm , глава номер 11. В электронном виде нет, можно либо диск заказть у него, либо взять нужный номер журнала "компоненты и технологии" и почитать там
Go to the top of the page
 
+Quote Post
MKS
сообщение Jul 8 2009, 20:30
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 469
Регистрация: 13-03-05
Пользователь №: 3 315



Вот почитайте: Прикрепленный файл  CummingsSNUG2001SJ_AsyncClk.zip ( 166.59 килобайт ) Кол-во скачиваний: 173
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 9 2009, 03:32
Сообщение #8


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(gosha @ Jul 8 2009, 08:03) *
Подск пож: необходимо передать 2 сигнала (hsync, vsync) по 1бит с выхода D триггеров (clk_in=66MHz), на вход триггеров 50MHz.

В схеме 50Mhz будет производиться взаимный анализ сигналов.

Если увеличить длительность пульсов vsync, hsync на частоте 66MHz, все- равно это приводит к иногда (1/100) нестабилльности работы схемы (Chipscope)


я бы не решал эту задачу через з...цу, а провел бы взаимный анализ на частоте 66МГц, а результат его передал в домен 50МГц. Это будет проще и надежнее smile.gif

ЗЫ. Если взаимный анализ включает в себя замер временных интервалов, то тем более заниматься этим после нарезки сигнала на 50МГц (с ошибкой по положению фронта) ИМХО глупо.


--------------------
Go to the top of the page
 
+Quote Post
gosha
сообщение Jul 9 2009, 07:42
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 15-06-04
Из: Менделеево
Пользователь №: 30



Цитата(des00 @ Jul 9 2009, 07:32) *
я бы не решал эту задачу через з...цу, а провел бы взаимный анализ на частоте 66МГц, а результат его передал в домен 50МГц. Это будет проще и надежнее smile.gif

ЗЫ. Если взаимный анализ включает в себя замер временных интервалов, то тем более заниматься этим после нарезки сигнала на 50МГц (с ошибкой по положению фронта) ИМХО глупо.


Спасибо.

Как я понял:
- для передачи одиночного сигнала через временной домен, на приемной стороне необходимо ставить 2 последовательных D триггера (на передающей 66MHz стороне длина имп- не менне 3 такта clk 50MHz?).
- для передачи слов данных - использовать FIFO ise_core_generator, которое использует код грея для счетчиков wr_fifo_adr/rd_fifo_adr адресов.
- сравнением кодов грея wr_fifo_adr/rd_fifo_adr, ip_core вычислет флаг fifo_empty.

Это так?
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 10 2009, 03:25
Сообщение #10


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(gosha @ Jul 9 2009, 01:42) *
Как я понял:
- для передачи одиночного сигнала через временной домен, на приемной стороне необходимо ставить 2 последовательных D триггера (на передающей 66MHz стороне длина имп- не менне 3 такта clk 50MHz?).
- для передачи слов данных - использовать FIFO ise_core_generator, которое использует код грея для счетчиков wr_fifo_adr/rd_fifo_adr адресов.
- сравнением кодов грея wr_fifo_adr/rd_fifo_adr, ip_core вычислет флаг fifo_empty.

Это так?


вариантов много, все зависит от того что и куда передаем, оптимальное решение для одного слова пятилетку будет отличаться от пакета данных, для строба будет отличаться от постоянного уровня. Есть конечно универсальные решения, но они не всегда оптимальны. В общем как и везде в фпга выбираем компромис smile.gif


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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