Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Смолов, В. Б. Аналого-цифровые и цифро-аналоговые нелинейные вычислительные устройства

.pdf
Скачиваний:
20
Добавлен:
22.10.2023
Размер:
10.52 Mб
Скачать

сократить необходимое число входов схем дизъюнкции по сравне­ нию с простым объединением выходов дешифратора.

Множество десятичных номеров наборов, на которых переклю­

чательная функция ер,- (х)

1, обозначим £ 0/,

а число элементов

этого множества | £ 0/|-

 

 

1. Найдем пересечение

всех множеств Eoj:

Н0 = f]mЕ0]-. Если

 

 

/=1

это пересечение Я 0 ф 0 и | Я 01Ф 1, то все выходы дешифратора, соответствующие номерам, входящим в Я 0, объединим с помощью одной схемы дизъюнкции. Использование такой схемы позволяет

уменьшить

общее число входов схем

дизъюнкции на

величину,

т (\Н 0\

1). Затем построим

систему

множеств

Ец,

таких

что

Еи = Eoj — Я 0. Если же Н0 =

0 или | Н0\ = 1,

то примем,

что

Еoj —Ец.

Рис. 8-3. Структурная схема преобразователей,

построенных

по

ДСНФ функций заданной

системы

 

 

2. Найдем все пересечения из т множеств Е 1;- по т—1.

В ре­

зультате получим совокупность

=

{Н1и

Я 12, . . . ,

Н 1т}.

Найдем в ней множество с наибольшим

числом элементов: | Я* | =

= т а х |Я 1;. |. Если Н*=£0 и |Я*|=уМ,

то все

выходы дешифра­

тора, соответствующие номерам, входящим в Я*, объединим с по­ мощью одной схемы дизъюнкции. При этом общее число входов схем

дизъюнкции

уменьшится

на величину (т—1)(| Я*| — l).

Затем

построим систему множеств Е 2]-, таких

что E2j =

Еу — Я*. Если

же Н\ =

0

или | Я* | =

1,

то примем,

что £ 2/

=

Ец.

 

3.

^ Продолжая действовать описанным способом, для

всех зн

чений k = т—2, т—3,

. . . , 2, найдем все пересечения т мно­

жеств Ekj по тk. В

результате получим

совокупность

Нк =

