
Lek2013 / lek5
.doc
Аппаратный умножитель
Умножение беззнаковых двоичных чисел не отличается от умножения десятичных за исключением оперирования нулями и единицами. Процесс умножения заключается в последовательном умножении на отдельный разряд сдвига и суммирования результата.
Пример умножения десятичного и двоичного числа:
В общем случае при умножении двух чисел разрядностью N получается результат разрядностью 2N. Рассмотрим случай умножения 4-х битных чисел:
Алгоритм умножения:
Аппаратная реализация 4-х разрядного умножителя:
Обозначение умножителя:
Из схемы видно, что аппаратный умножитель гораздо сложнее эквивалентного по разрядности сумматора.
Тема Схемы с памятью.
Параграф: Защелки.
До этого мы изучали только комбинационные схемы (дешифраторы, мультиплексоры, сумматоры). Комбинационные схемы не имеют элементов памяти, и значение на их выходах определяется только сигналами на входах.
Память в цифровых схемах реализуется при помощи триггеров и защелок.
Для хранения 1 бита информации можно использовать RS – защелку. (от слов Set – Reset)
Поступление на вход S лог. 1 приводит к появлению 1 на выходе Q. После этого в независимости от значения на входе S значение лог. 1 на выходе Q будет сохраняться.
Если на вход R подать Лог. 1 то защелка будет сброшена, т.е. на выходе Q будет лог. 0.
Если требуется чтобы переключение выполнялось синхронно с тактовым импульсом, то используют синхронную RS-защелку. Переключение будет выполняться только при подаче лог. 1 на вход синхронизации.
Схема синхронной защелки.
Недостаток этой схемы - возможная неопределенность когда R=S=1 или наоборот R=S=0. От этого недостатка избавлены D-защелки.
Схема D-защелки.
Описание защелок на VHDL
Существует возможность описать защелку в структурном стиле, но более наглядно ее работа отражается при поведенческом описании.
Описание защелки в структурном стиле
Модуль описания элемента NOR
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity NOR1 is
Port ( i1,i2 : in STD_LOGIC;
y : out STD_LOGIC);
end NOR1;
architecture Beh of NOR1 is
begin
y<=not (i1 or i2);
end Beh;
Модуль описания всей схемы:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity RS is
Port ( R,S : in STD_LOGIC;
Q : inout STD_LOGIC;
nQ : inout STD_LOGIC);
end RS;
architecture Beh of RS is
COMPONENT NOR1
PORT(
i1,i2 : IN std_logic;
y : OUT std_logic
);
END COMPONENT;
begin
U1: NOR1 PORT MAP(i1 =>S ,i2 =>Q ,y =>nQ );
U2: NOR1 PORT MAP( i1 =>nQ ,i2 =>R ,y => Q );
end Beh;
Описание RS защелки в поведенческом стиле:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity RS is
Port ( R,S : in STD_LOGIC;
Q : out STD_LOGIC;
nQ : out STD_LOGIC);
end RS;
architecture Beh of RS is
begin
process (R,S)
begin
if(S='1') then
Q<='1'; nQ<='0';
end if;
if(R='1') then
Q<='0'; nQ<='1';
end if;
end process;
end Beh;
Временная диаграмма работы:
Замечание: после включения значение на входах не определено, т.е. с равной вероятностью на вых. Q может установиться лог. 0 или лог. 1.
Описание синхронной защелки (добавиться один вход для синхросигнала):
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity RS is
Port ( R,S,clk : in STD_LOGIC;
Q : out STD_LOGIC;
nQ : out STD_LOGIC);
end RS;
architecture Beh of RS is
begin
process (R,S,clk)
begin
if clk='1' then
if(S='1') then
Q<='1'; nQ<='0';
end if;
if(R='1') then
Q<='0'; nQ<='1';
end if;
end if;
end process;
end Beh;
Описание D-защелки
№Триггеры
Триггер переключается по перепаду сигнала, защелка переключается по уровню сигнала.
Схема триггера строиться на основе схемы D – защелки, в которую добавлена цепь задержки. В качестве цепи задержки могут служить один или несколько последовательно включенных инверторов.
Инвертор вносит некоторую задержку в схему.
Схема триггера.
Обозначение защелок и триггеров на схеме:
Здесь CK (ClocK) – это вход синхронизации (с треугольником это триггеры, без это защелки).
Упаковка триггеров в микросхемы малой степени интеграции 74-й серии:
ST74HC74