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

 
 
> 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
Ответов
Antgol
сообщение Feb 3 2014, 06:52
Сообщение #2





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



AJIEKCEu, спасибо за ссылки, изучаю мануалы.

Цитата
Вас не смущает, что данные бегут между чипами не в вакууме, а по реальным платам и разъёмам? Как там с разбегом сигналов и т.п.?

o_khavin, немного, конечно, смущает, sm.gif но разброс, если верить мануалам, всего лишь +/- 84 ps

Забыл про это написать, каюсь. В одной плате согласно мануалу задержка FPGA-разъем 497+/-84 ps, в другой - 647+/-0.3 ps

Цитата
P.S. Ещё и клок не дифференциальный.

Могу переделать в дифференциальный. Мне казалось, что частота в общем-то еще не столь велика, можно и обычный использовать.

Цитата
1) STA констрейны нужны для того чтобы заставить тул выполнить необходимые вам условия.
Для этого надо сначала составить список этих условий.
Неработоспособность устройства по неизвестным причинам не есть основанием для создания констрейнов.

Torpeda, это понятно. Мой вопрос был такой: в той стандартной ситуации, что я описал, какие нужно задать стандартные требования.

Цитата
1. Как выводили клок из первого виртекса? Тупо assign pin = clk или с помощью DDR примитива?

Bad0512, да, тупо в .ucf прописал соответствие сигнала с пином (специальным клоковым пином)..

Цитата
2. Какой voltage standard пользуете?

Для интерфейсного разъема жестко прописан 2.5 В, используется LVCMOS25

Цитата
3. Надеюсь, на втором виртексе клоки завдены на специальный клоковый вход?

Да

Цитата
1. 250 МГц для single ended стандартов дюже много, тем более что вы всё это через разъём тащите. Напрашивается DDR LVDS, однако я не уверен что теперь вам это удастся сделать без переделки железа.

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

Цитата
2. В любом раскладе предстоят танцы с IODELAY по входу данных, лучше бы подстройку задержек сделать динамической, хотя тут вам решать.

Ок, понятно..


Всем большое спасибо за ответы. Я, по всей видимости, несколько недооценил сложность задачи - казалось, что все тривиально и должно сразу заработать. Ну и плюс я сперва заводил более медленный PCI-Express, который генерировал юзер-клок 125 МГц - на 125 передача между чипами, собственно, сразу и заработала без проблем. При удвоении частоты же, наверное, придется поразбираться с клоковыми ресурсами Virtex 6.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Antgol   Xilinx timing constraints: что необходимо для простейшей транзакции?   Jan 31 2014, 10:56
- - AJIEKCEu   Пробовали считать выполнение условий Setup-Hold на...   Jan 31 2014, 11:43
|- - Antgol   Цитата(AJIEKCEu @ Jan 31 2014, 15:43) Про...   Jan 31 2014, 12:15
|- - AJIEKCEu   Цитата(Antgol @ Jan 31 2014, 16:15) А мож...   Jan 31 2014, 13:32
- - 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
|- - 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 Текстовая версия Сейчас: 29th July 2025 - 22:16
Рейтинг@Mail.ru


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