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

 
 
> Синхронная работа двух ПЛИС, Как гарантировать работоспособность?
DENth
сообщение Mar 31 2014, 13:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 10-10-12
Из: Санкт-Петербург
Пользователь №: 73 890



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

Прошу помощи в следующем вопросе:
Есть две ПЛИС. Тактируются от внешнего генератора на 40 МГц. В каждой есть автомат состояний. Задача получить синхронную работу этих автоматов на частоте 10 МГц. Запускает автоматы контроллер на этой же плате. Частота контроллера асинхронна для ПЛИС. Но данные от контроллера пропускаются через два триггера для исключения метастабильных состояний. Это, если кратко.

Сложность в задании временных ограничений или иного, что необходимо в данном случае. Смущает то, что передачи данных между ПЛИС нет. То есть ни под одно описание интерфейса случай вроде бы не подходит.

Если продолжить, то автоматы управляют внешней ОЗУ. Одна ПЛИС перебирает адреса и сидит на старшем байте шины данных, а также управляет ОЗУ. Вторая только на младшем байте шины данных ОЗУ. В соответствии с состоянием автомата, ПЛИСы либо пишут, либо читаю ОЗУ. Та которая "master" работает отлично, "slave" же периодически хандрит. Данные на чтение искажены. Запись еще не проверялась. Временных органичений на эти линии не задано.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
o_khavin
сообщение Mar 31 2014, 14:31
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Если есть ноги между чипами, то используйте одну из них для синхросигнала (синхронного сброса) - и всех дел. Единственное, что нужно позаботиться о корректном тайминге при передаче этого сигнала, чтобы он добегал за один такт общего клока. В том ПЛИСе, который будет выдавать этот сигнал, нужно сделать его задержку в один такт перед внутренним использованием.
Go to the top of the page
 
+Quote Post
DENth
сообщение Mar 31 2014, 14:56
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 10-10-12
Из: Санкт-Петербург
Пользователь №: 73 890



Цитата(o_khavin @ Mar 31 2014, 18:31) *
Если есть ноги между чипами, то используйте одну из них для синхросигнала (синхронного сброса) - и всех дел. Единственное, что нужно позаботиться о корректном тайминге при передаче этого сигнала, чтобы он добегал за один такт общего клока. В том ПЛИСе, который будет выдавать этот сигнал, нужно сделать его задержку в один такт перед внутренним использованием.


Интересное решение. Спасибо. То есть например сигнал запуска автомата от контроллера пропускаю через два триггера одной ПЛИС и сразу вывожу наружу на вторую ПЛИС. Делаю fast output registr. Он должен на такт добежать до второй ПЛИС. Задаю ограничения чтобы не попасть на метастабильное состояние во второй. И уже здесь по фронту запускается автомат синхронно с автоматом в первой, задержанной после выхода на один такт?
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 31 2014, 15:01
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(DENth @ Mar 31 2014, 18:56) *
Интересное решение. Спасибо. То есть например сигнал запуска автомата от контроллера пропускаю через два триггера одной ПЛИС и сразу вывожу наружу на вторую ПЛИС. Делаю fast output registr. Он должен на такт добежать до второй ПЛИС. Задаю ограничения чтобы не попасть на метастабильное состояние во второй. И уже здесь по фронту запускается автомат синхронно с автоматом в первой, задержанной после выхода на один такт?

Да, именно так. Ключевым моментом является как раз правильный тайминг на передаче сигнала между чипами, с соблюдением и setup-а и hold-а. Ну и понятно, что нужно контролировать взаимное разбегание клоков внутри чипов, особенно если используется внутренняя PLL в FPGA.
Go to the top of the page
 
+Quote Post
DENth
сообщение Mar 31 2014, 15:11
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 10-10-12
Из: Санкт-Петербург
Пользователь №: 73 890



Цитата(o_khavin @ Mar 31 2014, 19:01) *
Да, именно так. Ключевым моментом является как раз правильный тайминг на передаче сигнала между чипами, с соблюдением и setup-а и hold-а. Ну и понятно, что нужно контролировать взаимное разбегание клоков внутри чипов, особенно если используется внутренняя PLL в FPGA.


