[an error occurred while processing this directive]
Хм... (+)
(«Телесистемы»: Конференция 'Языки описания аппаратуры (VHDL и др.))

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

Отправлено Oldring 31 мая 2005 г. 01:13
В ответ на: Был глюк. Так (+) отправлено druzhin 25 мая 2005 г. 20:37

то, что в приведенном коде есть ошибки - это мелочи. Кто не опечатывается? однако, сколько ведь твердили людям: не пользуйте асинхронные схемы без особой нужды. Данная схема глюкавая В ПРИНЦИПЕ.

Так как signalSet и clockCnt взаимно асинхронные, между их фронтами возможна произвольная разница во времени. По фронту signalSet взводится flag. Предположим, что как раз во время переключения сигнала flag в 1 приходит фронт clockCnt. Что произойдет? А это зависит от разности времён прохождения сигнала флаг к различным управляющим входам триггеров, тактируемых от сигнала clockCnt. Таких входов несколько в счетчике и один вход еще в автомате сброса флага. Рассчитывать на то, что flag прийдет на все эти входы одновременно, и все входы восприймут его состояние одинаково - слишком самонадеянно. А если нет - то прогнозируемые неприятности разнообразны, от загрузки в счетчик неправильного значения до игнорирования факта загрузки вообще. Причем, так как вероятность такого события довольно мала - то и тестирование может не помочь, так и будет работать в изделии, изредка сбиваясь.

Посмотрите лучше вариант SAZH - задача в общем-то тривиальная и решение стандартное: ставится синхронизатор и не напрягаются мозги по поводу описанного выше геморроя.

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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

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

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

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


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

E-mail: info@telesys.ru