Логотип

Основы цифровой техники

 материалы в категории

Логические устройства умножения и деления

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

Еще в первом разделе указывалось, насколько проста операция умножения в двоичных кодах: множимое либо передается на сумматор, если в данном разряде множителя находится "1", либо не передается ("0"). Поэтому в функциональную схему устройства умножения (рис. 1) введен мультиплексор MS, с помощью которого проводится анализ множителя А2

По импульсу «Сброс» множитель А1 записывается в регистр RG1, а счетчик СТ2 и регистр RG2 обнуляются. На выход Q мультиплексора MS передается младший разряд множителя А2. Если он равен «1», то элемент И пропускает на свой выход тактовый импульс, по которому в RG2 записывается значение множимого А1 (в сумматоре SM А1 суммируется с нулем с выхода RG2). Через элемент задержки t тактовый импульс поступает на вход сдвига С регистра RG1 и сдвигает множимое А1 на один разряд вверх, код счетчика СТ2 увеличивается на единицу, на выход мультиплексора MS передается второй разряд множителя А2. Если он, например, равен «0», то элемент И закрыт и в регистр RG2 с выхода сумматора SM ничего не записывается. Устройство работает до тех пор, пока не будут перебраны все разряды множителя. Количество тактовых импульсов должно быть на один меньше, чем количество разрядов множителя. Если множимое имеет n разрядов, а множитель m разрядов, то, очевидно, что регистр RG1, сумматор SM и регистр RG2 должны иметь n + m разрядов.

Ранее рассказывалось о построении устройств умножения на ПЗУ. Эти устройства имеют большое быстродействие, но требуют программирования ПЗУ, что не всегда можно осуществить. Поэтому, выпускается большая номенклатура микросхем умножителей. Например, микросхема К555ИП8 выполняет умножение двух разрядов множителя на четыре разряда множимого. Однако для умножения 8-разрядных чисел потребуется не только 8 таких микросхем, но еще и 16 микросхем сумматоров, что довольно громоздко. В серии К1802 (ТТЛШ) выпускаются микросхемы более сложных умножителей: 8 x 8 разрядов (К1802ВРЗ), 12 х 12 разрядов (К1802ВР4) и даже 16 х 16 разрядов (К1802ВР5).

Построение устройств деления сложнее. Рассмотрим пример деления чисел в двоичных кодах: число 56 (двоичный код 111000) разделим на 8 (двоичный код 1000).

  111000 1000
  1000 111
    1100  
    1000  
      1000  
      1000  
      0000  

Как видим, в результате получилось число 111 (т.е. 7). Алгоритм деления выглядит так. Из старших разрядов делимого вычитается делитель, если разность больше нуля, в результат заносится «0» делитель сдвигается на один разряд вниз (если разность меньше нуля, в результат заносится «0»), В принципе (в отличие от умножения), этот процесс может продолжаться бесконечно (вспомним бесконечные дроби). Но в аппаратуре процесс нужно ограничивать.

На рис. 2 показана функциональная схема устройства деления. Основным элементом его является вычитающее устройство DTR. Мультиплексор MS является переключателем с двух входов ни один выход. При подаче импульса «Загрузка» мультиплексор MS включается в положение, когда на его выход поступает делимое А1, поэтому делимое поступает на вход А вычитателя DTR (в остальное время на выход мультиплексора MS поступает разность из регистра хранения RG2). Одновременно в регистр RG1 по старшим разрядам записывается целитель А2, который поступает на входы В вычитателя DTR.

На выходе F вычитателя DTR образуется разность. Если эта разность больше нуля, то на выходе Р находится "1", которая по тактовому импульсу заносится в регистр RG3. Если имеется переполнение (разность меньше нуля), то на выходе Р находится "0", который и заносится в регистр RG3. С каждым тактом работы последовательно сдвигается делитель А2 на один разряд вниз в регистре RG1, а результат на один разряд вверх в регистре RG3. Число тактов работы определяется разрядностью результата, но при этом нужно помнить, что разрядность регистров RG1, RG2 и вычитателя DTR определяется как сумма числа разрядов делимого и числа разрядов результата.

Так же, как и для умножения, ПЗУ можно использовать для деления чисел. Если половину входов ПЗУ отвести под делимое, а половину - под делитель, то его можно запрограммировать под таблицу деления.

Очевидно, что разрядность делимого и делителя при этом небольшая (как и для умножения). На рис. 3 показано, как можно удвоить число разрядов делимого и делителя. Делимое представляется в виде (а2n + b), а делитель в виде (c2n + d). Дробь можно приближенно представить в виде:

Поэтому в схеме 3 имеются ПЗУ для формирования дробей а/с, b/c и d/c и ПЗУ для формировании произведений ad/c2 и bd/c2

Схема рис. 3 неудобна из-за большого числа ПЗУ, В схеме рис. 4 ПЗУ только одно — в нем определяется величина обратная делителю А2. А затем выполняется поразрядное сложение этой величины в зависимости от разрядов делимого A1. Например, старший разряд а, равен «1», тогда элементы &n1 открыты и число 1/А2 поступает на сумматор. По сути в этой схеме реализуется операция умножения числа А1 на число обратное А2, т.е. операция деления А1/А2.

 

 

Примечание: инфа с сайта http://naf-st.ru

Почта сайта