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

 
 
> Синхронизовать две DE0 борды на 450МГц
iiv
сообщение Jul 23 2013, 16:28
Сообщение #1


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Всем привет,

есть две терасиковские борды с EP4CE22F17C6, на каждой из которых работает идентичный дизайн на частоте 450МГц. Сам дизайн прост, поэтому удалось выйти на такую частоту, на ней же хочется оставаться. В дизайне есть основной клок (450МГц) и счетчик по этому клоку. Счетчик двухступенчатый, первая ступень - 2-х битная, а по переполнению счетчик клочит второй счетчик (44Бит) на 450/4МГц частоте. На платах есть свои 50МГц осцилляторы, использовать внешние осцилляторы не хочу. Мне необходимо синхронизировать оба счетчика с обеих плат (пусть с какой-то фиксированной фазой) и удерживать такую синхронизацию бесконечно долго (счетчик переполняется за 40 часов, вот это для меня означает бесконечно долго).

Физически для такой синхронизации я могу задействовать не более 10 ног каждой плисины через JP3 (2x13) коннектор. Длина провода, если постараться, будет не более 10см, но ни о каких лвдсах, к сожалению, мечтать не приходится. Дополнительно хотел бы сказать, что вокруг не сильно благоприятные электромагнитные условия, то есть этот проводок между плисками, хоть я и заэкранирую, может случайно что-то словить из окружающей среды.

Реально никогда с таким не сталкивался, и прошу совета, как правильно поступить. Железо поменять не смогу - не реально.

Вижу одно из решений:

первая плисина
Код
input CLOCK_50;
inout [12:0] GPIO_2;

my_pll1 my_pll1_module(.inclk0(CLOCK_50) /*50МГц от кварца*/, .inclk1(GPIO_2[2]) /* вход 450МГц от соседней плиски*/,
.c0(GPIO_2[0]) /* 450МГц на соседнюю плиску*/, .c1(GPIO_2[1]) /* еще один выход с 450МГц клоком на соседнюю плиску*/);

wire [1:0] FastCounter;
wire         MyClk;

assign FastCounter=GPIO_2[3:4];
assign MyClk=GPIO_2[0];

always @(posedge MyClk) FastCounter<=FastCounter+1;


вторая плисина
Код
inout [12:0] GPIO_2;

my_pll2 my_pll2_module(.inclk0(GPIO_2[0]) /*первый 450МГц вход от соседний плиски*/, .inclk1(GPIO_2[1]) /*второй 450МГц вход от соседний плиски*/,
.c0(GPIO_2[2]) /* 450МГц на соседнюю плиску*/);

wire [1:0] FastCounter;
wire         MyClk;

assign FastCounter=GPIO_2[3:4];
assign MyClk=GPIO_2[2];


Еще в железе не проверял, но вопрошаю, пожалуйста, посоветуйте, можно ли так, и что можно еще улучшить!

Спасибо!

ИИВ
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kuzmi4
сообщение Jul 24 2013, 11:31
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 iiv
А почему бы не передавать скажем 1MHz (ну или больше - суть в том чтобы не передавать 450, а как можно меньше), синхронной с основной частотой и потом проводить синхронизацию - например так:
ctrl_dcmphase_v6 - (guest/guest)
Или же, если такой метод не подходит, попробовать использовать свой аналог 1588.
Или же комбинация 2х вышеописанных методов.

И почему вы не хотите LVDS использовать?
Go to the top of the page
 
+Quote Post
iiv
сообщение Jul 24 2013, 20:31
Сообщение #3


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Во-первых, хочу сказать всем помогавшим и сочувствовавшим огромное спасибо! Надеюсь, с Вашей помощью, смогу решить свою незадачку.

Цитата(Kuzmi4 @ Jul 24 2013, 16:31) *
И почему вы не хотите LVDS использовать?


железо менять нельзя, а лвдсы в этой борде (Terasic DE0) отсутствуют - я вроде правильно понимаю, что по 2.54 пин штеккеру лвдс пропустить нельзя.

Есть один вопрос вокруг этой же темы... Скажите, пожалуйста, есть ли какие-то аппаратные средства у Альтеры в 4-ом циклоне чтобы измерить фазовый сдвиг двух сигналов с одинаковой частотой - например, частота у меня будет 25МГц, а вот сдвиг фаз хотелось бы с хорошей точностью (порядка 1нс, а если можно то и больше) померить. Понятно, что обычным счетчиком только до 2.5нс реально, но, вдруг есть, посоветуйте, пожалуйста, что читать и где копать. Вроде ALTPLL это не умеет делать...

Спасибо

ИИВ
Go to the top of the page
 
+Quote Post



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

 


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


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