Цифровой функциональный преобразователь анишина

Иллюстрации

Показать все

Реферат

 

1. функциональный преобразователь, содержащий первый и второй сумматоры-вычитатели, блок аиалиэа и блок управления, выходы первого и второго сумматоров-вычитателей соединены с первым и вторым соответственно входами блока анализа , первый выход которого соединен с управляющими входами сумматоров-вычитателей , входы установки которых соединены с входом начальной установки преобразователя, выход ;второго сумматора-вычитателя соединен с выходом преобразователя, отличающийся тем, что, с целью расши1рения класса решаемых задач за счет возможности вычисления функций от нескольких переменных и возможности перенастра шания коэффициентов, в него введеныдва накапливающих сумматора и четыре формирователя операндов, информационные входы которых соединены с входом задания коэффициентов преобразователя , первые выходы формирователей операндов с первого по четвертый соединены с первыми информационными входами соответственно первого сумматора-вычитателя , первого и второго накапливающих сумматоров .и второго сумматора-вычитателя, второй информационный вход которого соединен с выходом первого накапливающего сумматора и третьим входом блока анализа, четвертый вход которого соединен с выходом второго накапливающего сумматора и вторым информационнь входом первого сумматор авычита теля, вторые информационные входы накапливающих сумматоров соединены с входом начальной установки преобразователя, причем блок управления содержит генератор импульсов, пять элементов И, два (Л элемента ИЛИ, четыре элемента задержки , три триггера, вычитающий счетчик, дещифратор нуля, формирователь импульсов и элемент НЕ, выходы формирователей операндов соединены с входами первого элемента ИЛИ, выход которого соединен с первым вхоел дом первого элемента И и через по-vj следовательно соединенные элемент НЕ ел и формирователь импульсов с входом установки в I первого триггера, 4 вход установки которого соедиСО нен с входом установки в 1 второго триггера.и через первый элемент задержки с выходом второго элемента И, первый вход которого соединен с выходом первого триггера, второй вход второго элемента И соединен с выходом третьего элемента И, вторым входом первого элемента И, первыми входами четвертого и пятого элементов И и через второй элемент задержки с входом установки в 1 третье

СОЮЗ СОВЕТСНИХ

СОЦИАЛИСТИЧЕСНИХ

РЕСПУБЛИН

«si) С 06 Р 7/544

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

К АВТОРСИОМЪ СВИДЕТЕЛЬСТВУ

ГОСУДАРСТВЕННЫ НОМИТЕТ СССР

ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЦТИЙ (21) 3563292/18-24 (22) 11. 03. 83 (46) 23.05. 85. Бюл. В 19 (72) Н. С. Анишин (71) Кубанский государственный университет (53) 681 325(088. 8) (56) 1. Авторское свидетельство СССР

В 746538, кл. G 06 F 7/548, !978.

2. Авторское свидетельство СССР

1! 744595, кл. G 06 F 15/31, 1976 (прототип). (54) ЦИФРОВОЙ ФУНКЦИОНАЛЬНЫЙ ПРЕОБРАЗОВАТЕЛЬ АНИШИНА. (57) 1. Цифровой функциональный преобразователь, содержащий первый и второй сумматоры-вычитатели, блок анализа и блок управления, выходы первого и второго сумматоров-вычитателей соединены с первым и вторым соответственно входами блока анализа, первый выход которого соединен с управляющими входами сумматоров-вычитателей, входы установки которых соединены с входом начальной установки преобразователя, выход . второго сумматора-вычитателя соединен с выходом преобразователя, о т л и ч а ю— щи и с я тем, что, с целью расширения класса решаемых задач за счет возможности вычисления функций от нескольких переменных и возможности перенастраивания коэффициентов, в него введеныдва накапливающих сумматора и четыре формирователя операндов, информационные входы которых соединены с входом задания коэффициентов преобразователя, первые выходы формирователей операндов с первого по четвертый соединены с первыми информационными

