УДК 681.325.53
Н.Я. КАКУРИН, Ю.В. ЛОПУХИН, А.Н. МАКАРЕНКО, С.Н. КОВАЛЕНКО
СПОСОБ ПОВЫШЕНИЯ БЫСТРОДЕЙСТВИЯ ПРЕОБРАЗОВАТЕЛЕЙ КОДОВ НА СЧЕТЧИКАХ
Предлагается способ повышения быстродействия преобразователей кодов на счетчиках за счет применения параллельной стратегии использования шагов преобразования. Разрабатывается метод расчета числа тактов преобразования и программное обеспечение для его реализации.
1. Постановка задачи
Одношаговый преобразователь кодов (ПК) по методу накопления эквивалентов обладает небольшими аппаратурными затратами, но требует К-тактов на преобразование числа. При более высоких требованиях к быстродействию применяют двухшаговые, трехшаго-вые и другие преобразователи кодов с большим числом различных преобразований шагов.
Для максимального числа тактов преобразования ^др ПК дробных чисел в работах [1,2] была получена система формул
^др=](К-1)/а[+а-1; (1)
^др=](К-1)/Ь[+](Ь-1)/а[+а-1;
К4др=](К-1)/с [+](с-1)/Ь[+] (Ь-1)/а[+а-1, где К — основание системы счисления на входе; а, Ь, с - соответственно второй, третий и четвертый шаги преобразования (первый шаг преобразования равен 1); ^др , ^др , ^др , К4др - максимальное число тактов преобразования соответственно одношагового, двухша-гового, трехшагового и четырехшагового ПК.
В процессе преобразования применяется стратегия последовательного использования шагов преобразования, т.е. показания разрядных счетчиков вначале уменьшаются на величину наибольшего шага. Затем, если во всех разрядах значения цифр оказываются меньше величины наибольшего шага, происходит переход на меньший шаг; затем на последнем этапе преобразования происходит переход на первый шаг, равный 1, и преобразование выполняется до полного обнуления всех разрядных счетчиков.
Увеличение числа различных шагов преобразования целесообразно, если уменьшается максимальное число тактов преобразования. Из всех возможных значений шагов преобразования целесообразно выбирать их по возможности большими и равными степени двойки. В этом случае аппаратурные затраты на построение других узлов ПК, таких как кодовые шифраторы (субтракторы) и дешифраторы нуля, а также дешифраторов превышения будут иметь меньшее значение. Эффект увеличения быстродействия для К=4-12 в двухшаговом ПК значителен и по сравнению с одношаговым составляет 1,33-1,71. При более высоких требованиях быстродействия следует использовать трехшаговый ПК.
2. Структура и функционирование трехшагового ПК
Рассмотрим структуру и функционирование трехшагового преобразователя кодов целых чисел (рис.1) с последовательным использованием шагов преобразования.
ПК содержит группу разрядных счетчиков I, генератор импульсов (блок управления), содержащий прямой П, прямые задержанные П31 и П32 И выходы, первую группу триггеров 3 состояния, вторую группу триггеров 4 состояния, третью группу триггеров 5 состояния, комбинационный двоичный сумматор 6 и регистр 7 результата, образующие в совокупности накапливающий сумматор 8, первую группу элементов И-НЕ 9, вторую и третью группы элементов И 10, И 11, группу дешифраторов нуля 12, первую группу дешифраторов превышения 13, вторую группу дешифраторов превышения 14, группу шифраторов 15, первую группу элементов ИЛИ-НЕ 16, (п-1) - группу элементов ИЛИ 17, первый элемент ИЛИ-НЕ 18, второй элемент ИЛИ-НЕ 19, формирователь эквивалента 20, включающий в свой состав первый 21, второй 22, третий 23 дешифраторы и шифратор 24.
_|> +1 1
— -1 V
ст
Пуск Останов
Рис. 1. Структура трехшагового ПК В состав ФЭ 20 также входит инвертор НЕ 25, группа элементов И 26, группа элементов ИЛИ 27. Первая группа триггеров 3 фиксирует ненулевое значение счетчиков соответствующих разрядов. Вторая группа триггеров состояния 4 фиксирует значение счетчиков соответствующих разрядов, превышающее заданное число и, например 1. Третья группа триггеров состояния 5 фиксирует значение счетчиков соответствующих разрядов, превышающее заданное число а, например 3. Шифраторы 15 реализуют функцию
У =
х - Ь;х > Ь; х - а;а < х < Ь;
х;х < а,
где х - входной код; а - параметр (второй шаг преобразования), в частном случае равный 2; Ь - параметр (третий шаг преобразования), в частном случае равный 4.
Цепи инициирования и сброса на рис.1 не показаны. Так как в конкретном случае п=3; К=12, то диапазон изменения входного кода 0 — (123 — 1). Код состояния триггеров как первой группы 3, так и второй группы 4, а также третьей группы 5 имеет 22 = 4 значения от 00 до 11. В данном ПК двоично-К-ичного кода в двоичный код ФЭ 20, выполненный в виде последовательного соединения первого 21, второго 22 и третьего 23 дешифраторов, реализует функцию
S =
KCi + K2 C 2 ;Ei = E 2 = Д1 = Д 2 = 0; аКД! + аК2 Д2 ;Ei = Е2 = 0иД1 ,Д2 * 0; bKE1 + bK2 E 2; E1 ,E 2 * 0;
где С1С2 - значения разрядов двоичного кода триггеров состояний первой группы 3; Д1Д2 - значения разрядов двоичного кода триггеров состояния второй группы 4; Е1Е2 -значения разрядов двоичного кода триггеров состояния третьей группы 5.
Каждый из Ст (т = 1,2) разрядов кода триггеров 3 первой группы состояний разрядных счетчиков соответствует наличию (1) или отсутствию (0) информации в соответствующем старшем разряде преобразуемого кода, а разряд Дт(т = 1,2) триггеров 4 второй группы состояния разрядных счетчиков равен 1, если соответствующий разряд преобразуемого кода имеет значение х; > а(1 < а < Ь), в противном случае Дт = 0; разряд Ет(т = 1,2) триггеров 5 третьей группы состояния разрядных счетчиков равен 1, если соответствующий разряд преобразуемого кода имеет значение х; > Ь(а < Ь < К — 1), в противном случае Ет = 0 . ФЭ 20 преобразует вначале двоичный кодЕ1 ,Е2 триггеров состояния третьей группы, затем при Е1 = Е2 = 0 и Д1 ,Д2 Ф 0 -двоичный код Д1,Д2 триггеров состояния второй группы, затем при Е1 = Е2 = Д1 = Д2 = 0 и С ,С2 Ф 0 - двоичный кодС1 ,С2 триггеров состояний первой группы и при Е1 = Е2 = Д1 = Д2 = С1 = С2 = 00 выполняет трансляцию (передачу) двоично-К-ичного кода младшего разряда в двоичный код эквивалента на выходе.
Преобразование числа выполняется по принципу последовательного использования шагов преобразования; вначале третий шаг Ь ; затем второй шаг а, наконец, шаг 1. При поступлении импульсов генератора 2 с выхода П информация о состоянии разрядных счетчиков заносится в регистры состояний, ФЭ выдает код эквивалента, соответствующий состояниям регистров 3,4,5; затем из состоянии разрядных счетчиков 1 вычитается значение текущего шага (по заднему фронту 0-1 импульса с выхода 11,31. И, наконец, по заднему фронту 1-0 импульса с выхода ПЗ2 выполняется прибавление эквивалента в накапливающий сумматор 8. Описанная последовательность действий повторяется циклически до обнуления всех старших разрядных счетчиков.
Рассмотрим пример преобразования числа 7926ю из двоично-десятичной системы в двоичную в трехшаговом ПК последовательного типа с набором шагов 1,2,4 (табл. 1).
Таблица 1.Закон функционирования ФЭ
Используемый шаг Номер такта Состояние разрядных счетчиков Коды состояний триггеров Величина эквивалента Значение сумматора
Начало такта Конец такта Третий регистр Второй регистр Первый регистр Начало такта Конец такта
N х4х3х2х1 x4x3x2x1 Е3Е 2 Е1 Д3Д 2Д1 С3С2С1 ФЭ СМ СМ
0 7926 7926 000 000 000 0000 0000 0000
4 1 7926 3526 110 111 111 4400 0000 4400
4 2 3526 3126 010 111 111 400 4400 4800
2 3 3126 1106 000 101 111 2020 4800 6820
1 4 1106 0006 000 000 110 1100 6820 7920
5 0006 0006 000 000 000 6 7920 7926
3. Проектирование формирователей эквивалентов для трехшаговых преобразователей последовательного типа
Методику проектирования ФЭ рассмотрим на примере трехразрядного трехшагового ПК (табл. 2). Шифраторы 15 формируют выходное слово, меньшее на 4 единицы по
отношению к входному слову при х; > 4 (если а=4), меньшее на 2 единицы по отношению к
входному слову при 2 < х; < 4 (если а = 2) и равное входному слову при х; < 2 . ФЭ 20 при п=3 и К=12 реализует функцию
' 12С1 + 144С 2 ;Е1 = Е 2 = Д1 = Д 2 = 0;
S = | 24Д1 + 288Д2;Е1 = Е2 = 0;ДьД2 * 0;
48Е1 + 576Е2;Е1,Е2 * 0.
Преобразование двоичных кодов триггеров состояний первой 3, второй 4 и третьей 5 групп соответствует табл. 2.
Таблица 2. Закон функционирования ФЭ трехшагового ПК
Номер строки Коды состояний триггеров групп Общий вид эквивалента Десятичный эквивалент Двоичный код эквивалента
третьей второй первой
Е 2 Е1 Д 2 Д1 С 2 С1 Б Б10 У10 У9 У8У7У6У5 У4У3У2У1
0 00 00 00 х 0 х 0 Трансляция тетрады х 0
1 00 00 01 К 12 00 0000 1100
2 00 00 10 К 2 144 00 1001 0000
3 00 00 11 К 2 + К 156 00 1001 1100
4 00 01 Х1 аК 24 00 0001 1000
5 00 10 1Х аК 2 288 01 0010 0000
6 00 11 11 аК 2 + аК 312 01 0011 1000
7 01 Х1 Х1 ЬК 48 00 0011 0000
8 10 1Х 1Х ЬК 2 576 10 0100 0000
9 11 11 11 ЬК 2 + ЬК 624 10 0111 0000
ФЭ для ПК последовательного типа реализуем на основе трех последовательно включенных ДТТТ 24, группы из четырех элементов И 26 поступают на соответствующие входы четырех элементов ИЛИ 27, вторые входы которых соединены с выходами четырех младших разрядов шифратора (см.рис. 1).
Функции выходов шифратора 24 в целях сокращения аппаратных затрат реализуют с учетом общих частей по следующим выражениям:
У1 = У2 = 0;У7 = У10 = Е2;У9 = 25 26 = М1;
М2 = ^Ъ~6;Мз = 27|^9;М4 = У8 = ^^ ;
М5 = Уз = 21^з;У4 = М2 иМ5;
У5 = М2 иМ3 иМ4;У6 = М1 иМ3.
В целях минимизации числа корпусов ЛЭ для реализации разрядных функций ФЭ можно использовать ПЛМ типа К556РТ1 с параметрами s, ^ q (16,8,48).
Максимальное количество шагов преобразования числа в трехшаговом ПК последовательного типа определим путем подсчета числа тактов преобразования на всех четырех этапах. Первый этап - это использование шага а, Ь, второй - шага а , третий - шага 1 и четвертый этап - трансляция младшей цифры х 0 .При наличии в одном из старших разрядов хт(т = 2,п) максимального значения цифры хт = К -1 потребуется на первом этапе ](К-1)/Ь[ шагов преобразования, где ] [ означает округление до меньшего целого. Затем, если хотя бы одна из оставшихся старших цифр а < хт < Ь , потребуется еще ](Ь-1)|а[ тактов преобразования на втором этапе. Если после второго этапа останется цифра
59
хт = а — 1, то на третьем этапе потребуется а-1 такт для обнуления разрядного счетчика, хранящего эту цифру.
И на четвертом этапе будет затрачен еще один такт на трансляцию младшей цифры.
Следовательно, N 3 =](К — 1)/Ь[+](Ь — 1)/ а[+а — 1 +1 =](К — 1)/Ь[+](Ь — 1)/а[+а.
4. Повышение быстродействия ПК параллельного типа
Структура трехшагового ПК параллельного типа содержит вентили опроса, каждый из которых управляется через инвертор от триггера соответствующего разряда старшего регистра состояний (рис. 2).
Для трехшагового ПК параллельного типа вначале составляют таблицу закона функционирования ФЭ (табл.3). Затем находят запись разрядных функций шифратора:
У1 = у 2 = 0;У9 = 2б У7 = 210
Рис. 2. Структура трехшагового ПК с параллельным использованием шагов преобразования
Таблица 3. Закон функционирования ФЭ трехшагового ПК параллельного типа
Номер строки Коды состояний триггеров групп Общий вид эквивалента Десятичный эквивалент Двоичный код эквивалента
Третьей Второй Первой
^ Е 2Е1 Д 2 Д1 С 2 С1 S 810 У10У9 У8У7У6У5 У4У3У2У1
0 00 00 00 х 0 х 0 Трансляция тетрады х 0
1 00 00 01 К 12 00 0000 1100
2 00 00 10 К 2 144 00 1001 0000
3 00 00 11 К 2 + К 156 00 1001 1100
4 00 01 01 аК 24 00 0001 1000
5 00 10 11 К 2 + аК 168 00 1010 1000
6 00 10 10 аК 2 288 01 0010 0000
7 00 10 11 аК 2 + К 300 01 0010 1100
8 00 11 11 аК 2 + аК 312 01 0011 1000
9 01 01 01 ЬК 48 00 0011 0000
10 01 01 11 К 2 + ЬК 192 00 1100 0000
11 01 11 11 аК 2 + ЬК 336 01 0101 0000
12 10 10 10 ЬК 2 576 10 0100 0000
13 10 10 11 ЬК 2 + К 588 10 0100 1100
14 10 11 11 ЬК 2 + аК 600 10 0101 1000
15 11 11 11 ЬК 2 + ЬК 624 10 0111 0000
Ф Э для трехшагового ПК с параллельным использованием шагов реализует функции Y4=zl//3//4//5//7//8//13//14; Y10=zl2/^13/^14/^15 ;
Y5=z2 //3//4//8//9 //11 //14//15 ^6=/5//6 //7 //8//9 //15 ; Y1=0; Y2=0;
Y3=z7/z13 ;
Y7=zl0//11 //12//13/^14/^15 ; Y8=z2//3//5//10; Y9=Z6//7//8//11.
Сравнение табл. 3 и 2 показывает, что количество строк в табл. 3 равно 16, а в табл. 2 -10. Особенностью ФЭ для ПК параллельного типа является отказ от принципа последовательного соединения стробируемых дешифраторов (в схеме без параллельного использования шагов) и применение ряда вентилей (схем И), позволяющих выделить определенное подмножество входных наборов (рис.3). Как следует из рис.3 в схеме ФЭ используется один ДШ 2-4 и четыре ДШ 1-2, девять схем И-НЕ и ИЛИ-НЕ. Таким образом, число аппаратурных затрат при параллельном использовании шагов преобразования небольшое (15-20% при увеличении быстродействия на 66,7%).
5. Метод расчета числа тактов преобразования для различных стратегий
Для расчета числа тактов преобразований ПК как с последовательной, так и с параллельной стратегиями использования шагов преобразования можно применить метод моделирования преобразования с помощью таблиц (табл.4, 5), характеризующих состояние разрядных счетчиков в соответствующий такт.
В табл. 4 и 5 приведены примеры преобразований для параллельной стратегии использования шагов преобразования. Из табл.5 следует, что набор шагов 1,2,6 позволяет в два раза
увеличить быстродействие (три такта преобразования вместо шести для набора шагов 1,7,8). Для моделирования всех возможных случаев преобразования исходное число разрядов принимаем равным К (в каждом из разрядов значение цифры равно К-1, К-2,...,1,0). Для определения максимального числа тактов преобразования трехша-гового ПК с последовательным использованием шагов преобразова-
Таблица 4. Пример преобразования
Такт Набор шагов1,7,8 Таблица 5. Пример преобразования
0 98765 43210
1 10054 32100
Такт Набор шагов 1,2,6
2 00043 21000
3 00032 10000 0 98765 43210
4 00001 00000 1 32103 21000
5 00010 00000 2 10001 00000
6 00000 00000 3 00000 00000
ния следует использовать формулы (1) или разработанное авторами программное средство МАТРИЦА.
х0
С1
С2
02— Е1
Е2
1 ОС 0 <
2-4 1 (
2 2 (
У 1 1 '
г2
С2
Е2
ОС 0 <
1 1-2
1 ■
.V 2
С1
ш Д_
Е1
Е2
_с4
А1-21 —
ОС 0
1 1-2
V 3
А1
12-
С2
А2
Е2
_Г1
ОС 0
1-2
1
V 2
А1
А—| 21
Е2 —
С1
А1
зи
Е2
ОС 0 о
1 1-2
1 .1
V 5
А*1-
Е1
Е2
СО
9
10 7
11
12 8
13
14 9
15 10
- 2" ' 2' ■21 .2*
1
1
2'
Рис. 3. Структура формирователя эквивалента ПК параллельного типа Для нахождения оптимального значения шагов Ь и а, при котором число тактов преобразования N 3 трехшагового ПК минимально, используем программу МАТРИЦА. Задав исходное значение основание К, получим матрицу всевозможных значений N'3. Для К=10 получим матрицу:
Я 2 3 4 5 6 7 8
Ь
3 5
4 4 5
5 4 4 5
6 4 4 5 6
7 5 5 5 6 7
8 5 5 5 6 7 8
9 6 5 6 6 7 8 9
Программа МАТРИЦА рассчитывает максимальное число тактов преобразования, но для конкретного заданного исходного числа конкретный результат можно получить только путем моделирования методом таблиц. Сравнительные результаты числа тактов преобразования последовательной и параллельной стратегии приведены в табл.6.
Таблица 6. Значение N и
1 1,а,Ь N3 N3 { 1,а,Ь N3 N3
1 1,2,3 3 5 15 1,4,6 4 5
2 1,2,4 4 5 16 1,4,7 3 5
3 1,2,5 3 4 17 1,4,8 4 5
4 1,2,6 3 4 18 1,4,9 4 6
5 1,2,7 3 4 19 1,5,6 4 6
6 1,2,8 4 5 20 1,5,7 4 6
7 1,2,9 4 6 21 1,5,8 4 6
8 1,3,4 3 4 22 1,5,9 4 6
9 1,3,5 3 4 23 1,6,7 5 7
10 1,3,6 3 4 24 1,6,8 5 7
11 1,3,7 3 5 25 1,6,9 5 7
12 1,3,8 3 5 26 1,7,8 6 8
13 1,3,9 4 5 27 1,7,9 6 8
14 1,4,5 4 5 28 1,8,9 7 9
Выводы
Научная новизна выполненного исследования заключается в следующем:
1. Предложен способ повышения быстродействия преобразователей кодов на базе счетчиков, функционирующих по методу накопления эквивалентов и использующих параллельную стратегию шагов преобразования.
2. Проведена сравнительная оценка последовательной и параллельной стратегии использования шагов преобразования и разработана методика расчета максимального числа тактов преобразования для обеих стратегий.
Практическая значимость исследования состоит в возможности построения более быстродействующих ПК, в методике расчета быстродействия и программном обеспечении для его реализации.
Список литературы: 1. А.С. 1126946 5G06F 5/02. Преобразователь двоично-К-ичного кода в двоичный код /А.Н. Слобожанин // Открытия, изобретения. 1984. № 44. С.250. 2. А.С. 1647908 5НОЗМ 7/12. Преобразователь двоично-К-ичного кода в двоичный код / Н.Я.Какурин, Ю.К. Кирьяков, А.Н. Макаренко // Открытия, изобретения. 1991. № 17. С. 262-263. 3. А.С. 1783618 5G06F 5/02. Преобразователь двоично-К-ичного кода в двоичный код / Н.Я.Какурин, А.Н. Макаренко, Д.Ю. Исхаков, В.А. Толмацкий // Открытия, изобретения. 1984. №44. С.250.
Поступила в редколлегию 04.12.2006 Какурин Николай Яковлевич, канд. техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: прикладная теория цифровых автоматов, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326. Лопухин Юрий Владимирович, ст. преподаватель кафедры АПВТ ХНУРЭ. Научные интересы: проектирование программного обеспечения, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326. Макаренко Анна Николаевна, канд. техн. наук, доцент кафедры высшей математики и информационных технологий Харьковского банковского института. Научные интересы: дискретная математика, анализ и синтез преобразователей код-код. Адрес:. Украина, 61074, Харьков, пр. Победы, 55, тел. 336-05-64.
Коваленко Сергей Николаевич, соискатель кафедры АПВТ ХНУРЭ. Научные интересы: цифровые датчики, устройства преобразования кодов, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326.