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

Синхронизатор

Два триггера против метастабильности

Задача

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

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

Последовательная схема из двух последовательных триггеров.

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

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

Код на AHDL

ahdl_13_sinhronizator.tdf↓ скачать .tdf
% Проект 13: двухтактный синхронизатор %
SUBDESIGN ahdl_13_sinhronizator
(
    clk, clrn : INPUT;
    async_in  : INPUT;
    sync_out  : OUTPUT;
)
VARIABLE
    ff[1..0] : DFF;
BEGIN
    ff[].clk  = clk;
    ff[].clrn = clrn;
    ff[].d    = (ff[0].q, async_in);
    sync_out  = ff[1].q;
END;

Пояснения

Обязательный узел на границе тактовых доменов. Два триггера — минимум; для очень высоких частот ставят три.

Инструменты и справочники по теме

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

Что дальше

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