Задача
Ввести асинхронный сигнал в тактовый домен через двухступенчатый синхронизатор.
Тип схемы и среда
Последовательная схема из двух последовательных триггеров.
Алгоритм работы
Первый триггер может попасть в метастабильное состояние, второй за такт даёт ему устояться. На выходе — чистый синхронный сигнал.
Код на AHDL
% Проект 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.