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

 
 
> Xilinx ASI пример 1015
anatolich
сообщение Jan 21 2014, 13:54
Сообщение #1


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

Группа: Участник
Сообщений: 101
Регистрация: 4-05-07
Пользователь №: 27 512



Пробовал ли кто-нибудь пример из харр1015?

Это DVB-ASI асинхронный последовательный интерфейс для MPEG по коаксиалу.

Я пробую просимулить поведенческую модель.
Тх нормально делает 8 в 10,
на Rx нормально делается десереализация. Потом это поступает на фрэймер
и вот тут не получается, что-то я недопонимаю.
Я предполагал что после него должно быть нормальное выравнивание по стартовому байту
Их генератор генерит последовательность 47h, 48h, 49h, ... 02h, BCh, BCh, 47h
с байтом синхронизации ВС
Но на выходе фрэймера какая-то каша, хотя ВС им ловятся и рефрейминг он делает
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
anatolich
сообщение Jan 22 2014, 14:27
Сообщение #2


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

Группа: Участник
Сообщений: 101
Регистрация: 4-05-07
Пользователь №: 27 512



В результате симуляции подметил, что Тх сериализатор выдает в линию по два бита
например:
если на входе 1010000011 то в серию выходит 1100001010
Это фича у них такая? Так и должно быть?
Go to the top of the page
 
+Quote Post
anatolich
сообщение Jan 23 2014, 06:43
Сообщение #3


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

Группа: Участник
Сообщений: 101
Регистрация: 4-05-07
Пользователь №: 27 512



Так и оказалось...
в исходниках харр1015 имелась ошибочка
в модуле serializer_10b1b.vhd
вместо
ODDR_inst : ODDR2
generic map(
DDR_ALIGNMENT => "NONE", -- "OPPOSITE_EDGE"
INIT => '0', -- Initial value of 0
SRTYPE => "SYNC") -- Synchronous reset
port map (
Q => sdout, -- 1-bit DDR output
C0 => sclk_0, -- 1-bit clock input
C1 => sclk_180,
CE => '1', -- 1-bit clock enable input
D0 => sdata_slice_R(1), -- 1-bit data input (positive edge)
D1 => sdata_slice_R(0), -- 1-bit data input (negative edge) !!!!!!!!!!!!!!!!!!!!!!!!!
R => '0', -- 1-bit reset input
S => '0' -- 1-bit set input
);

нужно

ODDR_inst : ODDR2
generic map(
DDR_ALIGNMENT => "NONE", -- "OPPOSITE_EDGE"
INIT => '0', -- Initial value of 0
SRTYPE => "SYNC") -- Synchronous reset
port map (
Q => sdout, -- 1-bit DDR output
C0 => sclk_0, -- 1-bit clock input
C1 => sclk_180,
CE => '1', -- 1-bit clock enable input
D0 => sdata_slice_R(0), -- 1-bit data input (positive edge)
D1 => sdata_slice_R(1), -- 1-bit data input (negative edge) !!!!!!!!!!!!!!!!!!!!!!!!!
R => '0', -- 1-bit reset input
S => '0' -- 1-bit set input
);
Go to the top of the page
 
+Quote Post
anatolich
сообщение Jan 27 2014, 13:26
Сообщение #4


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

Группа: Участник
Сообщений: 101
Регистрация: 4-05-07
Пользователь №: 27 512



Напоминаю, я прикручиваю пример для 3-го Спартана 1015 ASI к 6-му Спартану и хочу уменьшить скорость

Долго бился с ПостРут симуляцией и выяснилось что нужно поменять атрибуты ODDR2
на
ODDR_inst : ODDR2
generic map(
DDR_ALIGNMENT => "С0", -- "OPPOSITE_EDGE"
INIT => '0', -- Initial value of 0
SRTYPE => "АSYNC") -- Synchronous reset
port map (
Q => sdout, -- 1-bit DDR output
C0 => sclk_0, -- 1-bit clock input
C1 => sclk_180,
CE => '1', -- 1-bit clock enable input
D0 => sdata_slice_R(0), -- 1-bit data input (positive edge)
D1 => sdata_slice_R(1), -- 1-bit data input (negative edge) !!!!!!!!!!!!!!!!!!!!!!!!!
R => '0', -- 1-bit reset input
S => '0' -- 1-bit set input
);
Теперь попробую в железе
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:52
Рейтинг@Mail.ru


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