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

Отправлено Dimitry 24 декабря 2001 г. 08:51

Нужно написать код, который, имея тактовый вход, и шину (3 бита) задания количества импульсов, на выходе выдавал каждый раз импульс после прохождения на входе заданного кол-ва импульсов.

Вроде всё работает, но нужно после совпадения счетчика с заданным числом счетчик сбрасывать, что вызывает "некрасивую" картинку в симуляторе (за очень короткое времясчетчик переходит на следующее значение и тут же сам себя сбрасывает).

Есть ли более элегантные способы заставить счетчик cntr[2..0]: DFF; считать до заданного числа, а не до 7-ми.

Спасибо!

Dm

PS Вот мой код:
%
The function implements the STROBE pulse going together with input pulse number s2,s1,s0
%
SUBDESIGN strobe
(
clk, s[2..0]: INPUT;
cntrout[2..0], strobe_pulse: OUTPUT;
)
VARIABLE
cntr[2..0]: DFF;
l: DFF;
BEGIN
%Implement the counter which defines the interval between STROBE pulses%
cntr[].clk=clk;
cntrout[]=cntr[];
cntr[].d=cntr[].q+1;
%Additional DFF trigger to eliminate glitches on strobe_pulse output%
l.clk=clk;
l.d=(s[]==cntr[]);

cntr[].clrn=!(s[]+1==cntr[]);
strobe_pulse=l.q;
END;

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru