Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Управление NCO
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Artunique
Всем доброго дня. Встала задача спроектировать NCO на плис. Использую мегафункцию. Объясните пожалуйста, каким образом перестраивать частоту? Я так понимаю необходим какой-то сигнал управления. Что он из себя представляет? И как его формировать?
Lmx2315
не то чтобы буквальный ответ на ваш вопрос - но может будет интересно :
http://www.ssau.ru/files/education/metod_1...D0%B8%D0%B5.pdf

http://habrahabr.ru/post/237859/
Swup
Выделено значение прироста фазы. Оно зависит от разрядности аккумулятора фазы, частоты дискретизации и необходимой частоты.
У мега функции есть соответствующий порт для этого (phi_inc_i). Меняя подаваемое значение можно в процессе работы менять частоту, можно сделать ЛЧМ.

для примера с картинки PIV = 2^32 * 1.2e6 / 120e6 = 42949673;

Нажмите для просмотра прикрепленного файла
gosu-art
Я, например делал так

Код
localparam Fclk = 50_000_000;//Hz
localparam Freq = 300_000;//Hz

localparam Fbase = (Freq/Fclk) * 2^32;
localparam Fstep =  Fbase / 128;

/// BITS_STREAM - Si5338 CLK = 320 kHz * 16 bit; When '1' - Freq data, when '0' Freq = Fbase;

assign phase_inc =  data_tx[8] ? Fbase + (data_tx[6:0] * Fstep):  Fbase - (data_tx[6:0] * Fstep );

///

always_comb begin
    if(data_tx[9])
        phase_mod = Fbase;
    else if (BITS_STREAM) begin
        phase_mod = phase_inc;
    end
    else
        phase_mod = Fbase;
end

///


nco_n U1(
    .phi_inc_i        (phase_mod),
    .clk                (DCLK),
    .reset_n            (1),
    .clken            (1),
    .phase_mod_i    (),
    .freq_mod_i        (),
    .fsin_o            (sin),
    .fcos_o            (cos),
    .out_valid        ()
);
Artunique
Спасибо всем, разобрался.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.