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

Синхронный интерфейс асинхронной шины

Just now, RobFPGA said:

Приветствую!

Почти - при условии что транзакции на шине не идут одна за другой :cray2:

Удачи! Rob.

Почему же!

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

При заданных условиях задачи это самый оптимальный вариант. Иначе менять ПЛИС.   

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


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

Рассматривайте входной каскад ПЛИС как интерфейс двупортового пересинхронизационного FIFO : запись ведется по фронту (MS&WR), каждая запись инкрементирует адрес фифо, затем адрес переводим код Грея, и -  передаем на вторую половину FIFO, работающую на внутреннем клоке.

Частота записи получается не выше 1/3*25=1/75нс, что всяко меньше внутренней частоты ПЛИС. Проблем с наложением записи быть не должно

Изменено пользователем Aleх

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


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

5 minutes ago, Serhiy_UA said:

Там как бы конвейер получается, а он такой, что может все

:wink2:  - Классический синхронизатор (без матерой асинхронщины) потребует 3 такта FCLK. И это не конвейер.

2 minutes ago, Aleх said:

запись ведется по фронту (MS&WR), каждая запись инкрементирует адрес фифо

Отличное решение! -Если не считать нелюбовь TC к записи по фронту wen.

Удачи! Rob.

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


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

3 minutes ago, RobFPGA said:

Отличное решение! -Если не считать нелюбовь TC к записи по фронту wen.

Длительность импульса WR меньше периода частоты ПЛИС. Выходит что других решений, кроме как работать по фронту WR, и быть не может :-)

Изменено пользователем Aleх

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


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

1 час назад, Aleх сказал:

Длительность импульса WR меньше периода частоты ПЛИС

Длительность WR больше полупериода частоты ПЛИС, поэтому, с извращениями, можно попробовать работать по обоим фронтам.

Но, ИМХО, dcfifo/elastic buffer - лучший выход.

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


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

dсfifo будет плохо работать, если клок на одной стороне прерывистый. WR в качестве клока не годится.

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


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

Приветствую!

12 minutes ago, andrew_b said:

dsfifo будет плохо работать,

@Alex имел в виду самому простенькую FIFO-шку сваять.  Можно сделать даже на регистрах,  глубиной в 4 уровня. 

Удачи! Rob. 

 

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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