Условное графическое обозначение
Стандарт | Logisim (шифратор приоритетов) |
Традиционное использование
· Получение кодов нажатых клавиш;
· В составе преобразователей кодов.
48.Сумматор – цифровое устройство, предназначенное для сложения двух чисел в разных кодах. Если используются специальные коды, то на сумматоре можно выполнять вычитание.
Полный одноразрядный двоичный сумматор
В отличие от полусумматора полный одноразрядный двоичный сумматор должен воспринимать 3 входных сигнала: 2 одноразрядных сигнала и сигнал переноса от предыдущего разряда. В качестве результата возвращает сумму и перенос в следующий разряд.
Многоразрядный сумматор параллельного действия с последовательным переносом
Аргументы подаются одновременно по всем разрядам. Для сложения двух многоразрядных двоичных чисел на каждый разряд необходим один полный одноразрядный сумматор.
51.Компаратор - логическое устройство с двумя словарными входами, на которые подаются два разных двоичных слова равной в битах длины и обычно с тремя двоичными выходами, на которые выдаётся признак сравнения входных слов, — первое слово больше второго, меньше или слова равны. При этом выходы «больше», «меньше» имеют смысл, если входные слова кодируют числа в том или ином машинном представлении.
Часто цифровые компараторы не имеют выходов «больше», «меньше», а только выход «равно».
Может быть построен на логических элементах, работа которых основана на самых различных физических принципах, но современные компараторы обычно представляют собой полупроводниковые электронные устройства, работающие в двоичной логике.
Логическая функция однобитового цифрового компаратора описывается таблицей истинности
Входы | Выходы | |||
{\displaystyle A} | {\displaystyle B} | {\displaystyle A<B} | {\displaystyle A=B} | {\displaystyle A>B} |
Определим функции, вырабатываемые компараторами, следующим образом:
они принимают единичное значение (истинны), если соблюдается условие, указанное в индексе обозначения функции. Например, функция , если А = В и принимает нулевое значение при А В.
Приняв в качестве основных отношения "равно" и "больше", для остальных можно записать:
Эти отношения используются как логические условия в микропрограммах, в устройствах контроля и диагностики ЭВМ и т. д.
54.Синхронный RS-триггер на элементах «И-НЕ» со статическим управлением
C | S | R | Q(t) | Q(t+1) |
x | x | |||
не определено | ||||
не определено |
Синхронный RS-триггер снабжён синхронизирующим входом С, который разрешает приём сигналов с информационных входов R и S. Если на синхронизирующий вход Споступает сигнал лог.0, то любые логические сигналы, подаваемые на информационные входы R и S, не влияют на состояние триггера. При подаче на синхронизирующий вход Ссигнала лог.1, синхронный RS-триггер работает в режиме асинхронного RS-триггера.
57.
Триггер-задержка – хранит предыдущее состояние до прихода очередного синхроимпульса.
D | Q(t) | Q(t+1) |
D-триггер — запоминает состояние входа и выдаёт его на выход. D-триггеры имеют, как минимум, два входа: информационный D и синхронизации С. Вход синхронизации С может быть статическим (потенциальным) и динамическим. У триггеров со статическим входом С информация записывается в течение времени, при котором уровень сигнала C=1. В триггерах с динамическим входом С информация записывается только в течение перепада напряжения на входе С. В таком триггере информация на выходе может быть задержана на один такт по отношению к входной информации. Так как информация на выходе остаётся неизменной до прихода очередного импульса синхронизации, D-триггер называют также триггером с запоминанием информации или триггером-защёлкой. Рассуждая чисто теоретически, парафазный (двухфазный) D-триггер можно образовать из любых RS- или JK-триггеров, если на их входы одновременно подавать взаимно инверсныесигналы.
60.
Регистром называется цифровой автомат, реализованный на триггерах, основным назначением которого является прием двоичной информации, временное хранение двоичной информации и выдача информации потребителю.
Этот минимум операций выполняет простейший регистр, который называется регистром хранения. Запись и выдача информации осуществляется на все разряды одновременно (т.е. в параллельном коде).
Усовершенствованный регистр (сдвиговый) может также выполнять операцию сдвига информации вправо и влево (умножение или деление на 2).
Благодаря операции сдвига становятся возможными различные способы приема и выдачи информации:
· Параллельный прием
· Параллельная выдача
· Последовательный прием
· Последовательная выдача
Таким образом, сдвиговый регистр может:
· Преобразовывать последовательный код в параллельный и наоборот
· Быстро выполнять операции умножения и деления на 2
Регистры классифицируют по:
· Количеству разрядов
· Триггерам, на которых они реализованы
· Способу приема и выдачи данных
o Параллельные (простейшие триггеры хранения)
o Последовательные (последовательный прием, последовательная выдача)
Параллельно-последовательные (универсальный сдвиговый регистр).
Сдвиговый регистр
Триггеры сдвигового регистра связаны между собой цепями переноса, что позволяет одновременно переносить содержимое отдельного триггера регистра в соседний триггер, осуществляя операцию сдвига. Сдвиг характеризуется:
· Направлением – влево или вправо
· Типом
o Логический (в освободившийся крайний триггер заносится 0)
o Арифметический (содержимое регистра понимается как число в дополнительном коде. При сдвиге влево справа появляется 0, при сдвиге вправо слева дублируется предыдущее значение)
o Циклический (вытесняемое из регистра значение заносится в освободившийся триггер на другом конце)
63.
66.
трехразрядный суммирующий двоичный счетчик на Т-триггерах с последовательным переносом
№ состояния | |||
Счетчики с последовательным переносом имеют большие времена задержки и их основное применение – системы управления с относительно невысоким быстродействием.
69.
72.
Минимум
int M;
sort(n, a);
out_arr(n, a);
cout<<endl;
bool flag;
do{
flag = true;
cout<<"Введите номер M-ый минимум"<<endl;
try {
string s;
cin>> s;
M = stoi(s);
if (n>=M && M>0)
cout<<"M-ыйминимум "<< a[M - 1] <<endl;
else
throw 1;
}
catch (...)
{
cout<<"Такогоминимуманет"<<endl;
cout<<"Введитезаново"<<endl;
flag = false;
}
} while (!flag);
system("PAUSE");
break;
}
Максимум
int N;
sort(n, a);
out_arr(n, a);
cout<<endl;
bool flag;
do{
flag = true;
cout<<"ВведитеномерN-максимума"<<endl;
try {
string s;
cin>> s;
N = stoi(s);
if (n >= N && N > 0)
cout<<"N-ыймаксимум "<< a[n - N] <<endl;
else
throw 1;
}
catch(...)
{
cout<<"Такогомаксимуманет"<<endl;
cout<<"Введитезаново"<<endl;
flag = false;
}
} while (!flag);
system("PAUSE");
break;
}
75.
voidqsort(int *x, inta, intb)
{
int op;
int left = a, right = b;
op = x[(left + right) / 2];
do
{
while (x[left] < op)
left++;
while (x[right] > op)
right--;
if (left <= right)
{
inttmp = x[left];
x[left] = x[right];
x[right] = tmp;
left++;
right--;
}
} while (left<right);
if (a<right)
qsort(x, a, right);
if (left<b)
qsort(x, left, b);
}