„„SU„„1157543 А входами соответственно первого сумматора-вычитателя, первого и второго накапливающих сумматоров и второго сумматора-вычитателя, второй информационный вход которого соединен с выходом первого накапливающего сумматора и третьим входом блока анализа, четвертый вход которого соединен с выходом второго накапливакзцего сумматора и вторым информационным входом первого сум" матора-вычитателя, вторые информационные входы накапливающих сумматоров соединены с входом йачальной установки преобразователя, причем блок управления содержит генератор импульсов, пять элементов И,, два элемента ИЛИ, четыре элемента saдержки, три триггера, вычитающий счетчик, дешифратор нуля, формирователь импульсов и элемент HF, выходы формирователей операндов соединены с входами первого элемента ИЛИ, выход которого соединен с первым входом первого элемента И и через последовательно соединенные элемент НЕ и формирователь импульсов с входом установки в "1" первого триггера, вход установки в "О" которого соединен с входом установки в "!" второго триггера.и через первый элемент задержки с выходом второго элемента

И, первый вход которого соединен с выходом первого триггера, второй вход второго элемента И соединен с выходом третьего элемента И, вторым входом первого элемента И, первыми входами четвертого и пятого элементов И и через второй элемент задержки с входом установки в "!" третье11

ro триггера, вход установки в "0" которого соединен с входом пуска преобразователя и через третий элемент задержки с первым входом третьего,триггера, вход установки в "0" которого соединен с входом пуска преобразователя и через третий элемент задержки с первым входом третьего элемента И, второй вход которого соединен с выходом генератора импульсов, прямые выходы второго и третьего триггеров соединены соответственно с вторым и третьим входами пятого н первого элементов И, инверсный выход третьего триггера соединен с вторым входом четвертого элемента И, вход установки в "0" второго триггера соединен с выходом второго элемента ИЛИ, второй вход которого соединен через дешифратор нуля с выходом вычитающего счетчика, вход которого соединен с выходом пятого элемента И и входом четвертого элемента задержки, вьжоды первого, второго и четвертого элементов И соединены с управляющими входами второго и третьего формирователей операндов, выходы первого, второго, четвертого и пятого элементов И соединены с управляющими входами первого и четвертого формирователей импульсов, второй вход второго элемента

ИЛИ соединен с вторым выходом блока анализа.

2. Преобразователь по п.,1, о т— л и ч а ю шийся тем, что каждый формирователь операндов содержит триггер, три элемента И, регистр сдвига, схему сравнения, группу элементов И и регистры коэффициента и константы, входы которых соединены с информационным входом формирователя, выходы разрядов, начиная с второго регистра коэффициента, соединены с первым входом схемы сравнения, второй вход и выход которой соединены соответственно с выходом регистра сдвига и входом установки в

"1" триггера, инверсный выход кото57543 рого соединен с первым входом первого элемента И, выход которого подключен к входу регистра сдвига, выход младmего и второго разрядов регистра коэффициента соединены соответственно с первым и вторым входами второго и первого элементов И, выход знака регистра коэффициента соединен с первым и вторым входами соответственно третьего и второго элементов И, выходы разрядов регистра констант соединены первыми входамн элементов И группы, вторые входы которых соединены с управляющим входом преобразователя, к которому подключены вторые входы первого и третьего и .:ретий вход второго элементов И, выходы элементов И с первого по третий и выходы группы элементов И соединены с первым выходом формирователя, инверсный выход триггера соединен с вторым выходом формиров ателя.

