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

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

Отправлено lutik 23 июня 2004 г. 12:22
В ответ на: А каким оператором в VHDL можно получить разрядность константы типа integer? отправлено karabas 22 июня 2004 г. 17:47

function log2 (s : natural) return natural is
variable ret : natural:=1;
variable k : natural;
begin
k:= s;
while true loop
k:=k/2;
ret:=inc(ret);
exit when k < 2;
end loop;
return ret;
end;


subtype TCnt is integer range 0 to 2**8
signal Cnt : TCnt;

и далее к примеру кольцевой счетчик

COUNTER:
process(clk) begin
if clk='1' and clk'event then
if Cnt = 0 then
Cnt <= TCnt'high;
else
Cnt <= Cnt-1;
end if;
end if;
end process;



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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru