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

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

Отправлено Elresearch 25 октября 2002 г. 13:03

На выходе ZZZZ.
А хотелось бы двоично-десятичный счетчик :((


library IEEE;
use IEEE.std_logic_1164.all;

entity DB_count is
port (
CLK: in STD_LOGIC;
CLR: in STD_LOGIC;
CE: in STD_LOGIC;
-- FL: in STD_LOGIC;
-- CTR: in STD_LOGIC;
-- OP_MODE: in INTEGER range 0 to 3;

-- FLAG1: inout STD_LOGIC;
D_OUT: out STD_LOGIC_VECTOR(11 downto 0)

);
end DB_count;

architecture DB_count_arch of DB_count is
SIGNAL D1,D2,D3: STD_LOGIC_VECTOR(3 downto 0);--INTEGER range 0 to 9;
SIGNAL DI1,DI2,DI3: INTEGER range 0 to 9;
SIGNAL FLAG1, FLAG2: bit;
begin
process (CLR, CLK, CE, DI1, DI2, DI3, D1, D2, D3)
begin
if CLR='1' then
DI1 <= 0;
DI2 <= 0;
DI3 <= 0;
elsif CLK'event and CLK='1' then
--
if CE='1' then
IF (DI3=9 AND DI2=5 AND DI1=9) THEN
DI1 <= 0;
DI2 <= 0;
DI3 <= 0;
ELSE
DI1 <= DI1 + 1;
if FLAG1='1' then
DI2 <= DI2 + 1;
END IF;
if FLAG2='1' then
DI3 <= DI3 + 1;
END IF;
end if;
end if;

end if;
D1(3 downto 0) <= D1;
D2(3 downto 0) <= D2;
D3(3 downto 0) <= D3;
D_OUT(3 downto 0) <= D1(3 downto 0);
D_OUT(7 downto 4) <= D2(3 downto 0);
D_OUT(11 downto 8) <= D3(3 downto 0);
if DI1=9 then
FLAG1 <= '1';
else FLAG1 <= '0';
end if;
if DI2=9 then
FLAG2 <= '1';
else FLAG2 <= '0';
end if;

end process;

end DB_count_arch;

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru