Перейти к содержанию
    

Правильный edge detection (VHDL)

Всем привет!

 

какой самый честный метод детекции фронтов сигналов заводящихся на от внешних устройств?

Сам использую 2 тригера

 

---->[T0]--"1"-->[T1]--"0"-->

 

когда выход Т1 = "0" и выход Т0 = "1" решаю что rising edge

 

Есть ли проще/более правильное решение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле надо 3 триггера, для того, чтобы избавится от возможной метастабильности. Проверять второй и третий в цепочке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильно будет использовать три триггера: первые два образуют классический синхронизатор, третий используется для определения фронта. В Вашем варианте возможный проблемы, т.к. первый триггер может оказаться в метастабильном состоянии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильно будет использовать три триггера: первые два образуют классический синхронизатор, третий используется для определения фронта. В Вашем варианте возможный проблемы, т.к. первый триггер может оказаться в метастабильном состоянии.

Ок, я использовал 3 и 2 тригера, при двух вероятность метастабильности возрастает. Ладно, буду впреть везде ставить 3.

Кстати при заводе внешних клока + логика + данные хорошо бы их заводить через один регистр. Чето я в спартане не нашел примитива подходящего.

сообразить регистр на VHDL ? Тогда важно чтобы при разводке все тригера лягли близко друг от друга. Как Вы поступаете?

 

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сообразить регистр на VHDL ? Тогда важно чтобы при разводке все тригера лягли близко друг от друга. Как Вы поступаете?

 

Констрейнт RLOC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все о том же: горожу FIFO + LocalLink source, нужно ли сигнал dst_rdy_n от заводить через триггер и соответственно сигналы от source -> destination пускать через тригера. Все конечно в одном FPGA и на одном клоке. вот как себя будет вести при 99% забитом чипе после ? Какое железное правило для грамотного дизайна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я в спартане не нашел примитива подходящего.

 

Посмотрите шаблоны в ISE, там должен быть синхронизатор, который используется при пересечении клоковых доменов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите шаблоны в ISE, там должен быть синхронизатор, который используется при пересечении клоковых доменов.

 

Расскажите пожалуйста поподробнее про синхронизаторы. Хочу все-таки узнать как это правильно делается.

ЗЫ: в темплейтах не нашел ничего.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Расскажите пожалуйста поподробнее про синхронизаторы. Хочу все-таки узнать как это правильно делается.

 

многократно обсуждалось, поиск по ключевому слову "синхронозатор" выводит на тему

 

http://electronix.ru/forum/index.php?showt...mp;#entry449467

 

там есть ссылки и примеры.

 

Удачи !!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...