Э. ПРеобРазователь по и. 1, о т — л и ч.а ю шийся тем, что блок анализа содержит схему сравнения, сумматор, два сумматора по модулю два, элемент ИЛИ и элемент НЕ,-пер- вый и второй, выходы схемы сравнения соединены соответственно с входом элемента НЕ и первым входом первого сумматора по модулю два, второй вход и выход которого соединены со" ответственно с выходом элемента ИЛИ и первым входом второго сумматора по модулю два, второй вход и выход которого соединены соответственно с выходом знака сумматора и первым выходом блока, второй выход которого соединен с выходом элемента HE первый н второй входы схемы сравнения соединены с первым и вторим информационными входами блока, знаковые разряцы которых подключены к входам элемента ИЛИ, третий и четвертый информационные входы блока соединены с первым и вторым входами сумма,тора.

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

Известен функциональный преобразователь, содержащий блок памяти, дешифратор, генератор импульсов, двигатели, сумматоры, регистры 11).

Однако это устройство не позволя. ет производить перенастройку для вычисления различных функций;

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

Входи преобразователя связаны с входами занесения сумматоров-вычнтателей и регистров сдвига. Выходом преобразователя является выход одного иэ сумматоров-нычитателей (2).

Недостатком известного преобраэо- ЗО вателя является узкий класс решаемых задач.

Целью изобретения является расширение класса решаемых задач sa счет воэможности вычисления функции от З5 нескольких переменных и воэможности перенастраивания коэффициентов.

Поставленная цель достигается тем, что в цифровой функциональный преобразователь, содержащий первый и 4о второй сумматорьгвычитатели, блок анализа и блок управления, выходы первого и второго сумматоров-вычитателей соединены с первым и вторым соответственно входами блока анализа,4З первый выход которого соединен с управляющими входами сумматоров-вычитателей, входы установки которых соединены с входом начальной установки преобразователя, выход второго сум- S0 матора-вычитателя соединен с выходом преобразователя, дополнительно введены два накапливающих сумматора и четыре формирователя операндов, информационные входы которых соединены ээ с входом задания коэффициентов преобразователя, первые выходы формирователей операндов с первого по четвер1157543 4 тый соединены с первыми информационными входами соответственно первого сумматора-вычитателя, парного н второго накапливающих сумматоров и второго сумматора-вычитателя, второй информационный вход которого соединен с выходом первого накапливакщего сумматора и третьим входом блока анализа, четвертый вход которого соединен с выходом второго накапливанщего сумматора и вторым информационным входом первого сумматора-вычитателя

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

НЕ, выходы формирователей операндов соединены с входами первого элемента ИЛИ, выход которого соединен с первым входом первого элемента И и через последовательно соединенные элемент НЕ и формирователь импульсов с входом установки в «1« первого триггера, вход установки в "О« которого соединен с входом установки н

««

I второго триггера и через первый элемент задержки с выходом второго элемента И, первый вход которого соединен с выходом первого триггера, второй вход второго элемента И соединен с выходом третьего элемента И, вторым входом первого элемента И, первыми входами четвертого и пятого элементов И н через второй элемент задержки с входом установки н «1« третьего триггера, вход установки

««

I ,в 0 которого соединен с входом ,пуска преобразователя и через третий элемент задержки с первым входом третьего триггера, вход установки

«гъ « в 0 которого соединен с входом пуска преобразователя и через третий элемент задержки с первым нходом третьего элемента И, второй нход которого соединен с выходом генератора импульсов, прямые выходы второго и третьего триггеров соединены соответственно с вторым и третьим входами пятого и первого элементов И, иннерсный выход третьего триггера соединен с вторым входом четвертого элемента И, вход установки н «О" второго триггера соединен с выходом

1157543

1а второго элемента НЛН, второй вход которого соединен через дешифратор нуля с выходом вычитающего счетчика, вход которого соединен с выходом . пятого элемента И и входом четвертого элемента задержки, выходы первого„ второго и четвертого элементов И соединены с управляющими входами второго и третьего формирователей операндов, выходы первого, второго, четвертого и пятого элементов И соединены с управляющими входами первого и четвертого формирователей импульсов, второй вход второго элемента ИЛИ соединен с вторым входом блока анализа.

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

