СХЕМОТЕХНИКА ЭВМ_18.2.17 (855859), страница 10
Текст из файла (страница 10)
Схема приоритетного шифратора с последовательным запрещением входных сигналов, приведенная на рис. 3.8.
Для построения схемы приоритетного шифратора в общем случае необходимо по таблице 3.2. составить логические функции для выходных сигналов Y0, Y1 и GS. Для этого нужно объединить термы из значений входных сигналов E, X0, X1, X2 и X3, соответствующие единицам в столбцах Y0, Y1 и GS, а затем минимизировать результат. В результате получим следующие логические функции.
Далее необходимо реализовать эти функции при помощи логических элементов.
Рис. 3.8. Приоритетный шифратор на четыре входа и два выхода.
3.2.2 Описание приоритетного шифратора на VHDL
Описание приоритетного шифратора на 4 входа ( рис.3.8)с именем encoder_1 на VHDL имеет следующий вид:
library IEEE; --[1][2]
use IEEE.STD_LOGIC_1164.all;
entity encoder_1 is
port( E : in STD_LOGIC;
X : in STD_LOGIC_VECTOR(3 downto 0);
E0 : out STD_LOGIC;
GS : out STD_LOGIC;
Y : out STD_LOGIC_VECTOR(1 downto 0) );
end encoder_1;
architecture encoder_1_ar of encoder_1 is
begin
process (X)
variable K: integer := 3; variable N: integer := 3;
begin
for K in 3 downto 0 loop
if(X(K) = '1') then
N := K;
exit;
else N := 0;
end if;
end loop;
if (E = '1') then
case (N) is
when 0 => Y <= "00"; GS <= '0'; E0 <= '1';
when 1 => Y <= "01"; GS <= '1'; E0 <= '0';
when 2 => Y <= "10"; GS <= '1'; E0 <= '0';
when 3 => Y <= "11"; GS <= '1'; E0 <= '0';
when others => Y <= "00"; GS <= '0'; E0 <= '0';
end case;
end if;
end process;
end encoder_1_ar;
В этом описании в цикле loop по К выбирается активный вход со старшим приоритетом. Затем, в операторе case проводится назначение выходных сигналов.
3.3. Кодовый преобразователь.
Кодовый преобразователь предназначен для преобразования группы входных кодовых слов в группу выходных кодовых слов по заданному закону. Закон преобразования можно задать при помощи системы логических функций от группы логических переменных или при помощи таблицы.
Обобщенное представление функции кодового преобразователя представлено на рис. 3.9.
Входное слово кодового преобразователя имеет разрядность n, выходное – разрядность m. Кодовый преобразователь описывается логической функцией n переменных с m выходами.
Рис. 3.9. Обобщенное представление функции кодового преобразователя.
Эту функцию необходимо преобразовать в систему из m функций, имеющих по одному выходу.-- [будет информативнее, если функция коррелировалась с рисунком ]
Затем, после минимизации, каждая логическая функция реализуется как комбинационная схема.
Создание кодовых преобразователей по рассмотренному принципу на логических элементах средней степени интеграции обычно приводит к неэкономичным результатам. Это связано с тем, что в разных логических функциях появляются одинаковые дублирующие блоки.
Еще одним подходом к созданию кодовых преобразователей является применение комбинации дешифратора и шифратора (рис. 3.10).
Рис. 3.10. Структура кодового преобразователя на комбинации шифратор - дешифратор.
Дешифратор преобразует входное кодовое слово в код " одна единица из n ", а шифратор преобразует этот код в выходное кодовое слово. Таблица преобразования кодов реализуется соответствующими соединениями между выходами дешифратора и входами шифратора. [зачем он (шиф-дешиф)?]
3.4. Мультиплексор.
Мультиплексором называется цифровой переключатель, передающий на выход сигнал с одного из нескольких входов. Выбор входа, подключаемого к выходу, определяется сигналом, поступающим на входы управления. Схема мультиплексора 4 х 1приведена на рис. 3.11.
Демультиплексор выполняет функцию, обратную мультиплексору. Эта схема в соответствии с сигналами управления подключает один вход к одному из нескольких выводов. Схема демультиплексора близка к схеме дешифратора и отличается только наличием сигнального входа. Это, например, дешифратор – демультиплексор 8 х 1 типа ИД4, являющийся, по сути, сдвоенной схемой 4 х 1. [пояснение каждого входа]
а) б)
а) – схема мультиплексора 4 х 1 типа КП2;
б) – УГО мультиплексора 8 х 1 типа КП7;
Рис. 3.11. Мультиплексор 4-1.
Для расширения числа входов применяется каскадирование мультиплексоров. Схема мультиплексора 16 х 1, выполненная на двух мультиплексорах 8 х 1, приведена на рис. 3.12.
[назначения входов]
Рис. 3.12 Каскадирование мультиплексоров.
3.4.1 Описание мультиплексора 8-1 на VHDL.
library IEEE; use IEEE.STD_LOGIC_1164.all; [2][1]
entity MUX_8_1 is
port( V_n : in STD_LOGIC;
D : in STD_LOGIC_VECTOR(7 downto 0);
X : in STD_LOGIC_VECTOR(2 downto 0);
Y : out STD_LOGIC );
end MUX_8_1;
architecture MUX_8_1_ar of MUX_8_1 is
begin
process (X,V_n)
begin
if (V_n = '0') then
case (X) is
when "000" => Y <= D(0);
when "001" => Y <= D(1);
when "010" => Y <= D(2);
when "011" => Y <= D(3);
when "100" => Y <= D(4);
when "101" => Y <= D(5);
when "110" => Y <= D(6);
when "111" => Y <= D(7);
when others => Y <= D(0);
end case;
else Y <= D(0);
end if;
end process;
end MUX_8_1_ar;
3.4.2. Реализация логических функций на мультиплексорах.
Существует множество вариантов схем, позволяющих реализовать произвольные логические функции на мультиплексорах. В качестве аргумента логической функции используются адресные входы мультиплексора {Xi}. Информационные входы мультиплексора {Dj} используются для настройки значений логической функции. Для этого на информационные входы подаются фиксированные логические уровни сигнала. Значение логической функции, зависящее от аргумента, получается на выходе Y мультиплексора. [в чем преимущества,зачем?]
Возможен еще один способ настройки, когда на часть информационных входов подается или один из аргументов функции или его инверсия.
Пример реализации логической функции, заданной таблицей, приведен на рис. 3.13.
№ | Х2 | Х1 | Х0 | Y |
1 | 0 | 0 | 0 | 1 |
2 | 0 | 0 | 1 | 1 |
3 | 0 | 1 | 0 | 0 |
4 | 0 | 1 | 1 | 1 |
5 | 1 | 0 | 0 | 0 |
6 | 1 | 0 | 1 | 0 |
7 | 1 | 1 | 0 | 1 |
8 | 1 | 1 | 1 | 0 |
а) б)
а) – таблица истинности логической функции, б) – схема
Рис. 3.13. Реализация логической функции на мультиплексоре КР1533КП7.
3.5. Цифровой компаратор. ( Лекция 5)
Компаратор – это цифровой узел сравнения двух чисел.
Одноразрядный компаратор сравнивает два числа А и В и выдает однобитовый сигнал: А = В → 1, А ≠ В → 0.
Полный компаратор сравнивает числа А и В и определяет соотношения:
А = В, А > В, А < В, A ≥ B, A ≤ B.
Сравнение чисел происходит на основе поразрядных операций над их одноименными разрядами. Очевидно, что числа равны, если равны все их одноименные разряды, т.е. в обоих числах в одноименных разрядах находятся либо 1, либо 0.[пример]
-
Признаком равенства разрядов является следующее выражение:
-
Признаком неравенства разрядов чисел является:
-
Признаком равенства чисел А и В является конъюнкция приведенных выражений:
С хема цифрового компаратора, определяющего равенство двух чисел, приведена на рис. 3.14.
Рис. 3.14. Схема цифрового компаратора на равенство.
Сравнение чисел на неравенство FA>B проводится, начиная со старших разрядов. Например, если двоичное число трехразрядное, то:
если A2 = 1 и B2 = 0, то числа А > В при любых значениях в младших разрядов чисел;
если A2 = 0 и B2 = 1, то числа А < В при любых значениях в младших разрядов чисел;
если A2 = B2, то результат сравнения не определен, и необходимо провести анализ следующего младшего разряда числа.
А нализ трехразрядных чисел проводится на основе следующих соотношений:
Схема полного двухразрядного компаратора приведена на рис. 3.15. Для каждого из разрядов числа вырабатываются сигналы "больше", "меньше" и "равно". Затем эти сигналы обрабатываются логической схемой, связанной с входными управляющими сигналами.
3.5.1. Описание цифрового компаратора на VHDL.
entity Comp_1 is [1][2]
port( A,B : in STD_LOGIC_VECTOR(7 downto 0);
EQ,NE,GT,GE,LT,LE : out STD_LOGIC
);