|
Управляемый делитель тактовой частоты(клоков) |
|
|
|
 |
Ответов
|
Jan 16 2016, 04:07
|

Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 10-10-07
Из: Новосибирск
Пользователь №: 31 229

|
Цитата(AJIEKCEu @ Jan 16 2016, 05:37)  Мне кажется, без минимальной схемы - тут никуда. Я имею ввиду функциональной. Если у вас частота на АЦП неизменна(50 МГц) - какой клок вам нужен на CIC? По идее данные заходят на CIC с частотой работы (дискретизации) АЦП. А вот выходят из CIC - на меньшей частоте. Но обычно это реализуется не другой частотой, а значимостью сигнала. То есть на входе - каждый такт значимый, а на выходе есть некий отдельный признак значимых данных. Который возникает раз в 1/2/4/8 и т.д. тактов. Все верно. Все в соответствии с вашей идеей.  Только термин "значимость" слышу первый раз. CIC состоит из двух частей, первая часть работает на частоте DAC (50 МГц) . Вторая часть должна работать на пониженной частоте. Разработчик, который вел проект до меня, сделал это через тактирование. Клоки для второй части CIC брались от делителя (на счетчике) от клоков DAC. Проект был реализован в редакторе Schematic и без всяких sdc. Проект успешно (!) прошел тестирования и пошел в серию. Пока не понадобилось внести изменение в функционал и перевести на другую элементную базу. Небольшие изменения вносимые в произвольную часть схемы нарушали работоспособность. Когда добавил .sdc и прогнал в TimeQuest получил сплошные слаки. Исходная прошивка перестала быть работоспособной. Было принято решение переписать на Verilog. Что еще добавить? Пожалуй, то что я с ПЛИС до этого серьезно не работал. Возвращаясь к теме. Dmitriyspb предложил идею, которую сейчас прорабатываю. Первая и вторая часть тактируется одной, системной частотой, а понижение частоты происходит посредствам "пропускания" тактов. Типа: always @(posedge clk) .... if(sample)... где clk -- клоки высокочастотные (200МГц), а sample -- разрешение.
--------------------
|
|
|
|
|
Jan 16 2016, 06:55
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(shamrel @ Jan 16 2016, 11:07)  CIC состоит из двух частей, первая часть работает на частоте DAC (50 МГц) . Вторая часть должна работать на пониженной частоте. Разработчик, который вел проект до меня, сделал это через тактирование. Клоки для Код always_ff @(posedge iclk) begin cnt <= cnt + 1'b1; // cic_comb__ival <= get_decim_factor(ibw, cnt); cic_comb__idat <= cic_acc__odat; end
//------------------------------------------------------------------------------------------------------ // //------------------------------------------------------------------------------------------------------
generate genvar i; for (i = 0; i < 2; i++) begin : cic_array_inst cic_acc_array #( .pDAT_W ( cDAT_W ) , .pNUM ( cRX_CIC_NUM ) ) cic_acc ( .iclk ( iclk ) , .ireset ( ireset ) , .iclkena ( iclkena ) , // .ival ( 1'b1 ) , .idat ( cic_acc__idat [i] ) , .oval ( ) , .odat ( cic_acc__odat [i] ) );
cic_comb_array #( .pDAT_W ( cDAT_W ) , .pNUM ( cRX_CIC_NUM ) ) cic_comb ( .iclk ( iclk ) , .ireset ( ireset ) , .iclkena ( iclkena ) , // .ival ( cic_comb__ival ) , .idat ( cic_comb__idat [i] ) , .oval ( cic_comb__oval [i] ) , .odat ( cic_comb__odat [i] ) ); end endgenerate .................. // // decimate 1/2/4/8/16/32 function logic get_decim_factor(input bit [3 : 0] bw, input bit[4 : 0] cnt); get_decim_factor = 1'b1; case (bw) 0 : get_decim_factor = 1'b1; 1 : get_decim_factor = &cnt[0 : 0]; 2 : get_decim_factor = &cnt[1 : 0]; 3 : get_decim_factor = &cnt[2 : 0]; 4 : get_decim_factor = &cnt[3 : 0]; 5 : get_decim_factor = &cnt[4 : 0]; default : get_decim_factor = 1'b1; endcase endfunction
--------------------
|
|
|
|
Сообщений в этой теме
shamrel Управляемый делитель тактовой частоты(клоков) Jan 14 2016, 05:28 Bad0512 Цитата(shamrel @ Jan 14 2016, 11:28) Прив... Jan 14 2016, 05:39 Vascom Чтобы был делитель на 1 - просто добавь мультиплек... Jan 14 2016, 06:52 Dmitriyspb Цитата(shamrel @ Jan 14 2016, 08:28) Прив... Jan 14 2016, 07:20 shamrel Vascom, имхо, мультиплексор внесет трудно прогнози... Jan 14 2016, 07:59  Dmitriyspb Цитата(shamrel @ Jan 14 2016, 10:59) Глав... Jan 14 2016, 08:13   Vascom Цитата(Dmitriyspb @ Jan 14 2016, 11:13) Н... Jan 14 2016, 08:16    Dmitriyspb Цитата(Vascom @ Jan 14 2016, 11:16) Это е... Jan 14 2016, 08:40 Vascom В ПЛИС системная частота вовсе не обязана быть пос... Jan 14 2016, 07:54 Vascom О задержках будет думать Timing Analyser при сборк... Jan 14 2016, 08:01 dm.pogrebnoy И как обычно, никто не вспоминает, что ПЛИС для та... Jan 14 2016, 08:33 Anton1990 Цитата(shamrel @ Jan 14 2016, 08:28) Прив... Jan 14 2016, 15:42 AJIEKCEu Я не совсем понимаю схему (недостаточно данных), н... Jan 14 2016, 19:58 Bad0512 Есть ещё вариант - АЦП и ЦАП работают на максималь... Jan 15 2016, 04:24 shamrel Цитата(AJIEKCEu @ Jan 14 2016, 22:58) Я н... Jan 15 2016, 04:48  Maverick Цитата(shamrel @ Jan 15 2016, 06:48) По п... Jan 15 2016, 05:11
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|