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

Отправлено Victor Yurchenko 29 декабря 2001 г. 20:36
В ответ на: ...а старший разряд всегда был :) отправлено IgorK 25 декабря 2001 г. 23:55

Сам пользовался - меньше мороки с собиранием разрядов (+ быстродействие), но нужно учитывать задержку на такт. Каюсь, сам лоханулся - примерчик выдает на такт больше, а с использованием лишнего разряда еще один добавится. Прилагаю пример, остальное дело вкуса. Главное, чтобы мозги работали. С Новым Годом, господа!


-- =========================================================================
include "lpm_counter";
constant width = 4;

subdesign pulse_cnt
(
clk :input; -- тактовый
num[width-1..0] :input; -- шина задания количества импульсов
pulse1 :output; -- выходной импульс
pulse2 :output; -- выходной импульс
pulse3 :output; -- выходной импульс
)

variable
pulse1 :dffe;
pulse_3 :node;
pulse3 :node;
pulse_cnt1 :lpm_counter with (lpm_width = width);
pulse_cnt2 :lpm_counter with (lpm_width = width+1);
pulse_cnt3 :lpm_counter with (lpm_width = width);

begin
pulse_cnt1.clock = clk;
pulse_cnt1.sload = pulse_cnt1.cout;
pulse_cnt1.data[] = !num[]+1;

pulse1 = pulse_cnt1.cout;
pulse1.clk = clk;

pulse_cnt2.clock = clk;
pulse_cnt2.sload = pulse2;
pulse_cnt2.data[] = !(vcc,num[])+2;

pulse2 = pulse_cnt2.q[width];


pulse_cnt3.clock = clk;
pulse_cnt3.sclr = pulse_3;
pulse_cnt3.data[] = num[];

pulse_3 = pulse_cnt3.q[]==(num[]-1);
pulse3 = dffe(pulse_3,clk,,,);
end;
-- =========================================================================

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru