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

 
 
> Проблема приема данных Spartan-6 от АЦП
maxics
сообщение Nov 26 2013, 13:39
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 16-11-09
Пользователь №: 53 649



Требуется принять поток данных в SPARTAN-6 с двухканальной АЦП LTC2195. Частота 100 МГц, режим DDR 4 lane, т.е данные в АЦП приходят с частотой 200 МГц по переднему и заднему фронту.
Прикрепленное изображение

Это второй релиз платы (разводка сильно не менялась). В первом релизе, потратив много времени, удалось подобрать смещение фазы DCO (такт с АЦП) с помощью DCM (PHASE_SHIFT).
В последнем релизе сделать это не удается. Видно искажение входного сигнала. Пытались подобрать фазу DCO, закреплять в PlanAhead, но безрезультатно. Бывает, что при определенном значении Phase Shift данные принимаются верно, но достаточно что-нибудь поменять в проекте, как все "уезжает". В чем может таиться ошибка? Как лучше организовать прием?
Файл с исходным кодом:
Прикрепленный файл  ADC2195_receiver.vhd ( 9.53 килобайт ) Кол-во скачиваний: 638
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TRILLER
сообщение Nov 26 2013, 13:59
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001



А вы входные триггеры в "лапы" поместили?
Go to the top of the page
 
+Quote Post
maxics
сообщение Nov 26 2013, 14:21
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 16-11-09
Пользователь №: 53 649



Цитата(TRILLER @ Nov 26 2013, 16:59) *
А вы входные триггеры в "лапы" поместили?


Что есть "лапы"?
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Nov 26 2013, 16:35
Сообщение #4


Местный
***

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



Цитата(maxics @ Nov 26 2013, 18:21) *
Что есть "лапы"?

IO timing из даташита гарантируется только для случая, когда входные/выходные регистры располагаются в IO-cell. Это достигается атрибутом IOB=true на соответствующих регистрах проекта. При этом между регистром и пином никакой дополнительной логики быть не должно.
Go to the top of the page
 
+Quote Post
maxics
сообщение Dec 6 2013, 06:33
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 16-11-09
Пользователь №: 53 649



Сделал все как было написано выше. Такт пускаю через BUFIO2 и затем на PLL, где делаю такт для IDDR.
Прикрепленное изображение

Стабильности не прибавилось.
Не выполняются тайминги для констрейнтов описанных в UCF:
Код
NET "out2a_p" LOC = L3;
NET "out2a_n" LOC = L1;


NET "FR_p" LOC = K2;
NET "FR_n" LOC = K1;

NET "DCO_p" LOC = J3;
NET "DCO_n" LOC = J1;

NET "reset" LOC = D13;

INST "x_ADC2195_receiver/ibuf_2a" IOB =TRUE;
INST "x_ADC2195_receiver/IBUFGDS_inst2" IOB =TRUE;
#INST "x_ADC2195_receiver/ibuf_FR" IOB =TRUE;


INST "x_ADC2195_receiver/IDDR2_inst_a" IOB =TRUE;
#INST "x_ADC2195_receiver/IDDR2_inst_b" IOB =TRUE;
#INST "x_ADC2195_receiver/IDDR2_inst_c" IOB =TRUE;
#INST "x_ADC2195_receiver/IDDR2_inst_d" IOB =TRUE;

#
NET "DCO_p" TNM_NET = "DCO_p";
TIMESPEC TS_DCO_p = PERIOD "DCO_p" 5 ns HIGH 50 %;

#NET "x_ADC2195_receiver/DCO"   TNM_NET = DCO;

NET "x_ADC2195_receiver/CLK0"   TNM_NET = CLK0_GRP;
NET "x_ADC2195_receiver/CLK180" TNM_NET = CLK180_GRP;

NET "out2a*" TNM = "out2a";
TIMEGRP     "out2a" OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "DCO_p" TIMEGRP "CLK0_GRP";
TIMEGRP     "out2a" OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "DCO_p" TIMEGRP "CLK180_GRP";

NET "Data_SV_out_I[0]" LOC = b20;
NET "Data_SV_out_I[1]" LOC = b21;
NET "Data_SV_out_I[2]" LOC = b22;
NET "Data_SV_out_I[3]" LOC = d20;
NET "Data_SV_out_I[4]" LOC = d21;
NET "Data_SV_out_I[5]" LOC = d22;
NET "Data_SV_out_I[6]" LOC = c20;
NET "Data_SV_out_I[7]" LOC = c22;
NET "Data_SV_out_I[8]" LOC = f20;
NET "Data_SV_out_I[9]" LOC = h19;
NET "Data_SV_out_I[10]" LOC = h18;
NET "Data_SV_out_I[11]" LOC = e20;
NET "Data_SV_out_I[12]" LOC = e22;
NET "Data_SV_out_I[13]" LOC = f21;
NET "Data_SV_out_I[14]" LOC = f22;
NET "Data_SV_out_I[15]" LOC = h20;

NET "test[0]" LOC = k16;
NET "test[1]" LOC = j16;
NET "test[2]" LOC = h16;
NET "test[3]" LOC = h17;
////////////////////////////////////////////////////
Timing constraint: TIMEGRP "out2a" OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE COMP "DCO_p" TIMEGRP CLK0_GRP;
For more information, see  Offset In Analysis  in the Timing Closure User Guide (UG612).
  2 paths analyzed, 1 endpoint analyzed, 1 failing endpoint
  1 timing error detected. (1 setup error, 0 hold errors)
  Minimum allowable offset is   2.404ns.
--------------------------------------------------------------------------------
  
Paths for end point x_ADC2195_receiver/IDDR2_inst_a (ILOGIC_X0Y83.D), 2 paths
--------------------------------------------------------------------------------
Slack (setup path):      -1.154 ns (requirement - (data path - clock path - clock arrival + uncertainty))
   Source:                out2a_n  (PAD)
   Destination:           x_ADC2195_receiver/IDDR2_inst_a  (FF)
   Destination Clock:    x_ADC2195_receiver/clk0 rising at 1.111ns
   Requirement:          1.250ns
   Data Path Delay:      2.975ns (Levels of Logic = 3)(Component delays alone exceeds constraint)
   Clock Path Delay:     -0.236ns (Levels of Logic = 4)
   Clock Uncertainty:    0.304ns
  
   Clock Uncertainty:          0.304ns  ((TSJ^2 + DJ^2)^1/2) / 2 + PE
     Total System Jitter (TSJ):  0.050ns
     Discrete Jitter (DJ):       0.132ns
     Phase Error (PE):           0.233ns

В чем может быть причина ошибок?
Причина редактирования: используйте теги для оформления кода (с) модератор
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- maxics   Проблема приема данных Spartan-6 от АЦП   Nov 26 2013, 13:39
|- - Maverick   Цитата(maxics @ Nov 26 2013, 16:21) Что е...   Nov 26 2013, 14:33
||- - elzaro   Цитата(Maverick @ Nov 26 2013, 17:33) лап...   Nov 26 2013, 16:27
|- - o_khavin   Цитата(maxics @ Dec 6 2013, 10:33) Сделал...   Dec 8 2013, 08:43
|- - XVR   Цитата(o_khavin @ Dec 8 2013, 12:43) А на...   Dec 8 2013, 14:00
|- - o_khavin   Цитата(XVR @ Dec 8 2013, 18:00) Смотрел, ...   Dec 8 2013, 15:20
|- - XVR   Цитата(o_khavin @ Dec 8 2013, 19:20) Во п...   Dec 9 2013, 09:44
|- - o_khavin   Цитата(XVR @ Dec 9 2013, 13:44) Пока ТС н...   Dec 10 2013, 19:56
- - dmitry-tomsk   Цитата(maxics @ Nov 26 2013, 16:39) Требу...   Nov 26 2013, 14:07
- - Bad0512   Цитата(maxics @ Nov 26 2013, 20:39) Требу...   Nov 26 2013, 16:34
- - XVR   Судя по этим строкам в отчете - ЦитатаData Path De...   Dec 6 2013, 09:48
- - TRILLER   Извините, со спартанами не работал, но.. каким обр...   Dec 9 2013, 10:19
|- - maxics   Между IDDR2 и данными никакой доп. логики нет. Это...   Dec 11 2013, 10:27
- - TRILLER   Хм.. А в обратной связи, значит, оставили? Может п...   Dec 12 2013, 06:20
- - Mityan   Здравствуйте. В ПЛИС новичок. Изучаю вопрос подклю...   Dec 20 2013, 13:01
|- - Bad0512   Цитата(Mityan @ Dec 20 2013, 20:01) Здрав...   Dec 22 2013, 05:01
|- - Mityan   Цитата(Bad0512 @ Dec 22 2013, 07:01) Это ...   Dec 22 2013, 18:31
|- - Bad0512   Цитата(Mityan @ Dec 23 2013, 01:31) То ес...   Dec 23 2013, 04:51
|- - Mityan   Цитата(Bad0512 @ Dec 23 2013, 06:51) Не с...   Dec 23 2013, 06:35
|- - Timmy   Цитата(Mityan @ Dec 23 2013, 10:35) По по...   Dec 23 2013, 07:22
|- - Bad0512   Цитата(Mityan @ Dec 23 2013, 13:35) ПЛИС ...   Dec 23 2013, 08:09
- - Mityan   Большое спасибо за идею по поводу понижения тактов...   Dec 23 2013, 13:24
- - Mityan   Нашел еще один несколько похожий документ - харр88...   Dec 24 2013, 09:32


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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 19:06
Рейтинг@Mail.ru


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