|
Синхронизация в ПЛИС, Работа с несколькими частотами |
|
|
|
Apr 12 2007, 10:25
|

Участник

Группа: Участник
Сообщений: 51
Регистрация: 19-10-05
Пользователь №: 9 839

|
Здравствуйте! При разработке проекта возникла такая проблема. Используем ПЛИС CyclonII, генератор на 16.384 Мгц. Фреймер DS21Q50. Тактовую частоту генератора завожу на глобальный клок Плис(использую четвертый банк). Там эта частота делится на 8 (получаем частоту 2048) и вывожу ее с ножки плис на MCLK фреймера. Для фреймера эта частота является опорной. С фреймера идет частота 16.384 Мгц тоже на глобальный клок ПЛИС (используем первый банк). Эта частота формируется самим фреймером. И она, возможно, может отличаться от частоты, которая идет с генератора. Так как в фреймере есть ФАПЧ и он подстраивает частоту под себя. На Плис реализуется FIFO. При такой организации сбиваются внутренние счетики. Получается рассинхронизация. Если подавать на фреймер частоту 2,048 МГц с генератора (т.е. с отдельного прибора) то все работает. При этом не используем делитель на ПЛИС. То есть получается что нельзя использовать делитель частоты или что то еще. Не могу разобраться в чем проблема. Прошу помощи, коллеги. Сколько разных частот можно заводить на ПЛИС. Так чтобы не было влияния. У нас получается, что мы подаем две разные частоты на ПЛИС. Если подавать с прибора частоту 16.384 МГц и подавать на делитель ПЛИС. Эффект такой же. Не работает.  На выходе все по честному. Частота делится. Не могу разобраться.
|
|
|
|
|
 |
Ответов
|
Apr 12 2007, 15:20
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Один клоковый домен имеется ввиду банк ввода ввывода? /////////////////////////////////////////////////////////////////////// Можно и так сказать. У Вас два домена одной частоты, но не синхронны. И фифо как раз должно было помочь. Вот пример посмотрите (представьте, что эти два регистра одноклоковое фифо)
module in_out_data ( output reg [7:0] out_data, output out_clk, input global_clk, input [7:0] input_data, input in_clk_a, input in_clk_b );
reg [7:0] data_rg; reg [2:0] sdvig_in_rg; reg [2:0] sdvig_out_rg;
wire e_wr_rg; wire e_rd_rg;
assign out_clk = in_clk_b;
always @ (posedge global_clk) begin sdvig_in_rg <= {sdvig_in_rg[1:0], in_clk_a}; sdvig_out_rg <= {sdvig_out_rg[1:0], in_clk_b}; if (e_wr_rg) data_rg <= input_data; if (e_rd_rg) out_data <= data_rg; end
assign e_wr_rg = sdvig_in_rg[1] & ~sdvig_in_rg[2]; assign e_rd_rg = ~sdvig_out_rg[1] & sdvig_out_rg[2];
endmodule
|
|
|
|
|
Apr 13 2007, 10:03
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(DmitryR @ Apr 13 2007, 10:11)  Дело в том, что для PLL второго циклона 16 МГц - предельно низкая частота, а реализация делителя на счетчике думаю грязновата получается - все же фреймер требует 50 ppm. Поэтому мне кажется, что надо просто поставить на фреймер отдельный генератор, не пропуская его через ПЛИС. Если не удастся найти 2.048 - поставьте 16.384, ведь фреймер умеет сам делить опорную частоту на 2, 4 или 8. 1) предельно низкая не 16384 вообще то, для циклона2 смотрите в Table 5–51. PLL Specifications (Part 1 of 2) - 10 Мгц 2)если у вас генератор 50 ppm то эти самые ppm не могут прибавится за счёт делителя 3) проблемы возможно как раз в самом генераторе который тактирует плис - ведь насколько стало ясно "так работает" - это происходит при тактировании от внешнего источника
--------------------
Cogito ergo sum
|
|
|
|
Сообщений в этой теме
Kenav Синхронизация в ПЛИС Apr 12 2007, 10:25 Евгений Николаев Количество используемых частот в ПЛИС явно не огра... Apr 12 2007, 11:04 Kenav Цитата(Евгений Николаев @ Apr 12 2007, 12... Apr 12 2007, 11:32  -=Sergei=- Цитата(Kenav @ Apr 12 2007, 12:32) Это я ... Apr 12 2007, 12:15 Евгений Николаев Кто-то из нас кого-то (опять-таки из нас :-) ) не ... Apr 12 2007, 12:19 Kenav Цитата(Евгений Николаев @ Apr 12 2007, 13... Apr 12 2007, 13:12 sazh Проблема в том, что если подавать на фреймер 2048 ... Apr 12 2007, 14:16 Kenav Цитата(sazh @ Apr 12 2007, 15:16) Проблем... Apr 12 2007, 14:49 Евгений Николаев Если не секрет - выложите проект, чтобы можно было... Apr 12 2007, 15:15    DmitryR Цитата(Postoroniy_V @ Apr 13 2007, 11:03)... Apr 13 2007, 10:32     Postoroniy_V Цитата(DmitryR @ Apr 13 2007, 11:32) Хоро... Apr 13 2007, 10:55 Евгений Николаев Послушайте, а в качестве генератора 16.384МГц Вы ч... Apr 13 2007, 11:10 Postoroniy_V Цитата(Евгений Николаев @ Apr 13 2007, 12... Apr 13 2007, 11:11  Stewart Little Ну, ИМХО сперва нужно посмотреть, какие сигналы вы... Apr 13 2007, 12:00   Kenav Цитата(Stewart Little @ Apr 13 2007, 13:0... Apr 13 2007, 14:15    Stewart Little Цитата(Kenav @ Apr 13 2007, 15:15) Тоесть... Apr 13 2007, 14:44 Tosha Все таки непонятно где именно происходит рассинхро... Apr 16 2007, 08:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|