При этом блок анализа содержит схему сравнения, сумматор, два сум" матора-по модулю два, элемент. ИЛИ и зле"янт НЕ, первый и второй выходы схемы сравнения соединены соответственно с входом элемента НЕ и первым входом первого сумматора по модулю два, второй вход и выход которого соединены соответственно с вью ходом элемента ИЛИ и первым входом второго сумматора по модулю два, второй вход и выход которого соединены соответственно с выходом знака сумматора и первым выходом блока,. второй выход которого соединен с вь, ходом элемента НЕ, первый и второй входы схемы сравнения соединены с первым и вторым информационными входами блока, знаковые разряды которых подключены к входам элемента

ИМИ, третий н четвертый информационные входы блока соединены с первым и вторым вхоэми сумматора.

На фиг. 1 представлена блок-схема преобразователя; на фиг. 2-, 4 — блоксхемы соответственно формирователя операндов, блока управления и блока анализа.

Цифровой функциональный преобразователь содержит сумматоры-вычитатели 1, накапливающие сумматоры 2, формирователи 3 операндов, блока 4 управления, блок 5 анализа, входы 6 и выходы 7 и 8 блока анализа, входы и выходы 9-22 сумматоров-вычитателей, формирователей операндов и блока управления. Формирователи операндов содержат регистры 23 и 24 соответственно константы и коэффициента, схему 25 совпадения, регистр 26 сдвига, триггер 27, элементы И 28 и

29, группу элементов И 30, выход 31 входы 32-34 формирователей, выходы

35-39 формирователей. Блок управления содержит генератор 40 импульсов, элементы ИЛИ 41 и 42, элемент И 43, элементы 44 задержки, вычитающий счетчик 45, дешифратор 46 нуля, формирователь 47 импульсов,. элемент

НЕ 48, выходы блока 49 56. Блок анализа содержит сумматор 57, схему 58 сравнения, сумматоры 59 по модулю два и элемент HE 60, Работа преобразователя основана на итерационном алгоритме и ряде вспомогательных соотношений

g.„--s1ô {Х - Y. „) sign(11+ );

К.а )ф

1 Г1 ; = "1- Ч, 1 2 )