Вот. Про контроль разбежки хотелось бы более подробно, если можно. Как просто пример, если в каждой ПЛИС есть PLL на одинаковую частоту, то эти частоты можно также считать синхронными в обеих ПЛИС? Или нет? А для моего случая все-таки как учесть взаимную разбежку клоков, если интерфейсные констрейны здесь не подходят? Передачи данных, кроме сигнала синхронизации ведь нет. Синхросигналу задаются констрейны только на приемной стороне, чтобы исключить на ней же метастабильное состояние.
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 31 2014, 15:25
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(DENth @ Mar 31 2014, 19:11) *
Вот. Про контроль разбежки хотелось бы более подробно, если можно. Как просто пример, если в каждой ПЛИС есть PLL на одинаковую частоту, то эти частоты можно также считать синхронными в обеих ПЛИС? Или нет? А для моего случая все-таки как учесть взаимную разбежку клоков, если интерфейсные констрейны здесь не подходят? Передачи данных, кроме сигнала синхронизации ведь нет. Синхросигналу задаются констрейны только на приемной стороне, чтобы исключить на ней же метастабильное состояние.

Когда то давно, я сидел рядом с умными людьми, которые считали руками тайминг от входа клока до выхода сигналов на каждом FPGA и что-то там придумывали. Но я тогда был молодым падаваном и не помню подробностей. sm.gif Общий смысл в том, что надо суммировать все неопределённости от клокового входа до выхода данных на каждом чипе.
Go to the top of the page
 
+Quote Post
DENth
сообщение Mar 31 2014, 15:53
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 10-10-12
Из: Санкт-Петербург
Пользователь №: 73 890



Цитата(o_khavin @ Mar 31 2014, 19:25) *
Когда то давно, я сидел рядом с умными людьми, которые считали руками тайминг от входа клока до выхода сигналов на каждом FPGA и что-то там придумывали. Но я тогда был молодым падаваном и не помню подробностей. sm.gif Общий смысл в том, что надо суммировать все неопределённости от клокового входа до выхода данных на каждом чипе.


Почему-то мне кажется, что это нереально. К тому же от компиляции к компиляции задержки будут разниться, как их учесть? А вот кстати как быть при описании ограничений интерфейса с ПЛИСиной, если у всяких ЦАП, АЦП приведены значения tsu, th и tco, то где их брать в этом случае? Или есть какой-нибудь констрейн типа set_output_delay?

Цитата(SM @ Mar 31 2014, 19:10) *
Я бы сделал не только общий синхронный резет, а, на всякий случай, еще и сигнал перехода автомата в какое-то состояние, которое периодически случается, чтобы один автомат переходил в него не по собственному желанию, а синхронно с другим, как бы "более ведущим".

На 10 МГц, вообще, если хватит этих пинов междуПЛИСовых, так можно автомат в одной ПЛИС держать, и его состояние через эти пины использовать в другой ПЛИС. То есть не делать второй автомат, а просто передат по проводам состояние автомата.


Кстати, о таком решении я еще не думал. Если синхронизацию пытался сотворить, правда пока не особо удачно, то это - второй вариант решения, думаю более подходящий. Спасибо за идею! Состояний у атомата немного, пинов хватит.
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 31 2014, 16:49
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(DENth @ Mar 31 2014, 19:53) *
Спасибо за идею! Состояний у атомата немного, пинов хватит.


не забудьте о констрейнах! Выходные триггеры (дубликаты триггеров самого автомата) разместите в I/O. Затем посмотрите best и worst case времянок, какова задержка выходного сигнала от клока (clock-to-output). И зная эту задержку, задайте соотв. input delay для входа второй ПЛИС, worst case как максимальную (для сетапа), а best case как минимальную (для холда).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DENth   Синхронная работа двух ПЛИС   Mar 31 2014, 13:18
- - des00   ИМХО режьте плату и пробрасывайте тактовую и сигна...   Mar 31 2014, 13:33
|- - DENth   Цитата(des00 @ Mar 31 2014, 17:33) ИМХО р...   Mar 31 2014, 13:44
- - SM   Цитата(DENth @ Mar 31 2014, 17:18) . В ка...   Mar 31 2014, 15:10
- - Dmitriyspb   Товарищи! Только этот сигнал скорее всего буде...   Apr 1 2014, 02:52
- - SM   Цитата(Dmitriyspb @ Apr 1 2014, 06:52) То...   Apr 1 2014, 02:55
|- - DENth   Цитата(SM @ Apr 1 2014, 06:55) Или, что, ...   Apr 1 2014, 06:57
|- - SM   Цитата(DENth @ Apr 1 2014, 10:57) Так? н...   Apr 1 2014, 07:12
- - o_khavin   Цитата(Dmitriyspb @ Apr 1 2014, 06:52) То...   Apr 1 2014, 04:20
- - Dmitriyspb   Цитата(o_khavin @ Apr 1 2014, 08:20) Где ...   Apr 1 2014, 04:53
- - Serhiy_UA   Еще иногда помогает: на одной из ПЛИС автомат по ф...   Apr 1 2014, 05:28


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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 15:11
Рейтинг@Mail.ru


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