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

 
 
> Xilinx timing constraints: что необходимо для простейшей транзакции?, Передаю между 2-я Virtex6 шину 32 бита на 250 МГц, ошибки в данных
Antgol
сообщение Jan 31 2014, 10:56
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 6-03-07
Пользователь №: 25 920



Здравствуйте!

Глобальный вопрос такой: между 2-я Xilinx FPGA передаются данные и клок (не дифференциальный), по которому эти данные меняются; какие при этом должны быть заданы constraints?

Теперь опишу, в чем собственно проблема. Я передаю данные из Virtex 6 xc6vlx75t-2ff784 в Virtex 6 vc6clx760-1ff1760 (из дочерней карты с высокоскоростным трансивером в плату HAPS, одна плата вставляется в другую через разъем HapsTrack II). Данные меняются по клоку 250 МГц (он генерируется хард-ядром PCI-Express из референсного клока 100 МГц). Передается шина данных Data 32 бита, сигнал валидности Valid и сам клок Clk. На выходе одной ПЛИС и на входе другой использую регистры для Data и Valid по rising edge Clk (чтобы их можно было разместить рядом с пинами для минимизации задержки). Клок передается по пинам, подсоединенным к клоковым цепям каждой ПЛИС. Использую вот такой constraint в каждой ПЛИС:

NET "clk" TNM_NET = "clk";
TIMESPEC "TS_clk" = PERIOD "clk" 250 MHz HIGH 50.00%;

Проблема в том, что данные иногда приходят битые, например, х“97 2B FF FF” вместо х“97 6F FF FF”. Ошибки возникают на разных битовых позициях, похоже на рассогласование данных и клока на приемной стороне.
Нужно ли использовать какие-либо дополнительные constraints на сигналы Data и Valid, что-то вроде OFFSET IN или From-to? Ситуация-то вроде бы простейшая и вполне банальная. Книжку “Constraints Guide” Xilinx читал, пока не помогло..
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AJIEKCEu
сообщение Jan 31 2014, 11:43
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 314
Регистрация: 7-12-05
Пользователь №: 11 917



Пробовали считать выполнение условий Setup-Hold на входе?

Вариант для ленивых (но не совсем концептуально верный) - примите CLK на IDELAY и попробуйте поиграться с задержкой.
Go to the top of the page
 
+Quote Post
Antgol
сообщение Jan 31 2014, 12:15
Сообщение #3





Группа: Участник
Сообщений: 11
Регистрация: 6-03-07
Пользователь №: 25 920



Цитата(AJIEKCEu @ Jan 31 2014, 15:43) *
Пробовали считать выполнение условий Setup-Hold на входе?

А можно подробнее, что Вы имеете в виду под "считать"?
ISE говорит, что All constraints are met, в Timing Report на TS_Clk все холды и сетапы маленькие

Цитата(AJIEKCEu @ Jan 31 2014, 15:43) *
Вариант для ленивых (но не совсем концептуально верный) - примите CLK на IDELAY и попробуйте поиграться с задержкой.


А как это сделать по-правильному? Я понимаю, что можно поиграть с задержкой, я это делал путем задания разной частоты TIMESPEC "TS_clk" = PERIOD "clk" ХХХ MHz HIGH 50.00%; при этом, как я понимаю, задержка автоматически подкручивается во входном клоковом буфере. Что интересно, ошибок меньше, если задать частоту 125 МГц, а не реальную 250 МГц. Можно и с IDELAY поиграть. Но должен же быть некий правильный путь решения проблемы, я как раз думал, что нужно задать какие-то дополнительные констрейнты, чтобы задержки подкручивались автоматически.
Go to the top of the page
 
+Quote Post
AJIEKCEu
сообщение Jan 31 2014, 13:32
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 314
Регистрация: 7-12-05
Пользователь №: 11 917



Цитата(Antgol @ Jan 31 2014, 16:15) *
А можно подробнее, что Вы имеете в виду под "считать"?

