Операционный автомат и микропрограмма для умножения чисел с фиксированной запятой в прямом коде.
Пусть необходимо построить операционное устройство для выполнения умножения чисел, представленных в форме с фиксированной запятой. Исходные операнды поступают на вход устройства последовательно за два такта по шине DI(0:7) в следующем формате:
Результат должен быть выдан на шину DO(0:7) в таком же формате и сопровождаться выдачей сигнала Ready.
Тогда структурная схема ОУ будет иметь вид.
Напишем микропрограмму и построим операционный автомат умножения чисел с фиксированной запятой.
Можно предложить следующий алгоритм выполнения операции умножения чисел, представленных в форме с фиксированной запятой.
1. Принять операнды по входной шине на регистры А и В.
2. Присвоить счетчику циклов значение 0. Присвоить сумме промежуточных произведений значение 0.
3. Провести анализ на равенство нулю каждого из сомножителей. Если хотя бы один из сомножителей равен нулю, то перейти к п.10.
4. Провести анализ младшего разряда множителя. Если младший разряд множителя равен 0, то перейти к п.6.
5. Выполнить сложение суммы промежуточных произведений и множимого.
6. Сдвинуть множитель и сумму частичных произведений множителя вправо на один разряд. Прибавить 1 к содержимому счетчика циклов.
7. Если содержимое счетчика циклов не рано 0, перейти к п.4.
8. При необходимости произвести округление.
9. Произведению присвоить знак плюс, если знаки сомножителей одинаковы, и знак минус, если знаки сомножителей разные.
10. Выдать результат на выходную шину, сопровождая выдачу сигналом Ready/
11. Конец.
Микропрограмма выполнения операции умножения чисел, представленных в форме с фиксированной точкой в прямом коде приведена ниже.
Микропрограмма содержит исходные данные для построения ОУ. На ее основе можно построить операционный и управляющий автоматы, а, следовательно, и все операционное устройство в целом.
Для построения управляющего автомата строится кодированная ГСА и синтез УА проводится одним из ранее рассмотренных методов.
Для построения ОА используются следующие списки:
4. Список слов и их типов, которые были использованы при написании микропрограммы (ее описательная часть). Он имеет следующий вид.
– РгА(0:7) – внутреннее слово с памятью;
– РгВ(0:7) – внутреннее слово с памятью;
– РгС(0:7) – внутреннее слово с памятью;
– Cnt(0:2) – внутреннее слово с памятью;
– DI(0:7) – входное слово без памяти;
– Ready – выходное слово без памяти;
– DO(0:7) – выходное слово без памяти.
5. Список микроопераций.
– y1: РгА:= DI;
– y2: РгС := 0
– y3: РгB:= DI;
– y4: Cnt := 0
– y5: РгС:= РгС + РгА(1:7);
– y6: Cnt:=Cnt+1
– y7: РгС:= R1(0.РгC);
– y8: РгB(1:7):= R1(РгC(7).РгB(1:7));
– y9: РгС:= РгС + 1
– y10: РгС(0):= 1;
– y11: DO := РгС;
– y12: Ready := 1.
6. Список логических условий.
– x1 = РгА(1:7)=0;
– x2 = РгB(1:7)=0;
– x3 = РгB(7);
– x4 = Cnt =7;
– x5 = РгВ(1);
– x6 = РгА(0)ÅРгВ(0)
Структурная схема ОА будет иметь следующий вид.
Умножение чисел, представленных в форме с фиксированной запятой в дополнительных кодах
Так как, для выполнения операции сложения целесообразнее использовать сумматор дополнительного кода, то желательно и умножение производить над числами, представленными в дополнительных кодах.
Алгоритм умножения, начиная с младших разрядов множителя, со сдвигом суммы частичных произведений и использованием дополнительного кода для представления чисел.
1. Исходное значение суммы частичных произведений принимается равным нулю.
2. Если анализируемая цифра множителя равна 1, то к сумме частичных произведений прибавляется множимое в том коде, в котором оно представлено; если эта цифра равна 0, прибавление не производится.
3. Сумма частичных произведений сдвигается на один разряд вправо, при этом, если сумма отрицательна, осуществляется модифицированный сдвиг.
4. П.п. 2 и 3 последовательно выполняются для всех цифровых разрядов множителя, начиная с младшего.
5. Если множитель – положителен, то полученный результат представляет собой произведение. Если множитель отрицателен, то для получения произведения к результату прибавляется множимое с обратным знаком.
Прибавление производится с выравниванием складываемых чисел по старшим разрядам.
Если результат размещается в двойном слове, то он предварительно сдвигается на один разряд вправо. Произведение получается в дополнительном коде.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|