Главная | Случайная
Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Описание шифратора и драйвера шины на языке VHDL.




Шифратор:

ENTITY encoder IS

PORT ( in1 :IN std_logic_vector(7 DOWNTO 0);

out1 :OUT std_logic_vector(2 DOWNTO 0));

END encoder;

ARCHITECTURE behave OF encoder IS

BEGIN

PROCESS (in1)

BEGIN

IF in1(7) = '1' THENout1 <= "111";

ELSIF in1(6) = '1' THEN out1 <= "110";

ELSIF in1(5) = '1' THEN out1 <= "101";

ELSIF in1(4) = '1' THENout1 <= "100";

ELSIF in1(3) = '1' THEN out1 <= "011";

ELSIF in1(2) = '1' THEN out1 <= "010";

ELSIF in1(1) = '1' THENout1 <= "001";

ELSIF in1(0) = '1' THEN out1 <= "000";

ELSEout1 <= "XXX";

END IF;

END PROCESS;

END behave;

ИЛИ

ENTITY encoder IS

PORT ( a, b, c, d, e, f, g, h : IN std_logic;

out2, out1, out0 : OUT std_logic);

END encoder;

ARCHITECTURE behave OF encoder IS

BEGIN

PROCESS (a, b, c, d, e, f, g, h)

VARIABLE inputs : std_logic_vector (7 DOWNTO 0);

VARIABLE i : INTEGER ;

BEGIN

INPUTS := (h, g, f, e, d, c, b, a);

i := 7;

WHILE i >= 0 AND inputs(i) /= '1' LOOP

i := i - 1;

END LOOP;

IF ( i < 0) THEN

i := 0;

END IF;

-- conv_std_logic_vector (i, 3) - функция преобразования

-- переменной типа integer в сигнал типа std_logic_vector

-- Второй аргумент определяет размер вектора.

(out2, out1, out0) <= conv_std_logic_vector (i, 3);

END process;

END behave;

 

-- Синтезируемое описание драйвера шины

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY tristate2 IS

PORT ( input3, input2, input1, input0: IN std_logic_vector (7 DOWNTO 0);

enable : IN std_logic_vector (3 DOWNTO 0);

output : OUT std_logic_vector (7 DOWNTO 0) );

END tristate2 ;

ARCHITECTURE multiple_drivers of tristate2 IS

BEGIN

output <= input3 WHEN enable(3) = '1' ELSE "ZZZZZZZZ" ;

output <= input2 WHEN enable(2) = '1' ELSE "ZZZZZZZZ" ;

output <= input1 WHEN enable(1) = '1' ELSE "ZZZZZZZZ" ;

output <= input0 WHEN enable(0) = '1' ELSE "ZZZZZZZZ" ;

END multiple_drivers;

-- Синтезируемое описание шинного формирователя

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY bidir IS

PORT ( input_val, enable: IN std_logic;

output_val : OUT std_logic;

bidir_port : INOUT std_logic) ;

END bidir ;

ARCHITECTURE tri_state OF bidir IS

BEGIN

bidir_port <= input_val WHEN enable = '1' ELSE 'Z' ;

output_val <= bidir_port;

END tri_state;

 







Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2021 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных