- •Ответы плис
- •Программируемые логические матрицы.
- •Сложные программируемые логические устройства.
- •Программируемые пользователем вентильные матрицы.
- •Система на кристалле.
- •Правила комбинационной композиции. Недопустимое значение: х. Третье состояние: z. Шины с тремя состояниями.
- •Базовые комбинационные блоки.
- •Дешифраторы
- •Временные характеристики комбинационных схем.
- •Импульсные помехи.
- •Последовательностные схемы. Бистабильная схема.
- •Сравнение d-защелки и d-триггера. Регистры.
- •Сравнение d-защелки и d-триггера
- •Регистры
- •Проектирование синхронных логических схем. Синхронизация.
- •Ограничение времени изменения входов.
- •Ограничение времени предустановки. Ограничение времени удержания.
- •Ограничение времени предустановки
- •Ограничение времени удержания
- •Синхронизаторы.
- •Обобщенное представление конечного автомата.
- •Автомат Мили.
- •Автомат Мура.
- •Автомат Мура с регистровым выходом.
- •Этапы проектирования ка:
- •Декомпозиция конечных автоматов
- •Прямой код
- •Знаковое расширение.
- •Одноразрядный сумматор. Сумматор с последовательным переносом.
- •Полусумматор.
- •Сумматоры с последовательным переносом
- •Сумматор с ускоренным групповым переносом.
- •Префиксный сумматор.
- •Устройство вычитания. Компаратор. Устройство сдвига.
- •Устройство сдвига как умножитель и делитель. Устройство умножения.
- •Способы представления дробных чисел. Числа с фиксированной точкой.
- •Представление числа с плавающей точкой. Суммирование чисел с плавающей точкой.
- •Счетчики.
- •Сдвигающий регистр.
- •Маршруты проектирования цф в плис.
- •Проектирование ких фильтров с учетом архитектурных особенностей плис.
- •Основные блоки в архитектуре плис Xilinx 7-ой серии.
Прямой код
Двоичное число, состоящее из N битов и записанное в прямом коде, использует наиболее значимый бит для знака, а остальные N−1 бита для записи абсолютного значения этого числа. Если наиболее значимый бит 0, то число положительное. Если наиболее значимый бит 1, то число отрицательное.
Стандартный способ сложения не работает в случае двоичных чисел со знаком, записанных в прямом коде. Например, складывая –510 + 510 привычным способом, получаем 11012 + 01012 = 100102, что неверно. Двоичная переменная длиной N бит в прямом коде может представлять число в диапазоне [–2N–1 + 1, 2N–1 – 1]
Дополнительный код: Наиболее значимый разряд – знаковый, у всех положительных чисел – это «0», у отрицательных чисел – это «1». Остальные биты дополнительного кода отрицательного числа интерпретируются не так, как биты прямого кода. Все биты числа инвертируются а затем к значению наименее значимого бита прибавляется единица. 1/0 (инвертированный модуль +1)
Сложение производится как обычное, но перед этим знаковые числа переводится в дополнительный код. –210 + 110 = 11102 + 00012 = 11112 = –110
Вычитание одного двоичного числа из другого осуществляется путем преобразования вычитаемого в дополнительный код и последующего его сложения с уменьшаемым.
Произвольное N-битное число, записанное в дополнительном коде, может принимать одно из 2N возможных значений. Но весь этот диапазон разделен между положительным и отрицательным числами.
Охватывает [–2N–1, 2N–1 – 1]
В случае дополнительного кода сложение двух положительных или отрицательных N-битовых чисел может привести к переполнению, если результат будет больше, чем 2N–1 – 1, или меньше, чем –2N–1. Сложение положительного и отрицательного чисел, напротив, никогда не приводит
к переполнению. В отличие от двоичного числа без знака перенос наиболее значимого бита не является признаком переполнения. Вместо этого индикатором переполнения является ситуация, когда после сложения двух чисел с одинаковым знаком знаковый бит суммы не совпадает со знаковыми битами слагаемых.
Знаковое расширение.
Знаковое расширение – операция увеличения количества битов произвольного числа, записанного в дополнительном коде.
Корректный способ расширения: значение знакового бита должно быть скопировано в наиболее значимые разряды модифицированного числа.
Например, числа 3 и –3 записываются в 4-битном дополнительном коде как 0011 и 1101 соответственно. Если мы увеличиваем число разрядов до семи бит, мы должны скопировать знаковый бит в три наиболее значимых бита модифицированного числа, что дает 0000011 и 1111101.
Если дополнять нулями, то в случае отрицательных чисел будет ошибка. Например -510 = 10112 , 000010112 = 1110
Одноразрядный сумматор. Сумматор с последовательным переносом.
Полусумматор.
Вначале спроектируем одноразрядный полусумматор (half adder). Как показано на Рис. 5.1, полусумматор имеет два входа (А и В) и два выхода (S и Cout). S – это сумма А и В. Если и А, и В равны 1, то выход S должен стать равным 2, такое число не может быть представлено в виде одного двоичного разряда. В этом случае результат указывается вместе с переносом Сout в следующий разряд. Полусумматор может быть построен из элементов XOR («исключающее ИЛИ») и AND («логическое И»).
В многоразрядном сумматоре выход Сout подсоединяется ко входу переноса следующего разряда. Например, на Рис. 5.2 бит переноса показан синим цветом, он является выходом Сout одноразрядного сумматора 1-го разряда и входом Cin сумматора следующего разряда. Однако в полусумматоре нет входа переноса Cin для связи с выходом Cout предыдущего разряда.
Как показано на Рис. 5.3, полный сумматор (full adder), имеет вход переноса Cin,. На рисунке также приведены уравнения для S и Cout.
N-разрядный сумматор складывает 2 N-разрядных числа (А и В), а также входной перенос Сin и формирует N-разрядный результат S и выходной перенос Cout. Такой сумматор называется сумматором с распространяющимся переносом (carry propagate adder, CPA), так как выходной перенос одного разряда переходит в следующий разряд. Условное обозначение такого сумматора показано на Рис. 5.4. Оно аналогично обозначению полного сумматора за исключением того, что входы/выходы А, В, S являются шинами, а не отдельными разрядами.