Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Языки описания аппаратуры (VHDL и др.)

Ответ:

Отправлено SAZH 27 декабря 2006 г. 15:40
В ответ на: [VHDL]bin 2 bcd отправлено sss 25 декабря 2006 г. 14:33

LIBRARY ieee; -- U.Tietze - Ch.Schenk page 321
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
ENTITY bin_bcd IS PORT(
clk : IN std_logic;
bin : IN std_logic_vector(8 downto 0);
bcd : OUT std_logic_vector(11 downto 0);
enable_rd_bcd : OUT std_logic);
END bin_bcd;

ARCHITECTURE bin2bcd OF bin_bcd IS
signal ct_bit_bin : std_logic_vector(3 downto 0);
signal bin_rg : std_logic_vector(8 downto 0);
signal bcd_rg : std_logic_vector(11 downto 0);
signal sum: std_logic_vector(11 downto 0);
BEGIN
sum(3 downto 0) <= bcd_rg(3 downto 0) + "0011" when bcd_rg(3 downto 0) > 4 else bcd_rg(3 downto 0);
sum(7 downto 4) <= bcd_rg(7 downto 4) + "0011" when bcd_rg(7 downto 4) > 4 else bcd_rg(7 downto 4);
sum(11 downto 8) <= bcd_rg(11 downto 8) + "0011" when bcd_rg(11 downto 8) > 4 else bcd_rg(11 downto 8);
PROCESS (clk)
BEGIN
IF (clk'EVENT AND clk = '1') THEN
IF ct_bit_bin = "0000" THEN
enable_rd_bcd <= '1';
bcd <= bcd_rg;
bcd_rg <= "000000000000";
bin_rg <= bin;
ct_bit_bin <= "1001";
ELSE
enable_rd_bcd <= '0';
bcd_rg <= sum(10 downto 0) & bin_rg(8);
bin_rg <= bin_rg(7 downto 0) & '0';
ct_bit_bin <= ct_bit_bin - 1;
END IF;
END IF;
END PROCESS;
END bin2bcd;


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите 6 на два:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru