AFON//Радиотехник
AHDL · проект 30/50

Частотомер

Подсчёт импульсов за окно измерения

Задача

Измерить частоту входного сигнала подсчётом его импульсов за интервал открытого окна.

Тип схемы и среда

Последовательная схема: синхронизатор входа, детект фронта, счётчик, выходной регистр-защёлка.

Алгоритм работы

Пока окно gate открыто, каждый фронт входа увеличивает счётчик. По сигналу latch результат защёлкивается в выходной регистр, счётчик сбрасывается при закрытом окне.

Код на AHDL

ahdl_30_chastotomer.tdf↓ скачать .tdf
% Проект 30: частотомер (счёт импульсов за окно) %
SUBDESIGN ahdl_30_chastotomer
(
    clk, clrn : INPUT;
    fin       : INPUT;
    gate      : INPUT;   % окно измерения %
    latch     : INPUT;   % защёлкнуть результат %
    result[15..0] : OUTPUT;
)
VARIABLE
    cnt[15..0] : DFF;
    reg[15..0] : DFF;
    fs[1..0]   : DFF;
    fp         : DFF;
BEGIN
    cnt[].clk = clk; cnt[].clrn = clrn;
    reg[].clk = clk; reg[].clrn = clrn;
    fs[].clk  = clk; fs[].clrn  = clrn;
    fp.clk    = clk; fp.clrn    = clrn;

    fs[].d = (fs[0].q, fin);
    fp.d   = fs[1].q;

    IF !gate THEN
        cnt[].d = 0;
    ELSIF fs[1].q & !fp.q THEN
        cnt[].d = cnt[].q + 1;
    ELSE
        cnt[].d = cnt[].q;
    END IF;

    IF latch THEN
        reg[].d = cnt[].q;
    ELSE
        reg[].d = reg[].q;
    END IF;

    result[] = reg[].q;
END;

Пояснения

Точность метода прямого счёта растёт с длиной окна и частотой. Для низких частот измеряют период, а не частоту.

📦 help-user.ru — скупка и ремонт компьютерной техники. Продать ноутбук, ПК, комплектующие — help-user.ru.

Что дальше

Скачайте ahdl_30_chastotomer.tdf, создайте проект в MAX+PLUS II или Quartus, назначьте выводы под свою плату и скомпилируйте. Остальные 49 разработок — в разделе проектов на AHDL.