f(1 м, где 3 1, 2,..., и — номер итерации п — разрядность аргументов, исключая знак;

l 157

7 номер итерации (rcn - I), для которой Х„Y„a пределах сетки, или номер последней итерации о х х о х о

1х х i, о у ij yi N iw e

1 0 » и

1х, 1 „, k„, 1 — коэффициенты, равные целым. (От 0 до и-1) степеням !/2, взятым со знаком !О плюс или минус, или нулю; шхе штв шие Ф и кОнстанты по модулю меньшие 2;

t .(i 1,8,1

t — - вектор аргументов размерностью

g (I с 8 с 4) 20

+I если z 0

signz= -I, если z <0- функция знака стоп, если z0

Преобразователь работает следую щим .образом. 25

По сигналу "Пуск", поступающему яа вход 20 блока 4 управления, а as

sere далее во все узлы преобразова.теля (не доказаны), выполняются подготовительные операции: в элементы

1 — 4 заносятся аргументы t,. (через входы 22); триггеры 27 в блоке 4 управления и формирователях 3 операндов устанавливаются в "0"; регистры

26 сдвига формирователей 3 операндов сбрасываются в 0, а в их старtt lt

35 ший разряд заносится "I"; в вычитающий .счетчик 45 заносится константап; по входу 22 формирователя 3 операндов э регистры 24 и 23 заносятся щ коэффициенты М; а константы m (если изменяется вид вычисляемой функции).

Сигнал "Пуск" (потенциальный), поступакщий иа вход 20, задержавшись иа линии 44 задержки на время выпол-. а5 кения подготовительных операций, поступает на вход элемента И 29, открывая его. Очередной тактовый импульс От генератора 40 поступает на шины 55 и 56 выводов 13 н 12 блока 4 50 управления, откуда Оч передается эо эсе формирователи 3 операндоэ (через шину 33). Если в младшем разряде регистра 24 коэффициентов присутствуeT I (значит 0)х тО с помОЩью 55 элемента И 29 вырабатывается сигнал (по шине 37) на сброс содержимого сумматора 1 или 2. Если "I" нет, а в

543 8 старшем разряде "1." (знак "-"), то с помощью элемента И 28 вырабатывается сигнал (по шине 39) на образование обратного кода от содержимого сумма" торов 1 или 2. Спустя некоторое время, через элемент 44 задержки этот же первый тактовый импульс устанавливает триггер 27 в "!", закрывает элемент

И 29 и открывает элемент И 43 при условии, что по входу 17 блока 4 уп- равления через свои выходы lб хотя бы один формирователь 3 операндов подает высокий сигнал "1" (о необходимости сдвига содержимого сумматоров

1 и 2, еслик Ф +1)-, При этом условии второй и, возможно, посг. дующие тактовые импульсы проходят через элемент 43 .и по шинам 53 и 54 (выход 13 и !2) передаются в формирователь 3 операндов (по шине 32 входа II ), где через открытые элементы И 28 поступают по шине 38 на сумматор или 2 и вызывают арифметический сдвиг его содержимого на один разряд вправо.. Этим же сигналом s формирователе 3 операнр дов сдвигается вправо содержимое регистра 26 сдвига. В момент совпадения положения единицы в регистрах 24 и 26 схема совпадения посылает сигнал на вход триггера 27, с инверсного выхода которого снимается сигнал (низкого уровня), запрещающий дальнейшие сдвиги сумматора 1 или 2, управляемого от данного формирователя 3 операндов.

Одновременно этот же сигнал "0" подается через выход 16 на вход 17блока 4 управления.

В момент, когда От всех четырех формирователей 3, операндов поступают сигналы "0", элемент ИЛИ 42 закрывает элемент И 43 и операции сдвигов (умножения k -t,) на этом заканчивается.

Одновременно сигнал "О" элемента

ИЛИ 42 поступает через элемент HE"58. и формирователь 47 на вход триггера

27, устанавливая его в "1". С его прямого выхода снимается сигнал, открывающий элемент И 29. Очередной тактовый импульс, пройдя через нее, поступает по шинам 49 и 50 выходов

13 и 12 блока 4 управления во все формирователи 3 операндов по шине

31 (входа 11) и, открывая(+1)-разрядную группу 30 элементов И, заносит со держимое регистра 23 константы m.

t через шины -36 выхода I8 в сумматор 1

1! 57543

1О или 2, где оно суммируется с его прежним содержимым. Итак, в каждом сумматоре после этого формируются операнды Х, У„,ю, U для последующих итераций. Заканчивается этап подго- 5 товки операндов тем, что этот сигнал, снятый с выхода элемента И 29, поступает еще и на вход триггеров

27, сбрасывая один в "0" и устанавливая в "1" другой.

Этап итераций начинается; когда очередной тактовый импульс, пройдя через открытый элемент И 29, поступает через шину 52 выхода 12 блока 4 управления на вход 11 (шина 34) и, пройдя через их выход 18 (шина 35) и далее на вход 19 сумматора-вычитателя 1, суммирует (как синхросигнал) или вычитает (в зависимости от того сигнала,. который поступает на входы ©

10 со второго выхода 9 блока 5 анализа ) к его содержимому по входу 14 содержимое одноименного накапливающего сумматора 2. Этот же тактовый импульс в блоке 4 управления, задержавшись на полпериода тактовых импуль. сов на элементе 44 задержки, поступает через шику 51 выхода 13 блока 4 управления через второй и третий формирователи 3 операндов на накапливаю- 3!! щие сумматоры 2 и вызывает арифметический сдвиг вправо их содержимого на один разряд.

Перед началом каждой итерации, в том числе и первой, содержимое обоих сумматоров-вычитателей I u содержимое обоих накапливающих сумматоров 2 поступает на информационные входы блока 5 анализа, определяющего выходной сигнал на выхода 8 4а (сигнал q „) и сигнал на выходе 7 (конец итераций по Хг Ч„).

)- 1

Блок 5 анализа работает следующим образом, На первые и вторые входы (n+1)- 4s разрядного комбинационного сумматора

57 поступают величины ю и U. На его единственном знаковом выходе возникает сигнал "1" об отрицательной величине (U+te). Кстати, после последующих р сдвигов знак суммы (U+id)- 2 i не изменяется и равен знаку суммы (О+и), так как сдвиги арифметические.

Схема 41 .(блока 5 анализа) учитывает знаки Х „и Ч; „, а ее выходной сигнал вместе с выходным сигналом сумматора 57 и первым выходным сигналом (код Х - „ кода 4! 1) с помощью первого и второго сумматоров

59 по модулю два преобразуется в сигнал 1-1,, равный "0 при q, +l или "l" при q, = -1. Он поступает на выход 9 блока 5 анализа.

Каждый тактовый импульс, вызывавший итерацию, поступает на вход вычитающего счетчика 45 (блок 4 упрasления), уменьшая его содержимое на единицу. Таким образом подсчитывается число итераций. В момент, когда будет выполнена и-ая итерация, содержимое счетчика 45 равно нулю, что сразу фиксирует дешифратор 46 нуля. Высокий уровень с его выхода поступает на вход и триггера 29, сбрасывая его в "0". Элемент И 29 закрывается, и очередные тактовые импульсы на шины 51 и 52 выходов 13 и 12 не поступают, Итерации могут прекратиться досрочно (до исчерпания числа n) если на первый вход 9 блока 4 управления поступит сигнал "1" от блока

5 анализа через выход схемы 58 сравнения, через элемент HE 60 и через

его первый выход 7. Он вырабатывается схемой 58 сравнения, если содержимые обоих сумматоров-вычислителей 1 сравняются пюсле какой-то г-ой итерации (в пределах разрядности сумматоров-вычитателей).

В обоих случаях на выходе 21 блока 4 управления выдается сигнал "Конец", означающий, что результат (с точностью до и двоичных разрядов) готов и находится во втором сумматоре-вычитателе 1, выход которого является выходом преобразователя.

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

Максимальная относительная погрешность вычисления функции составляет

10 - 10 и зависит от вида функции и диапазона .изменения аргументов (при nl4).

Число разрядов и рекомендуется брать не более 12-14.

При необходимости перестроить преобразователь на вычисление другой функции достаточно заслать в регистры коэффициентов 24 и констант 23, рассчитанные по особым математическим формулам, коэффициенты %„, ll

Й„, й„, к и константы ш„, ш., ш„, и е

Регистр 24 содержит в знаковом разряде "!", если коэффициент отрицателен, а также в t-м разряде "!" (t считается вправо от знакового разряда), если М+1оя (1с;), "!" присутствует в самом младшем (и+!)-м, разряде если к,. О. Регистр 23 содержит константы в обратном коде ш c 2".

1! 57543 !2

Благодаря введенным блокам (формирователи операндов, накапливакщие сумматоры, дополнительные узлы s блоках управления и анализа и. связям между блоками преобразователя обеспечена возможность

1ычнслення большого класса элементарных функций, т. е. расширение класса вычнсляе10 мых преобразователем функций. ll57543

1 I 5754 3

18

Фис 3

1157543

Составитель А. Зорин.

Редактор Н. Лазаренко Текред М.Кузьма Корректор Е. Сирохман

Заказ 3372/47 Тирам 710 Подписное

ВНИИПИ Государственного комитета СССР по делам изобретений и открытий

1 13035„ Ìîñêâà, Ж-35, Раушская наб., д. 4/5

Филиал ППП "Патент", г. Уинород, ул. Проектная, 4