СХЕМОТЕХНИКА ЭВМ_18.2.17 (855859), страница 11
Текст из файла (страница 11)
end Comp_1;
architecture Comp_1_ar of Comp_1 is
begin
process (A,B)
begin
EQ <= '0'; NE <= '0'; GT <= '0'; GE <= '0'; LT <= '0'; LE <= '0';
if A = B then EQ <= '1'; end if;
if A /= B then NE <= '1'; end if;
if A > B then GT <= '1'; end if;
if A >= B then GE <= '1'; end if;
if A < B then LT <= '1'; end if;
if A =< B then LE <= '1'; end if;
end process;
end Comp_1_ar;
Цифровой компаратор, описание которого на VHDL приведено выше, выполняет все операции сравнения двух 8-ми разрядных двоичных чисел. Результатом сравнения двух чисел является появление '1' в списке переменных EQ, NE, GT, GE, LT и LE.
Цифровой компаратор, схема которого представлена на рис. 3.15, выполняет три операции сравнения двух 8-ми разрядных двоичных чисел. Результат сравнения двух чисел появляется на выходах микросхем DD13, DD14 и DD15. [для повторения, указания входов на схеме, чтобы все было перед глазами]
Рис. 3.15. Схема полного цифрового компаратора.
3.6. Двоичный сумматор.
Таблица истинности логической функции сложения двух одноразрядных двоичных чисел уже была рассмотрена ранее в главе 2,здесь она приведена повторно в табл.3.3.
Таблица 3.3. - Сложение двух одноразрядных чисел.
CIN | A | B | CO | S |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
В этой таблице CIN– бит входного переноса в этот разряд. В результате сложения получаем сумму S для этого разряда и бит переноса CO в следующий разряд. Первый каскад многоразрядного сумматора, складывающий младшие разряды чисел, не содержит входа переноса CIN. Этот каскад называется полусумматором. В результате сложения двух одноразрядных двоичных чисел может появиться число от 0 до 2. Для записи этого результата необходимо два бита. Младший бит суммы называют полусуммой HS, а старший бит – переносом CO в старший разряд. Ниже символ
означает логическую операцию XOR - Исключающее ИЛИ .
Остальные каскады многоразрядного сумматора имеют вход переноса CIN и называются полными сумматорами. Сумма трех одноразрядных чисел может принимать значения от 0 до 3. Поэтому для представления результата достаточно два двоичных разряда S (сумма) и CO – перенос в старший разряд.
С хема каскада полного одноразрядного сумматора приведена на рисунке 3.16.
Рис. 3.16. Схема каскада полного одноразрядного сумматора.
Схема многоразрядного сумматора с последовательным переносом приведена на рисунке 3.16:
Рис. 3.17. Многоразрядный сумматор с последовательным переносом.
Сумматор с последовательным переносом обладает малым быстродействием. Время суммирования практически пропорционально числу разрядов сумматора. Значительно меньшими задержками обладают сумматоры с параллельным переносом.
3.6.1. Многоразрядный сумматор с параллельным переносом.
Многоразрядный сумматор с параллельным переносом реализует очень простую идею:
1. В каждом двоичном разряде складываются только два входных числа Аi и Bi.
2. Сигналы переноса Ci вырабатываются одновременно и независимо при помощи специальной комбинационной схемы ускорения переноса CRi (рис. 3.18). [подробное пояснение схемы ниже]
Рис. 3.18. Многоразрядный сумматор с параллельным переносом.
Определим следующие логические функции:
1. Функция генерации переноса Gi .
Если Ai и Bi равны единице, то на выходе разряда сумматора появляется сигнал переноса, не зависящий от сигнала CINi. Поэтому
2. Функция распространения Hi.
Е сли только одна из переменных Ai или Bi равна единице, то сигнал переноса на выходе разряда сумматора появляется только при наличии сигнала CINi.
В этой формуле функцию "Исключающее ИЛИ" можно заменить на "ИЛИ", так как при А = 1 и В = 1 сигнал переноса формируется функцией Gi.
Рекуррентная функция формирования сигнала переноса на выходе разряда имеет следующий вид
Для нулевого разряда сумматора
Для первого разряда
Эти логические функции позволяют построить схемы формирования сигналов переноса в базисе И – ИЛИ. Однако лучшие результаты получаются в базисе И – ИЛИ – НЕ. Получим
Схема трех первых каскадов сумматора с параллельным переносом приведена на рис. 3.19.
Время сложения в сумматоре с параллельным переносом равно времени сложения в сумматоре tСУМ и времени формирования сигнала переноса tCR. Время tCR = 3tЛЭ и не зависит от разрядности сумматора.
Однако с ростом числа разрядов в схеме квадратично возрастает число элементов И-НЕ и число их входов. Это приводит к росту нагрузки в схеме и, как следствие, к увеличению задержек сигналов в сумматоре. Рациональная разрядность таких сумматоров 5 – 8.
Рис. 3.19. Схема сумматора с параллельным переносом.
3.6.3.Описание сумматора на VHDL.
При описании схемы сумматора на VHDL необходимо учитывать, что над типом сигналов STD_LOGIC_VECTOR определены только логические операции и операции сравнения.. С этими типами данных арифметические операции "+" и "–" не работают.
Арифметические операции и функции, позволяющие работать с ними, включены в пакеты IEEE. STD_LOGIC_ARITH и IEEE. STD_LOGIC_NUMERIC . Поэтому при описании схемы сумматора необходимо подключение подобного пакета .
library IEEE; [1][2]
use IEEE.STD_LOGIC_1164.all; `
use IEEE.STD_LOGIC_ARITH.all;
entity add_1 is
port( A : in STD_LOGIC_VECTOR(7 downto 0);
B : in STD_LOGIC_VECTOR(7 downto 0);
C : out STD_LOGIC_VECTOR(8 downto 0) );
end add_1;
architecture add_1_ar of add_1 is
signal A1, B1 : SIGNED (7 downto 0); -- сигналы типа SIGNED
signal C1 :SIGNED (8 downto 0); -- сигналы типа SIGNED
begin
A1 <= SIGNED(A); -- преобразование типов данных
B1 <= SIGNED(B); -- преобразование типов данных
C1 <= ('0'&A1) + ('0'&B1); -- добавление слева к двоичным
-- числам А1 и В1 нулевых разрядов и
-- сложение двоичных чисел
C <= STD_LOGIC_VECTOR(C1); -- обратное преобразование
-- типов данных
end add_1_ar;
Вопросы и упражнения к главе 3.
Вопрос 1. Чем отличаются дешифраторы от мультиплексоров?
Вопрос 2. Как реализовать дешифратор 3-8 на дешифраторах 2-4?
Вопрос 3. Что такое шифратор?
Вопрос 4. Если сигнал разрешения отсутствует, что будет на выходах дешифратора?
Вопрос 5. В чем преимущества сумматора с параллельным переносом перед сумматором с последовательным переносом?
Вопрос 6. Как реализовать мультиплексор 4-1 из мультиплексоров 2-1?
Упражнение
На четырехвходовом мультиплексоре(4-1) и инверторе постройте схему, реализующую функцию 3ИЛИ.
4. ЦИФРОВЫЕ УЗЛЫ ПОСЛЕДОВАТЕЛЬНОСТНОГО ТИПА.
( Лекции 7-10)
4.1. Определения.
Последовательностной называется логическая схема, выходные сигналы которой определяются не только текущими значениями входных сигналов , но и их предыдущими значениями. Это означает, что такие схемы имеют память.
Состояние последовательностной схемы – это совокупность состояний ее элементов памяти , значения которых в данный момент времени содержат всю информацию о прошлом, достаточную для описания работы схемы в будущем.
Автоматы
Понятие автомата является обобщенным математическим представлением поведения последовательностной схемы.
Синхронные и асинхронные автоматы..
Если изменение состояний автомата проводится в определенные моменты времени, задаваемые внешним тактовым сигналом (синхросигналом), то мы имеем дело с синхронным автоматом. Если оно может происходить в любой момент времени, то имеем дело с асинхронным автоматом.
Конечные и бесконечные автоматы
По числу возможных состояний автомата различают конечные (FSM-Finite State Machine)автоматы,у которых множество состояний конечно и бесконечные автоматы(ISM-Infinite State Machine), у которых бесконечное множество состояний.
Автоматы Мили и Мура
Известны два типа конечных автоматов (FSM-Finite State Machine): автомат Мура (Moore) и автомат Мили (Mealy).
На рисунке представлена блок-схема автомата .В общем случае автомат состоит из комбинационной схамы, вычисляющей новое состояние автомата как функцию значений входных сигналов и состояния памяти автомата , блока памяти, хранящего состояние автомата и блока вычисления значений выходных сигналов.
В автомате Мура выходные сигналы (out_sig) зависят (f-функция выходов) только от текущего состояния (state) автомата.
В Автомате МИЛИ на выходные сигналы влияет также текущее значение входных сигналов.
Блок-схема автомата
В автомате Мили выходы являются функцией (f- функция выходов) как текущего состояния, так и входных сигналов (in_sig),что обозначено пунктирной линией. Состояние автомата изменяется по синхросигналу (С-clk). Ф-функция, вычисляющая новое состояние автомата (функция переходов, функция возбуждения, функция входов) на базе старого состояния и значений входных сигналов . Ниже в таблице на псевдокоде представлены описания трех частей автомата.