Способ полного сложения - вычитания чисел, кодируемых сигналами, и устройство для его осуществления
Реферат
Способ сложения-вычитания чисел основан на формировании двух трехуровневых сигналов copq(2kx/q), sipq(2ky/q), copq(2ky/q), sipq(2ky/q), по волновым функциям Попова - popq(). Эти функции представляют двумя ортогональными составляющими: popq() = copq()+isipq(). Каждое число Kх и Ky от Kx,y = 0 до Kх,у = g -1, в системах счисления с основанием g = 4 и g =8, представляют фазами x,y = 2kx,y/q. Каждую фазу x,y кодируют значениями уровней сигналов copq(2kx,y/q) и sipq(2kx,y/q). Значения ортогональных составляющих функций Попова copq() и sipq() определяют путем сравнения с порогами соответствующих тригонометрических функций cos и sin при значении аргумента = 2k/q. Техническим результатом изобретения является расширение функциональных возможностей, предусматривающих кодирование чисел трехуровневыми сигналами, их сложение и вычитание в системах счисления с основаниями g= 4 и g=8. Для сложения фаз формируют сигналы cорg (s) и sip g (s), а для вычитания - cорg (-s), sipg (-s), которые представляют коды суммы и разности чисел слагаемых Kх и Ky. Сложение и вычитание фаз производят в соответствии с известными формулами сложения и вычитания фаз синусоидальных волн. 3 с.п. ф-лы, 12 ил., 41 табл.
Изобретение относится к области автоматики и вычислительной техники и может быть использовано в дискретных автоматах для сложения-вычитания чисел, кодируемых трехуровневыми сигналами по ортогональным составляющим функций Попова.
Известен способ кодирования трехзначных чисел троичных систем счисления (С. 0. Мкртчян, Проектирование логических устройств ЭВМ на нейронных элементах, М. , "Энергия", с. 81-83). При таком способе кодирования трехуровневый биполярный сигнал представляется отрицательной полярностью сигнала число "0", нулевым уровнем - число "1", сигналом положительной полярности - число "2". Такой способ кодирования обеспечивает представление троичных чисел и не обеспечивает кодирование q-ричных чисел, при q больше трех. Известно устройство сложения-вычитания неизбыточного и избыточного аргументов в двоичной системе счисления (СССР, авт. св. N 407308, G 06 F 7/50, Бюл. N 46, 1973 г.), которое содержит блоки формирования суммы и переноса, выполненные на логических элементах. Каждый из блоков формирования суммы и переноса содержит две схемы формирования соответственно логического дополнения и действительного значения суммы и переноса, состоящей из трех элементов "И", и подключенных к их выходам элементов "ИЛИ", связанных выходом с усилителем-инвертором. Первые два входа первых элементов "И" каждой схемы формирования соединены с шинами логического дополнения положительного и отрицательного значений избыточного аргумента. Третьи входы первых элементов "И" схем формирования дополнения суммы и переноса блоков формирования суммы и переноса соединены с шиной действительного значения неизбыточного аргумента. Третьи входы элементов "И" схем формирования действительного значения суммы и переноса - с шиной логического дополнения неизбыточного аргумента. Первые входы вторых и третьих элементов "И" соединены с шинами действительных положительного и отрицательного значений избыточного аргумента соответственно. Другие входы второго и третьего элементов "И" схемы формирования дополнения суммы соединены с шинами логического дополнения неизбыточного аргумента. Другие входы второго и третьего элементов "И" схемы формирования действительного значения суммы - с шинами действительного значения неизбыточного аргумента. Другие входы второго и третьего элементов "И" схемы формирования дополнения переноса соединены с шиной действительного значения (при сложении) и шиной логического дополнения (при вычитании) управляющего сигнала соответственно. Другие входы второго и третьего элементов "И" схемы формирования действительного значения переноса соединены с шиной логического дополнения и шиной действительного значения управляющего сигнала соответственно. Выход инвертора схемы формирования дополнения суммы данного разряда и выход инвертора схемы формирования действительного значения переноса блока формирования переноса предшествующего разряда соединены с выходными шинами положительного значения суммы. Выход инвертора схемы формирования действительного значения суммы данного разряда и выход инвертора схемы формирования дополнения переноса предшествующего разряда соединены с выходными шинами отрицательного значения суммы. Избыточное кодирование осуществляется введением в каждый разряд отрицательной единицы, т.е. один из аргументов кодируется в двоичной системе с цифрами -1, 0, 1: сумма в каждом разряде принимает значение, равное 0 или -1, а перенос - 0, при этом окончательная сумма в i-ом разряде, получаемая в двоичной системе с цифрами -1, 0, 1, имеет либо положительное, либо отрицательное значение и является простым объединением истинного значения суммы в i-м разряде и логического дополнения переноса из i-го разряда для отрицательного значения окончательной суммы и простым объединением дополнения суммы в i-ом разряде с истинным значением переноса из (i - 1)-го разряда для положительного значения окончательной суммы (под простым объединением понимается то, что каждое значение окончательной суммы в i-ом разряде выдается двумя шинами: соответствующими шинами суммы из i-го разряда и переноса из (i - 1)-го разряда). Устройство сложения-вычитания неизбыточного и избыточного аргументов работает только в двоичной системе счисления. Известен троичный комбинационный сумматор и способ его работы, принятый за прототип изобретения (СССР, авт.св. N 416691, G 06 F 7/50, Бюл. N 7, 1974 г. ). Сумматор содержит три пороговых элемента, пять входных и четыре выходные шины. Первый пороговый элемент имеет порог +3 и пять входов с весами +2, +1, +1, +2, +1. Второй пороговый элемент имеет порог +5 и шесть входов с весами +2, +1, +1, +2, +1, +3. Третий пороговый элемент имеет порог +6 и семь входов с весами +2, +1, +1, +2, +1, +3, +2. Первые и вторые входы всех пороговых элементов подключены к шине старшего члена разряда первого слагаемого, вторые входы всех пороговых элементов подключены к шине младшего члена разряда первого слагаемого. Третьи входы всех пороговых элементов подключены к шине младшего члена разряда второго слагаемого. Четвертые входы всех пороговых элементов подключены к шине старшего члена разряда второго слагаемого. Пятые входы пороговых элементов подключены к шине переноса из предыдущего разряда сумматора. Шестые входы второго и третьего пороговых элементов подключены к инверсному выходу первого порогового элемента. Седьмой вход третьего порогового элемента подключен к инверсному входу второго порогового элемента. Цифры троичной системы закодированы согласно таблице 1а. Работа троичного сумматора описывается таблицей 2a (таблицы 1а и 2а см. в конце описания) С прямого выхода порогового элемента ПЭ1 снимается перенос C1 в следующий разряд сумматора, с прямого выхода порогового элемента ПЭ2 снимается старший член разряда троичной суммы S21, a с прямого выхода порогового элемента ПЭ3 снимается младший член разряда троичной суммы S11. Первые входы всех пороговых элементов соединены вместе и подключены к шине x21, вторые входы всех пороговых элементов подключены к шине x11, третьи входы всех пороговых элементов подключены к шине y11, четвертые входы всех пороговых элементов подключены к шине y21, пятые входы всех пороговых элементов подключены к шине C1-1, кроме того шестые входы второго и третьего элементов подключены к инверсному выходу порогового элемента ПЭ1, а седьмой вход порогового элемента ПЭ3 подключен к инверсному выходу порогового элемента ПЭ2. Троичный сумматор работает только в трехзначной - троичной системе счисления. Техническим результатом изобретения является расширение функциональных возможностей способа сложения-вычитания. Расширение функциональных возможностей предусматривает кодирование чисел трехуровневыми сигналами, их сложение и вычитание в системах счисления с основаниями q = 4 и q = 8. Трехуровневые волновые функция Попова Для кодирования чисел трехуровневыми сигналами, вводятся трехуровневые волновые функции Попова. 1. Дискретные волновые функции. Для кодирования чисел автор изобретения ввел дискретные волновые трехуровневые, биполярные функции popq(2 k/q), различные для разных оснований q систем счисления и назвал их своим именем - функции Попова. Эти функции представляют парой ортогональных составляющих: popq(2k/q) = copq(2k/q)+isipq(2k/q), (1) где q - основание системы счисления, которое может принимать значения от q = 3 до q = 8; k - число-цифра, которая для одного разряда может принимать значения, равные 0, 1, ..., (q-1). При этом каждую цифру k представляют фазой волновой функции Попова kq= 2k/q, a каждую фазу kq кодируют сочетанием значений ортогональных составляющих cop(kq) и sipq(kq). Значения ортогональных составляющих copq(2k/q) и sipq(2k/q) определяют через значения соответствующих им тригонометрических функций косинус и синус: cos(2k/q) и sin(2k/q). Для этого период 2 делят на q равных частей и назначают одинаковые по абсолютному значению положительный и отрицательный пороги . Пример такого квантования по фазе для q = 7 приведен на фиг. 1. Значения тригонометрических функций в точках аргумента kq= 2k/q сравнивают с порогами. Если значение тригонометрической функции превышает положительное пороговое значение +, то соответствующей ей трехуровневой ортогональной составляющей приписывают значение +1, если значение тригонометрической функции меньше отрицательного порогового значения -, то соответствующей функции copkq или sipkp приписывают значение -1, если значение тригонометрической функции находится между пороговыми значениями + и -, то соответствующей трехуровневой ортогональной составляющей приписывают значение 0. Таким образом, значения ортогональных составляющих трехуровневых волновых функций можно определить, как: Значения порогов определяют из условия однозначного кодирования всех q фаз сочетаниями значений функций copq(kq) и sipq(kq), для всех оснований q от q = 3 до q = 8. При этом наихудшим случаем кодирования, с точки зрения допустимого уровня порога, является случай квантования периода для q = 7. Для этого случая (фиг. 1) в точках 2,7= 4/7 и 5,7= 10/7 значение а в точках 3,7= 6/7 и 4,7= 8/7 значение и для однозначного кодирования семи фаз уровнями ортогональных составляющих абсолютное значение порогов должно быть больше sin/14 и в то же время меньше sin/7, то есть для однозначного кодирования q фаз для всех q от q = 3 до q =8 значение модуля порога при определении значений дискретных функций copq(2k/q) и sipq(2k/q) можно выбирать любым в пределах: sin/7 > > sin/14. (4) При таком определении дискретных волновых функций, используя сочетания значений ортогональных составляющих copq(2k/q) и sipq(2k/q), обеспечивается однозначное кодирование q фаз функций popq(2k/q) и, следовательно, q цифр k = 0, 1, ..., (q-1). Для кодирования чисел в системах счисления, с основаниями q = 4 и q = 8 ограничение на выбор значения порога (4) менее жестко, а именно: Функции popq(2k/q), примененные для представления чисел в системе счисления с основанием q, могут быть использованы и для представления чисел в системе счисления с основанием (q + 1). При этом для кодирования (q + 1) цифр множество значений волновых функций дополняют сочетаниями значений ортогональных составляющих "0,0", когда обе ортогональные составляющие принимают нулевое значение. Например, для кодирования чисел в девятеричной системе счисления (q = 9) сочетания значений ортогональных составляющих волновых функций для q = 8 дополняют сочетанием "0,0", соответствующим цифре k = 0, а способ кодирования остальных цифр аналогичен описанному выше с той разницей, что при таком способе кодируют цифры k1 = k + 1. В таблицах 1 - 7 (см. в конце описания) представлены значения фаз kq= 2k/q и соответствующие им фазо-волновые коды цифр для разных q от q = 3 до q = 8, а в таблице 7 представлены фазо-волновые коды цифр девятеричной системы счисления. 2. Непрерывные трехуровневые биполярные функции Попова Трехуровневые биполярные функции непрерывного аргумента VVVV, который изменяется в пределах 0 < 2, представленные ортогональными составляющими: popq() = copq()+isipq(), (5) определяют через дискретные трехуровневые функции popq(2k/q), принимая k = [q/2], где k[] - означает целую часть аргумента q/2. То есть ортогональные составляющие непрерывных функций copq() и sipq() сохраняют значения соответствующих им дискретных функций, которые они имели в точках kp= 2k/q, в секторе аргумента : 2k/q < 2(k+1)/q (6) Правила сложения-вычитания чисел по модулям q = 4 и q = 8, представленных фазо-волновыми кодами popq() Правила сложения чисел по модулю q = 4 определяются таблицей 8, а правила вычитания чисел по модулю q = 4 - таблицей 9. Правила сложения чисел по модулю q = 8 определяются таблицей 10, а правила вычитания чисел по модулю q = 8 определяются - таблицей 11. В тех случаях, когда сумма равна или больше основания системы счисления q по модулю, формируют число "1" - переноса в старший разряд. При вычитании число переноса "-1" формируют, когда разность меньше нуля. В таблицах 8-11 эти значения сумм и разностей подчеркнуты. Заменяя в таблицах 8 - 11 (см. в конце описания) цифры их фазо-волновыми кодами получаем таблицы истинности для операций сложения - вычитания чисел, представленных фазо-волновыми кодами таблиц 12-15 (см. в конце описания). При наличии единицы переноса из младшего разряда осуществляют сдвиг фаз результатов сложения по модулю на /2 при сложении или на -/2 при вычитании для четверичной системы сложения и на /4 при сложении или на -/4 при вычитании для восьмеричной системы счисления. Этому случаю соответствуют таблицы истинности 16 - 19. Поскольку коды чисел kx и ky (слагаемых или уменьшаемого и вычитаемого) представляют фазы x= 2kx/q и y= 2ky/q волновых функций Попова, способ сложения или вычитания сводится к сложению или вычитанию фаз волновых функций слагаемых. Волновые функции Попова обладают свойствами, аналогичными свойствам синусоидальных волн. В частности, для них справедливо правило сложения фаз: и правило вычитания фаз: где s= x y, при этом 0 s< 2. Описанный способ сложения - вычитания представляет принцип действия "полусумматора-вычитателя". Полный сумматор-вычитатель предполагает сложение-вычитание результатов сложения-вычитания по модулю с единицей переноса из предыдущего разряда, если таковая имеет место, а также формирование единицы переноса в следующий по старшинству разряд. Для сложения-вычитания с единицей переноса используют формулы сложения трех фаз, аналогичные тригонометрическим соотношениям: и формулы вычитания: где c/- фаза кода единицы переноса C = 1, c1= x y c. При этом 0 c1< 2. Для четверичной системы счисления c= /2. Этой фазе соответствует код: cop4c= 0, а sip4c= 1 - при сложении и sip4-c= -1 - при вычитании. Для восьмеричной системы счисления c= /4 и код переноса cop8c= 1, а sip8c= 1 - при сложении и sip8-c= -1 - при вычитании. С учетом значений кодов единицы переноса формулы полного сложения (11) и (12) для четверичной системы счисления принимают вид: а формулы полного вычитания (13) и (14): Для восьмеричной системы счисления формулы полного сложения: а формулы вычитания: Из анализа соотношений (15) - (22) можно сделать следующий вывод - для реализации операций сложения и вычитания по модулю, а также для полного сложения и полного вычитания как в четверичной, так и в восьмеричной системах счисления достаточно получить четыре произведения фазо-волновых кодов и путем комбинирования сумм - разностей этих произведений реализовать любую из операций по формулам (15) - (20). Это означает, что можно построить универсальное устройство для реализации операций сложения-вычитания, сдвига, сравнения в четверичной и восьмеричной системах счисления. Правила формирования кода единицы переноса Независимо от системы счисления код единицы переноса при сложении должен формироваться, если фаза кода суммы больше или равна 2 и код переноса "-1" - при вычитании, если фаза кода разности меньше -2. Однако такое определение правила неоднозначно в силу периодичности фазо-волновых функций. Из таблиц истинности 12, 14, 16 и 18 операций сложения видно, что независимо от значения кода переноса из предшествующего разряда, код единицы переноса формируется всегда, когда фазы кодов обоих слагаемых x или y больше или равны ,а также когда фаза кода суммы s и s+1 лежит в пределах от 0 до , и при этом фаза кодов хотя бы одного из слагаемых не меньше . Таким образом, можно сформулировать следующее правило формирования единицы переноса C = 1 при сложении: C = 1, если x и y , а также При этом формируют код единицы переноса при сложении: sipq(c+1) = 1 (24) Из таблиц истинности операций вычитания (таблицы 13, 15, 17 и 19) следует, что код единицы переноса, C = -1 формируется, если фаза x кода уменьшаемого меньше и фаза y кода вычитаемого не меньше , а также когда фаза -s или -s-1 кода лежит в пределах от до 2, и при этом либо фаза x кода уменьшаемое меньше , либо фаза y кода вычитаемого не меньше , то есть: C = -1, если x< и y, а также При этом формируют код единицы переноса при вычитании: sipq(-c-1) = -1 (26) Сигнал кода переноса cop8(c=1) = 1 в восьмеричной системе счисления формировать не обязательно, так как эта составляющая кода не изменяется при появлении единицы переноса. Аналогично в четверичной системе счисления сигнал кода переноса cop4(c1) не формируют, т.к. заведомо известно, что при наличии сигнала кода переноса sip4(c1) всегда сигнал cop4(c1) = 0, и этот факт можно учесть при сложении-вычитании с единицей переноса в следующий разряд. Способ полного сложения-вычитания чисел в четверичной и восьмеричной системах счисления Способ полного сложения-вычитания чисел основан на кодировании чисел-цифр kx и ky фазами x= 2kx/q и y= 2ky/q сигналов copq(x,y) и sipq(x,y) по волновым функциям Попова, а также на сложении-вычитании фаз сигналов в соответствии с формулами (15) - (22) и формировании сигналов переноса по правилам (23) - (26). Способ состоит в том, что формируют две пары трехуровневых сигналов: по волновым функциям Попова которые представляют двумя ортогональными составляющими: popq() = copq()+isipq(), (5) каждое число-цифру kx и ky от kx'y = 0 до kx'y = q -1, в системах счисления с основаниями q= 4 и q=8, представляют фазами x,y= 2kx,y/q, каждую фазу x,y кодируют значениями copq(2kx,y/q) и sipq(2kx,y/q). Значения ортогональных составляющих функций Попова copq() и sipq() определяют путем сравнения с порогами соответствующих тригонометрических функций cos() и sin() при значениях аргумента = 2k/q, как При этом значения модуля можно выбрать любым в пределах (4а). Для сложения-вычитания фаз предварительно формируют сигналы четырех произведений сигналов: - сигналы первого произведения - copq(x)copq(y); - сигналы второго произведения - sipq(x)sipq(y); - сигналы третьего произведения - sipq(x)copq(y); - сигналы четвертого произведения - copq(x)sipq(y), а также используют сигнал sipq(c) единицы переноса C = 1 при сложении и сигнал -sipq(-c) единицы переноса C = -1 при вычитании. Затем для сложения чисел формируют два сигнала copq(s) и sipq(s), которые представляют коды суммы чисел слагаемых kx и ky', если единица переноса из предыдущего разряда равна нулю (C = 0). При этом сигнал copq(s) формируют путем вычитания из сигналов первого произведения сигналов второго произведения, а сигнал sipq(s) путем сложения сигналов третьего и четвертого произведений, в соответствии с формулами (15а), (16а), (19а) и (20а). При наличии единицы переноса из предыдущего разряда (C = 1) при сложении чисел формируют два сигнала copq(s+1) и sipq(s+1). При этом в четверичной системе счисления сигнал cop4(s+1) формируют путем замены сигнала cop4(s) инвертированным по полярности сигналом sip4(s), a в восьмеричной системе счисления сигнал cop8(s+1) - путем вычитания из сигналов cop8(s) сигналов sip8(s), в соответствии с формулами (15б) и (19б). Сигнал sip4(s+1) в четверичной системе счисления формируют путем замены сигналов sip4(s) сигналами cop4(s), а сигнал sip8(s+1) в восьмеричной системе счисления - путем суммирования сигналов cop8(s) и sip8(s), в соответствии с формулами (16б) и (20 б). Для вычитания чисел формируют два сигнала copq(-s) и sipq(-s), которые представляют коды разности чисел kx и ky, если единица переноса из предыдущего разряда равна нулю (C = 0). При этом сигнал формируют путем сложения сигналов первого и второго произведений, а сигнал sipq(-s) - путем вычитания из сигналов третьего произведения сигналов четвертого произведения в соответствии с формулами (17а), (18а), (21а) и (22а). При наличии единицы переноса из предыдущего разряда (C = -1) формируют два сигнала copq(-s-1) и sipq(-s-1). При этом в четверичной системе счисления сигнал cop4(-s-1) формируют путем замены сигналов cop4(-s) сигналами sip4(-s), a в восьмеричной системе счисления сигнал cop8(-s-1) формируют путем сложения сигналов cop8(-s) и sip8(-s), в соответствии с формулами (17б) и (21б). Сигнал sip4(-s-1) в четверичной системе счисления формируют путем замены сигналов sip4(-s) инвертированными по полярности сигналами cop4(-s), а сигнал sip8(-s-1) в восьмеричной системе счисления формируют путем вычитания из сигналов sip8(-s) сигналов cop8(-s), в соответствии с формулами (18б) и (22б). Вместе с формированием сигналов кодов суммы-разности чисел формируют сигналы кодов единицы переноса в следующий разряд. При этом в четверичной системе счисления формируют сигналы кодов единицы переноса при сложении: sipq(c+1) = 1, если x и y , а также если 0 (s; s+1) < и (x или y ). При вычитании формируют сигналы кода переноса: sipq(-c-1) = -1, если x< и y , а также если 2 > (-s; -s-1) и (x< или y ). В остальных случаях при сложении и при вычитании формируют коды переноса: sipq(c1) = 0. Отличительными признаками изобретения-способа полного сложения-вычитания чисел являются: - кодирование чисел фазами трехуровневых фазо-волновых функций; - кодирование фаз уровнями ортогональных составляющих фазо-волновых функций; - сложение-вычитание фаз по аналогичным правилам сложения-вычитания фаз синусоидальных волн. Устройство сложения-вычитания чисел по модулям 4 и 8 содержит: пять входных (первую, вторую, третью, четвертую и пятую) и две (первую и вторую) выходных шины, два (первый и второй) инвертора полярности, два (первый и второй) повторителя, два (первый и второй) дифференциальных усилителя-ограничителя, переключатель полярности сигналов, четыре (первый, второй, третий и четвертый) амплитудных детектора и восемь (первый, второй и т.д.) управляемых ключей. Первая входная шина соединена через первый ключ с неинвертирующим входом первого дифференциального усилителя-ограничителя, а через второй ключ - с инвертирующим входом этого же усилителя, первая входная шина через седьмой ключ также подключена к инвертирующему входу второго дифференциального усилителя-ограничителя, а через восьмой ключ - к неинвертирующему входу этого же усилителя. В