[an error occurred while processing this directive]
Ща проясним (+)
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 24 сентября 2003 г. 08:51
В ответ на: А в AHDL??? уважаемый SM если не сложно просните пожалуйста отправлено des00 24 сентября 2003 г. 08:22

Если хочется синхронно - то есть два пути.

Первое - подать на тактовый вход DFF'а, на D - единицу. И сбросить потом асинхронно когда нибудь. Но это не красиво. Более правильно (но и ресурсоемко) вот так:


dly_line[1..0]:dff;


dly_line[1]=dly_line[0];
dly_line[0]=input_signal;
dly_line[].clk=main_clock;

if dly_line[]==1 then -- or dly_line[]==2 - posedge or negedge
-- or dly_line[0]<>dly_line[1] - any_edge

-- пошло-поехало (один такт на один нужный перепад)
end if;

Смысл сей затеи таков, что, пропустив асинхронный входной сигнал через линию задержки, мы получили защиту от метастабильности, засинхронизировались с тактовой системы, и получили возможность отловить фронты. Можно, для пущей стабильности работы при асинхронном входном сигнале удлинить линию на 1 элемент, и проверять биты 2 и 1.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru