Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРС_ПКИМС_ПЛИС.doc
Скачиваний:
35
Добавлен:
05.06.2015
Размер:
1.85 Mб
Скачать

2. Проектирование схем двоично-десятичной арифметики.

2.1. Двоично-десятичное представление схем.

Двоично-десятичная арифметика широко применяется в тех случаях, когда необходимо обеспечить выдачу результатов расчётов в виде, удобном для человека, поскольку люди предпочитают десятичную систему исчисления в отличие от компьютеров, работающих в двоичной.

Двоично-десятичное представление используется при выводе чисел на индикаторы, принтеры другие алфавитно-графические устройства.

Двоично-десятичное представление чисел базируется на основе тетрад, при котором каждой десятичной цифре ставится в соответствие четыре бита. Ниже приведен пример двоично-десятичного представления числа 1956.

0001 1001 0101 0110

1 9 5 6

Для чисел меньше 10 шестнадцатеричные и двоично-десятичные представления совпадают, для больших чисел они отличаются. Например, число 15 имеет следующие представления в различных форматах.

1111 0001 0101 F

двоичное двоично-десятичное шестнадцатеричное.

Для выполнения арифметических операций двоично-десятичного сложения и вычитания требуется специфическая арифметика, которая во многом похожа на арифметику, с которой имеет дело человек.

Для выполнения операций двоично-десятичной арифметики можно использовать две схемы.

а) Схемы с переводом.

В этом случае арифметическая операция выполняется в три этапа:

  • перевод чисел из 2-10-й системы в двоичную;

  • собственно арифметическая операция;

  • перевод результата из двоичного вида в 2-10-й.

Этот простой, но достаточно громоздкий способ. Он не отличается высоким быстродействием и требует громадных таблиц перекодировки данных. Данный способ широко применяется при наличии мощных вычислительных систем, например, процессоров. При этом цикл перевода чисел обычно составляет несколько сотен команд процессора, что допустимо, поскольку речь идёт о выдаче результатов для человека.

б) Схемы с коррекцией результатов.

В этом случае для двоично-десятичных операций используется стандартная схемотехника, в которую вводятся схемы потетрадной коррекции результатов.

Смысл схем коррекции заключается в том, что если в результате выполнения арифметической операции в тетраде получается число больше девяти, то к нему, для получения правильного двоично-десятичного результата нужно прибавить число 6.

Например, при сложении чисел 7 (0111) и 8 (1000) получается число 15 (1111), которое больше 9. После проведения коррекции т.е. прибавления числа 6 получается код 10101, что соответствует 15 в двоично-десятичном виде.

2.2. Двоично-десятичный сумматор

Рассмотрим схему двоично-десятичного сумматора, работающую с коррекцией результата. Эта схема представлена на рис 2.1.2.

Рис. 2.1.1 Двоично-десятичный сумматор, работающей по схеме с коррекцией результата.

Данный сумматор выполняет сложение двух двоично-десятичных тетрад A[3..0] и B[3..0]. На выходах S[3..0] и P формируется двоично-десятичная сумма.

На представленной схеме сумматор sum4(1) выполняет обычное двоичное сложение чисел A[3..0] и B[3..0]. Сумматор sum4(2) выполняет коррекцию: добавляет к сумме число 6, задаваемое подключением его входов B к земле или питанию. Схема комбинационной логики, построенная на элементах OR2 и AND2, управляет работой выходных мультиплексоров мux2(9)мux2(12), мux2(18). Если результат на выходе sum4(1) оказывается меньше 10, мультиплексоры пропускают на выход результат без коррекции (входы В), в противном случае - скорректированный результат (входы А). Коррекция осуществляется так же в случае если результат меньше десяти, но был сформирован сигнал переноса схемой sum4(2).

Временная диаграмма работы двоично-десятичного сумматора представлена на рис 2.1.2.

Рис 2.1.2. Временная диаграмма работы двоично-десятичного сумматора.

На рис 2.1.2. следует обратить внимание, что группа SUM представлена в шестнадцатеричном виде, а результат выглядит так, как будто она имеет десятичный вид. Это стандартная ситуация для схем, работающих в двоично-десятичной арифметике.

На языке AHDL двоично-десятичные сумматоры описываются достаточно просто. Для описания условий и вариантов коррекции результата используется либо оператор IF THEN либо оператор CASE.

Рассмотрим пример описания восьмиразрядного двоично-десятичного сумматора, работающего в диапазоне десятичных чисел от 1 до 99.

SUBDESIGN ADD210

(A[7..0],B[7..0]:INPUT;

OUT[8..0]: OUTPUT;)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]