У вас есть выходные триггера, выходной синхросигнал (на первом ПЛИСе), есть среда передачи. Распространение сигналов занимает некоторое время, появляется разброс. Есть приемный триггер (во втором ПЛИСе). Что такое setup-hold вы наверное знаете. В передаче внутри ПЛИС за выполнением Setup-hold следит Xilinx и выводит отчет. Снаружи - должны посчитать вы.

Цитата(Antgol @ Jan 31 2014, 16:15) *
ISE говорит, что All constraints are met, в Timing Report на TS_Clk все холды и сетапы маленькие

ISE может посчитать ВНУТРИ ПЛИС. Но о вашей линии передачи снаружи у него нет данных.


Цитата(Antgol @ Jan 31 2014, 16:15) *
А как это сделать по-правильному? Я понимаю, что можно поиграть с задержкой, я это делал путем задания разной частоты TIMESPEC "TS_clk" = PERIOD "clk" ХХХ MHz HIGH 50.00%; при этом, как я понимаю, задержка автоматически подкручивается во входном клоковом буфере. Что интересно, ошибок меньше, если задать частоту 125 МГц, а не реальную 250 МГц. Можно и с IDELAY поиграть. Но должен же быть некий правильный путь решения проблемы, я как раз думал, что нужно задать какие-то дополнительные констрейнты, чтобы задержки подкручивались автоматически.


Возможно(хотя я не уверен), если задать правильный констрейн (пусть гуру сделают уточнение) ISE за вас накрутит линию приема через логику. Но я практически уверен, что никакой IDELAY он не добавит. И реализованная им схема (в случае если он умеет сам докручивать времянки) будет не совсем корректна (неоптимальна).

Поэтому:
http://www.xilinx.com/support/documentatio...uides/ug362.pdf (ключевое слово bufio)
http://www.xilinx.com/support/documentatio...uides/ug361.pdf (ключевое слово IODELAYE1)
http://www.xilinx.com/support/documentatio...heets/ds152.pdf (ключевое слова TPHCS)
В идеале, вам надо реализовать что-то вроде Рисунка 3-7 во 2-м документе. Только можно вместо ISERDES обойтись обычным триггером.

Ну а как посчитать времянки - спросите у товарищей на работе.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Antgol   Xilinx timing constraints: что необходимо для простейшей транзакции?   Jan 31 2014, 10:56
- - o_khavin   Цитата(Antgol @ Jan 31 2014, 14:56) Здрав...   Jan 31 2014, 13:33
- - Torpeda   Цитата(Antgol @ Jan 31 2014, 13:56) Здрав...   Jan 31 2014, 15:44
- - Bad0512   Цитата(Antgol @ Jan 31 2014, 17:56) Здрав...   Feb 1 2014, 13:42
- - Antgol   AJIEKCEu, спасибо за ссылки, изучаю мануалы. Цита...   Feb 3 2014, 06:52
|- - Torpeda   Цитата(Antgol @ Feb 3 2014, 09:52) Torped...   Feb 3 2014, 07:32
|- - SM   Цитата(Antgol @ Feb 3 2014, 10:52) на 125...   Feb 3 2014, 08:14
- - Antgol   ЦитатаСудя по проявлению проблемы вам скорее всего...   Feb 3 2014, 09:33
|- - SM   Цитата(Antgol @ Feb 3 2014, 13:33) я удво...   Feb 3 2014, 09:46
- - krux   посмотрите ещё xapp856   Feb 3 2014, 09:51
- - Antgol   ЦитатаНу займитесь, значит, упополамливанием с пер...   Feb 3 2014, 12:02
|- - SM   Цитата(Antgol @ Feb 3 2014, 16:02) SM, а ...   Feb 3 2014, 12:04
|- - AJIEKCEu   Цитата(SM @ Feb 3 2014, 16:04) Хорошую це...   Feb 4 2014, 06:27
- - Yuris   Хороший совет был посчитать Setup/Hold для начала....   Feb 7 2014, 07:58
- - Corner   Вопрос раз - как разведена плата? Все проводники в...   Feb 7 2014, 14:26
- - Antgol   Прошу прощения за то, что молча бросил тему - закр...   Mar 12 2014, 03:32


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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 16:43
Рейтинг@Mail.ru


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