= [Hki>

 

- ■■, Ны\,

число элементов в

которой I =

С™~к-

Найдем в этой совокупности множество с наибольшим числом эле­ ментов | Нк | = max | HkI\. Если это множество Нк 0 и | Н*к| ф 1,

то все выходы дешифратора, соответствующие номерам, входящим

в Нк, объединим с помощью одной схемы дизъюнкции. Такое объе­ динение позволяет уменьшить общее число входов на величину (т k) (|Я*| — l). Затем для множеств, использованных при по­

190

строении Hi, найдем множества Ek+i.

такие что Ek+X,

=

EkiH*k,

а для остальных множеств Ек+\. / примем,

что Ек-~\. /

=

Если

же Н*к= 0

или | # &| = 1,

то примем

для

всех множеств

ЧТО £ * + ! . / =

£ jy .

что для значений k < [m/2 ] в тех слу­

В заключение отметим,

чаях, когда имеется несколько множеств

с одинаковым числом

элементов, целесообразно использовать все пересечения, образо­ ванные различными множествами Ekn- поскольку реализация каж­ дого пересечения Н,{! приводит к уменьшению числа входов.

Рис. 8-4. Схема ЦФП для функций, приведенных в табл. 8-3, построенная по ДСНФ с предварительным объединением выходов дешифратора

Достоинством приведенного алгоритма является то, что он легко может быть реализован в виде программы для ЦВМ. Можно ожи­ дать, что такая программа позволит строить схемы с десятью-пят­ надцатью входами.

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

Рассмотрим еще один метод построения шифратора. Разобьем таблицу значений функций заданной системы на полосы, по k столб­ цов в каждой полосе. При этом число полос I — ]tnlk[, где ]а[ обозначает ближайшее целое, не меньшее а. В каждой полосе

191

может быть 2te различных строк. Для каждой полосы с номером i построим вспомогательных функций сог/- (х), таких что если в рас­ сматриваемой полосе набор а, записанный в строке, соответствую­

щей вектору значений а, а = р (/), то (а) = 1. В результате такого построения получим преобразованную таблицу функций

заданной системы, которая определяет I X различных функций <£>(j {x). Заметим, что при этом функции с нулевыми индексами (ого (х) не требуют схемной реализации, поскольку они определяют нулевые значения заданной функции ср;- (х).

Схема преобразователя, соответствующего преобразованной таб­ лице, изображена на рис. 8-3, б. В этой схеме блок Б1 состоит из

схем дизъюнкций,

реализующих функции сог/-

(х),

а блок Б2 реали­

 

 

 

 

 

 

зует объединение этих функций

и выра­

 

 

 

Таблица 8-3

батывает выходные функции <р(- (х). Блок

Система

переключательных

Б2 состоит из т схем дизъюнкций с 2к~1

 

 

функций

 

 

входами.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В заключение отметим, что слож­

 

X

 

 

Z

 

ность

схемы

при

построении

вторым

 

 

 

 

способом зависит от того, какие столбцы

 

 

 

 

 

 

 

 

 

 

 

 

таблицы

объединяются в полосы. Схемы

0 0 001

001

11 011

101

шифраторов,

построенные

этим

спосо­

0 0 0 1 0

101

10

101

0 0 0

бом,

как

правило,

оказываются не­

0 0 1 0 0

101

01

111

111

сколько

сложнее

схем,

 

построенных

0 0

111

0 1 0

01

100 0 0 0

 

01

0 1 0

п о

01

001

0 0 0

с использованием объединения

выходов

01

111

011

0 0

П О 111

дешифратора.

 

 

 

 

 

 

 

10

101

100

0 0

101 00 1

В табл. 8-3 приведена

 

система пере­

11

101

п о

0 0 0 1 1

111

 

ключательных функций,

определяющая

1 1 1 1 1 1 1 1

0 0 0 1 1

0 1 0

 

 

 

 

 

 

двоичные

коды

угловых

коэффициентов

 

 

 

 

 

 

ломаной

линии,

аппроксимирующей

 

 

 

 

 

 

функцию

sin

х,

заданную

на . отрезке,

Ю, л/2]. Логическая схема, реализующая эту систему функций и построенная из элементов системы «Логика-2» путем объединения выходов дешифратора, изображена на рис. 8-4. Для построения такой схемы требуется 14 модулей.

В табл. 8-4 приведены вспомогательные функции со(7- (х), полу­ ченные при разбиении заданной табл. 8-3 на полосы. Для построе­ ния схемы по этой таблице требуется 15 модулей системы «Логика-2».

Схемы преобразователей кодов из логических элементов полу­ чаются достаточно сложными. Количество логических элементов, необходимое для их построения, значительно увеличивается с уве­ личением числа разрядов преобразуемого кода. Основным преиму­ ществом ^преобразователей подобного типа является их высокое быстродействие. Действительно, время получения выходного кода определяется только временем срабатывания логических элементов, образующих схему. Время срабатывания элемента системы «Ло-

192

Таблица 8-4

Преобразованная таблица системы переключательных функций

X

 

*3

*3

>3

,3

*3

$3

iS

iS

iS

jS

*3

$s

 

 

3

3

3

3

3

3

3

3

3

3

3

3

00 001 001

 

 

 

 

1

 

 

1

 

 

1

 

00010 101

 

 

 

1

 

1

 

 

 

 

 

 

оо;юо Ю1

 

 

1

 

 

 

 

1

 

 

 

1

00 111 010

 

 

1

 

 

 

 

 

 

 

 

 

01 010 по

 

1

 

 

 

1

 

 

 

 

 

 

01 111 011

1

 

 

 

 

 

1

 

 

 

 

1

10 101 100

1

 

 

 

 

1

 

 

1

 

 

 

11 101 по

 

 

 

 

 

 

 

1

 

 

 

1

11 111

111

 

 

 

 

 

 

 

1

 

1

 

 

гика-2» согласно

техническим

условиям

не

должно

превышать,

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

8-3. Многотактные цифровые функциональные преобразователи

Если по условиям работы необходимо выполнить обработку ве­ личин, представленных в цифровой форме в виде 10— 15-разрядных двоичных кодов, и время, отведенное на обработку, исчисляется не единицами, а десятками микросекунд, то использование одно­ тактных ЦФП, построенных из логических элементов, является нецелесообразным из-за их сложности. В этом случае имеет смысл использовать функциональные преобразователи, работающие в те­ чение нескольких тактов и реализующие простейшие арифметиче­ ские операции.

Заметим, что любая универсальная ЦВМ, имеющая программу вычисления заданной функции, может рассматриваться как функ­ циональный преобразователь. Однако применение универсального вычислителя для получения только значений заданной функции

7 Заказ 1218

193

является также нецелесообразным, поскольку приводит к нерацио­ нальному использованию оборудования.

Для перечисления условий наиболее естественным решением является использование специализированных вычислителей, вы­ рабатывающих значения заданной зависимости. Такие вычисли­ тели обычно строятся на основе итерационных способов вычисле­ ния функций. Интересной разновидностью итерационных способов вычисления являются методы вычисления функций «цифра за циф­ рой», описанные в работах [4, 83, 85]. Особенностью этих методов является то, что они позволяют выполнять вычисления с использо­ ванием только операций сложения и сдвига. Необходимо отметить, однако, что алгоритмы вычисления способом «цифра за цифрой» известны только для нескольких функций.

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

Как было показано в пятой главе, аналитическое выражение аппроксимирующей ломаной линии имеет вид:

т

Q W = 2 ф/ Й (ai + bjx),

(8-3)

/=1

 

где ф;- (х) — переключательная' функция, равная единице для всех значений кода х, принадлежащих участку с номером /; ajt bj —• на­ чальное значение и угловой коэффициент на участке аппроксимации с номером /; т — число участков аппроксимации.

Из последнего выражения следует, что устройство, осуществляю­ щее КЛА заданной функции, должно выполнять операцию умно­ жения. Прежде чем перейти к построению схемы, рассмотрим по­ следовательность вычисления линейной функции для значений кода, принадлежащих участку с номером /:

Q(x) = a.j+bjX.

Полагая, что коэффициенты as и bj хранятся в цифровой форме

в виде «-разрядных двоичных кодов,

заменим

коэффициент bj его

двоичным представлением:

 

 

 

Q (х) =

й /+ (&i; 2

1+ &2/ 2

2 + . . . -f- bnj 2 п)х.

Раскрывая в последнем выражении скобки, получаем

Q(x) =

bij2

х-р^г/2

х

bnj 2 х,

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

194

тель 2~l . При этом сложение необходимо выполнять только для коэффициентов Ьц =f=0.

Схемная реализация такой процедуры оказывается достаточно простой, если для умножения переменной х на 2~1 использовать сдвиг вправо кода х, записанного в «-разрядный регистр. При этом необходимо учитывать, что операция сдвига отличается от опера­

ции

умножения на 2~‘ тем, что в результате сдвига теряются млад­

шие

разряды переменной х. Последнее обстоятельство приводит

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

Наибольшая ошибка етах возникает при перемножении двух кодов, состоящих из одних единиц. Значение этой ошибки может быть найдено путем суммирования теряемых при каждом сдвиге младших разрядов кода:

 

п

i

.

, ..

 

Р V

V

9” ^ - ^

*

b m a x —

2 j

 

*

 

 

i=l i=l

 

 

 

Находя общий вид суммы по /, имеем

 

втах =

2

- " |

( 1 - 2 !')>

£=i

откуда окончательно находим ет ах = 2-" ( л - 1 + 2-") « ( л - 1) 2-".

Для уменьшения этой погрешности обычно увеличивают число разрядов сдвигающего регистра и сумматора, используемых при умножении. Если считать, что число используемых дополнитель­ ных разрядов равно q, то наибольшая погрешность

п — Q i

В ш а х - 2 2 2 - " - ^ . <=1 /=1

Последовательно вычисляя значения первой и второй сумм, имеем

бтах = 2 - (п+<?) (я —<7— 1 -f 2~{n~q)) » 2 - (n+rt( n - < 7 - l) . (8-4)

Последнее выражение может быть использовано для определе­ ния необходимого количества дополнительных разрядов q. Допу­ стим, что наибольшая погрешность не должна превышать половины

младшего разряда преобразуемого кода: 8тах-< 2 -("+1). Используя формулу (8-4), имеем

2-(л+1)> 2 ~{п+ч) (л— 7— 1),

откуда получаем соотношение

которое позволяет определить необходимое количество дополни­ тельных разрядов q.

7*

195

Например, из этого соотношения следует, что для п — 16 не­ обходимо иметь пять дополнительных разрядов.

Число дополнительных разрядов, как показано в работе 116], можно существенно сократить, выполняя специальное округление результата при каждом сложении.

Рис. 8-5. Схема многократного ЦФП, осуществляющего КЛА за­ данной функции

Описанный способ выполнения операции умножения исполь­ зуется в схеме кусочно-линейного аппроксиматора, приведенного на рис. 8-5. Схема состоит: из регистра Рг, предназначенного для

хранения кода аргумента х, дешифратора Дш, который служит для определения номера участка, шифратора Ш1, на выходе которого вырабатывается двоичный код коэффициента ц, шифратора Ш2, вырабатывающего код углового коэффициента Ь{, сдвигающего

196

регистра СРг1, используемого при умножении, сдвигающего ре­ гистра СРг2, который реализует программу умножения, блоков схем И БСК и блока схем ИЛИ БСД, используемых для передачи кодов.

Последовательность работы схемы можно представить себе сле­ дующим образом. Пусть в начальном состоянии в сумматоре См записан нуль, код аргумента находится в регистре Рг и все триггеры сдвигающего регистра СРг2 за исключением крайнего левого триг­ гера находятся в нулевых состояниях, а крайний левый триггер —

всостоянии, соответствующем единице. Работа схемы начинается

вмомент прихода сигнала хг, который переводит управляющий триг­ гер Т в единичное состояние, осуществляет передачу кода аргумента

хчерез блок схем И БСКЗ в регистр СРг1 и передачу выходного кода шифратора Ш1, соответствующего коэффициенту а,/, через блок схем И БСК1 и блок схем ИЛИ БСД в сумматор См. Выход­ ной сигнал триггера Т разрешает прохождение периодически по­ вторяющихся сигналов т 2, т3, сдвинутых во времени относительно друг друга. Сигнал т 2 осуществляет опрос значения цифры Ьц уг­

лового коэффициента, который вырабатывается шифратором Ш2. Если Ьц = 1, то сигнал т 2 осуществляет передачу сдвинутого кода

аргумента х2~1 в сумматор. Если же Ьц = 0, то сигнал т 3 через схему конъюнкции не проходит и передача в сумматор не выпол­ няется. Сигнал т3 приходит с некоторой задержкой по отношению к сигналу т 2. Этот сигнал осуществляет сдвиг кода в регистре СРг1,

вырабатывая произведение х-2~ (‘+1), и сдвиг кода на один разряд вправо в регистре СРг2, подготавливая тем самым опрос следую­ щей цифры углового коэффициента bi+i.j. Последовательность сложений и сдвигов продолжается до тех пор, пока (п + 1)-й триг­ гер регистра СРг2 не установится в единичное состояние. Выходной сигнал этого триггера вызывает сброс управляющего триггера Т, который в свою очередь запрещает передачу сигналов т 2, т3 на входы соответствующих блоков схемы. Из описания работы схемы сле­

дует, что искомое значение функции Q (х) получается в сумматоре См в п-м такте.

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

197

8-4. Цифровые функциональные генераторы

Цифровые функциональные генераторы (ЦФГ) применяются в комбинированных вычислительных устройствах, в системах уп­ равления технологическими процессами и системах телеуправле­ ния, а также могут быть использованы для построения систем кон­ троля и диагностики. Практические схемы ЦФГ и их применения описаны в работах [53, 77, 79, 82]. В настоящей главе в отличие от этих работ ЦФГ рассматривается как конечный автомат и произво­ дится анализ структурных схем, получаемых из этой модели.

ЦФГ можно представить как синхронный автомат с одним вхо­ дом и выходом, перерабатывающий слова в двоичном алфавите. На вход генератора обычно подается последовательность синхро­ низирующих импульсов т, соответствующая последовательности

Рис. 8-6. Диаграмма переходов (а) и структурная схема ЦФП на основе

счетчика (б)

единиц, а на выходе вырабатывается периодически повторяющаяся последовательность «-разрядных двоичных кодов функции F (X), заданной в точках Х ь Х 2, . . . , Хт. Назовем эту последователь­

ность выходным словом генератора до и условимся, что она состоит из т слогов, причем t-й слог представляет собой «-разрядный дво­ ичный код, соответствующий значению функции F (Xt) в точке Х (. Если по условиям работы соседние в последовательности коды раз­ делены k нулями, то длину слога примем равной п + k. Выходное слово в этом случае должно состоять из I = т (п + k) двоичных

символов. Например, выходное слово до генератора, воспроизводя­ щего восемь значений функции, приведенной в табл. 8-5, без раз­ делителей между соседними значениями состоит из 24 двоичных символов:

ш = 111 111 111 110110101 100000.

Работа автомата, перерабатывающего последовательность еди­

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

198

Вначале закодируем состояния автомата S 1; S 2, . . , сосед­ ними кодами, таким образом, что S j припишем нулевой код, а со­ стоянию Si — код, получающийся вычитанием единицы из двоич­ ной записи числа i. Тогда диаграмма переходов автомата представ­ ляет собой двоичный счетчик с коэффициентом пересчета /, для по­ строения которого необходимо h — ]log2/[ элементов памяти. Схема ЦФГ для рассматриваемого случая приведена на рис. 8-6, б. Она состоит из счетчика Сч и логической схемы ЛС с двумя выхо­ дами. Выход q устанавливает счетчик в начальное состояние, что соответствует переходу из состояния S t в состояние S x. Сложность

логической схемы зависит в основном от

 

 

Таблица 8-5

вида функции ср (vu

.

. . ,

vh),

которая

 

 

для каждого

состояния

S t определяет

Значения функции

 

значение компонента

выходного

слова

Номер

 

 

 

до,-. Увеличение длины выходного слова

«I

z2

z3

точки i

за счет введения разделителей между

 

 

 

 

слогами, как правило, приводит в такой

 

 

 

 

схеме к увеличению

числа переменных,

0

1

1

1

от которых

зависит

 

функция

выхода.

i

1

1

1

Для того чтобы избежать этого

уве­

2

1

1

1

личения, рассмотрим

 

второй способ ко­

3

1

1

0

 

4

1

1

0

дирования, заключающийся в том, что

5

1

0

1

каждому состоянию

приписывается код

6

1

0

0

состояний

из

двух

 

частей.

Первая

7

0

0

0

часть кода

является

 

двоичным номером

 

 

 

 

слога в выходном слове. Для

представ­

 

 

 

 

ления этого номера необходимо иметь hx = ]log2m [ двоичных раз­ рядов. Вторая часть кода представляет собой «-разрядное двоичное число, в котором всегда п—1 нуль и одна единица. Номер разряда, в котором находится единица, определяет номер компонента в слоге.

Структурная схема ЦФГ, полученная при таком способе коди­ рования, показана на рис. 8-7. Схема содержит счетчик Сч и регистр со сдвигом вправо СРг. Первый вход регистра служит для записи единицы в первый разряд регистра. Сигнал на этот вход поступает при условии, что последний разряд регистра изменяет свое состоя­ ние с единицы на нуль. Сигнал на втором входе регистра управляет сдвигом кода, записанным в регистре, на один разряд вправо. Та­ кой сдвиг соответствует преобразованию кода i-ro компонента слога в код компонента i + 1. Сигнал на выходе регистра СРг появляется при формировании кода последнего компонента слога. Этот сигнал подается на вход счетчика, состояние которого определяет номер слога. Компоненты выходного слова генератора получаются на вы­ ходе комбинационной части схемы, работа которой описывается переключательной функцией

Д О = V Ф / ( o i , t>2 . • ■ v h)U}.

/=i

199

Соседние файлы в папке книги из ГПНТБ