681.325.53: 37: 004.5
Н.Я.КАКУРИН, Ю.В.ЛОПУХИН, В.В. ВАРЕЦА, С.Н. САРАНЧА, А.Н. МАКАРЕНКО
СХЕМОТЕХНИЧЕСКОЕ ПРОЕКТИРОВАНИЕ НА ЯЗЫКЕ УИБЬ ПРЕОБРАЗОВАТЕЛЕЙ КОДОВ ПО МЕТОДУ ДОСЧЕТА
Рассматривается структура и функционирование многосекционных преобразователей кодов по методу досчета. Обосновывается выбор языка VHDL и рассматривается реализация преобразователя двоичного кода в двоично-двенадцатиричный код по методу досчета .
1. Постановка задачи
Рост быстродействия высокопроизводительных вычислительных систем в настоящее время невозможен без использования быстродействующих методов и средств обработки первичной информации.
Особая группа функционально-ориентированных устройств (ФОУ) применяется в качестве предпроцессоров и постпроцессоров. Предпроцессор ведет обработку информации до основного ( центрального ) процессора, постпроцессор - после.
Известно, что в современных универсальных ЭВМ преобразование чисел выполняется программным способом, что снижает их производительность. Переход на быстродействующие аппаратурные способы преобразования кодов позволяет значительно увеличить быстродействие вычислительной системы и является перспективным.
Достоинством преобразователей кодов по методу досчета (ПК ДСЧ), относящихся к аппаратурным способам преобразования, является схемная простота, малые аппаратурные затраты, низкая стоимость и линейный рост аппаратурных затрат от разрядности входного кода [1-3].
Основными параметрами ПК ДСЧ являются: система счисления на входе и выходе, разрядность входного и выходного кодов, быстродействие, аппаратурные затраты и стоимость. Реализация ПК ДСЧ на БИС или СБИС улучшает их основные параметры.
Быстродействие ПК ДСЧ в дальнейшем будем оценивать не по абсолютным единицам времени (нс, мкс, мс), а по относительным (по количеству тактов преобразования максимального числа).
Характеристика стоимости является вторичной по отношению к параметру аппаратурных затрат и отражает влияние на нее типа применяемых элементов.
Целью настоящей работы являются:
- анализ структурных особенностей и основных характеристик ПК ДСЧ;
- алгоритмизация нахождения структуры ПК ДСЧ с наибольшим быстродействием;
- рассмотрение результатов схемотехнического проектирования на языке УИБЬ многосекционной структуры ПК ДСЧ двоичного кода в двоично-двенадцатиричный код.
2. Односекционная и многосекционная схемы ПК ДСЧ
Простейшим преобразователем по методу досчета является односекционная схема, содержащая один входной вычитающий счетчик и один выходной суммирующий.
Недостатком односекционного ПК ДСЧ есть значительное число тактов на преобразование максимального числа.
Пусть система счисления на входе - р; число входных разрядов длительность периода импульсов генератора - ТГ .
Тогда при р=2; п7=20 время преобразования определяется формулой:
(1)
г = тГ • N = тГ
пр Г макс Г
-6 20
(рП2 - 1),
при ТГ = 1 • 10-°с.; гпр = 1 -10-6(220 -1) = 1 -10-6 •1,048575 • 106
1,05с.
Для ускорения процесса преобразования чисел можно использовать различные приемы, в частности разбиение входных и выходных счетчиков на две [1] или на большее число секций [2-4].
Перевод чисел в многосекционных ПК ДСЧ происходит путем последовательно-возвратного обнуления каждого входного счетчика. При этом способе обнуление входного счетчика второй секции начинается только после полного обнуления входного счетчика первой секции, обнуление третьей секции возможно после полного обнуления предыдущих входных секций, т. е. второй и первой.
Структура многосекционного ПК ДСЧ показана на рис. 1.
пм
СЕКЦИЯ 1
I
сотая 1
СН-1)
+ 1 СТОКЕ + 1
.ТБЬИ 1
6
Вес Ц числам
Л"
пвх ЗН
БС "3"
СО 8,
N-1
СТЕК
3
N-1
У"
ОСТ' «N■1
СЕКЦКЯ 1
~Г
Г-ТВЫХ
г.
Сй
ВС "Я"
х^д
сеыэн 1, ■
СГ>
^ '7
БС 30"
43
Рис. 1. Структура многосекционного ПК ДСЧ
Преобразователь содержит N преобразующих секций I; каждая преобразующая секция I - декаду (при К =10) двоично-десятичного счетчика 2, двоичный счетчик 3, дешифратор нуля 4, элемент И 5. Все секции I, кроме младшей, содержат элемент ИЛИ 6; все секции,
27
кроме старшей, - элемент НЕ 7. Все преобразующие секции, кроме двух старших, содержат шифраторы 8.
Преобразователь содержит генератор импульсов 9 и вход пуска 10. Обозначим коэффициент пересчета двоичных счетчков 3; через МД1 = 1,К) . Устройство работает следующим образом. В исходном состоянии в двоичных счетчиках 3; (1 = 1, К) записаны числа а1,а2,...,ап преобразуемого двоичного кода, а декады двоично-К-ичных счетчиков 2^1 = 1,К) установлены в нуль. При этом на выходе дешифратора нуля 4; появляется запрещающий потенциал, если в двоичном счетчике 31 записано какое-либо число, отличное от нуля. По сигналу "Пуск" импульсы с выхода генератора 9 поступают через элемент И 51 на счетный вход вычитания счетчика 31 и на счетный вход сложения счетчика 21 и производят вычитание единиц из счетчика 31 и прибавление единиц в счетчик 21 (по единице на каждый импульс) до тех пор, пока в счетчике 31 не установятся нули. Таким образом, число а1 будет перенесено в счетчик 21. Если а1 > 10, то возникает единица переноса, которая поступает через элемент ИЛИ 62 на счетный вход счетчика 22 , а в счетчике 21 останется число т1 = а1 -10.
Если а1 < 10, то в счетчике 21 остается число т1 = а1 .
Преобразование называется возвратно-поступательным, так как прохождение одного импульса на обнуление второй секции приводит к записи корректирующей поправки К21 в первый входной счетчик. Затем вновь начинается обнуление первого входного счетчика. При этом первый импульс с выхода генератора 9, пройдя через элемент И 5; (1 = 2, К) и шифратор 8; (1 = 1, N - 2), при р=2 и К=10 устанавливает число , представленное формулой:
1=1-1
1=1-1 X п1
= ^,1-1^,1-2 •••*1,1 = ПМ1 - к1-1 =2 1=1 -101-1 (2)
1=1
( п 1 - количество двоичных разрядов в двоичном счетчике секции 1 ) в двоичные счетчики 31(1 = 1,1 -1) соответствующих предыдущих секций. После вычитания последней единицы из счетчика 3К и последнего числа из счетчиков 31(1 = 1,1 -1) на выходе дешифратора нуля 4К появляется сигнал, останавливающий работу генератора импульсов 9. На этом преобразование кода заканчивается.
3. Метод определения основных параметров многосекционного ПК ДСЧ
Разбиение ПК по методу досчета на секции выполняется таким образом, чтобы сохранилась счетчиковая структура выходных счетчиков (чтобы перенос был строго равен 1).
При р=2 и К ^ 10 требуется выполнение общего условия:
2п1 = (1а)к;2п1+п2 = (1аЬ)К;2П1+П2+П3 = (1аЬс)К . (3)
Это возможно в случае выполнения неравенства:
pL > К1-1,(1=2К), (4)
где 1 - номер секции; N - максимальное число секций; L - наименьшее целое число, при котором выполняется неравенство (4). При этом L не должно превышать заданное число разрядов nZ.
Как только Ь > nZ, процесс разделения на секции прекращается. В результате получим:
1=К
Ъ = X п1, (5)
1
1=1
здесь п1 - число входных р-ичных разрядов в секции 1. Если обозначить М1 = рп1 , то корректирующие поправки из 1-ой секции 1-1,1-2,....., 1 определяются по формуле:
1=1-1
1=1-1 X п1
= Км-1Кц-2 • = ПМ1 - К1-1 = р 1=1 - к1-1 . (6)
1=1
Например, при р=2; К=10; п7=10 имеем 24 > 101 и п1 = 4 ; Я2 = Я21 = 16 - 10 = 6. Далее 27 > 102 ; п2 = 7 - 4 = 3; Я3 = 128 -100 = 2810 . Для нахождения поправок Яз2;Яз1 число 28ш переводится в двоичную систему счисления 28ш = 0011 11002 и разделяется на секции по числу входных разрядов и переводится вновь в десятичную
систему Кз2 = 1^31 = 12.
10 3
На следующем шаге имеем 2 > 10 ;п3=3.
Поправки Я4 = 210 -1000 = 1024-1000 = 2410 = 0000011100 и Я43 =0;Я42 =1;Я41 =8. На последнем шаге разбиения на секции, если Ь > п2, число р-ичных разрядов секции пм находят по формуле:
пм = п2-X п1(1 = 1,К -1). (7)
Преобразование числа в многосекционной схеме ПК ДСЧ аналогично счету импульсов в неоднородной позиционной системе счета с весами (^1 (1 = 1,К) .
Весовые коэффициенты секций (1 определяют по формуле:
1-1
(1 =1+X ку(г(1=т, (8)
]=1
где Rlj - корректирующая поправка из секции 1 в секцию _).
При числе разрядов каждой входной секции п 1 и р=2 максимальное число тактов преобразования ПК ДСЧ рассчитывается по формуле:
N
Тм= X (2п1 -1) • (1 (9)
1=1
Величины поправок определяют системой счисления р на входе, К на выходе, числом разрядов п7 на входе и числом разрядов п1 каждой секции.
При разбиении ПК ДСЧ на секции указывают число выходных Ш1 и входных п1 разрядов каждой секции в виде:
......,п2,п1 . (10)
Многосекционное разбиение называют фундаментальным (основным), если в каждой секции находится по одному выходному разряду. Фундаментальному разбиению(ФР) соответствует минимальное число тактов.
Все другие разбиения ПК ДСЧ на секции можно получить из фундаментального. ФР можно отобразить в виде:
1,1,-•••,1,1
^"N-1, ••••,п2,п1 (11)
4. Алгоритм нахождения фундаментального разбиения ПК ДСЧ
Анализ рассмотренной выше методики позволяет сформулировать алгоритм нахождения ФР в виде:
1. Находится разрядность каждой секции и число секций всего ПК по заданным основаниям входной и выходной систем счисления и разрядности на входе.
2. Строится матрица корректирующих поправок Rij (1 = 2, N) = 1, N -1) .
3. Вычисляются весовые коэффициенты Q. (1 = 1,К) секций.
4. Определяется максимальное число тактов преобразования фундаментального разбиения Тк .
В соответствии с приведенным выше алгоритмом для р=2; ^=21; К=12 найдем, что 24 > 121 , следовательно п1 = 4 . Далее 24+4 > 122 ; п2 = 4 ; 24+4+3 > 123 ; п3 = 3 ;
24+4+3+4 > 124 ; п4 =4; 24+4+3+4+3 > 125; п5 = 3; 24 Таким образом, ФР в данном случае имеет вид:
1,1,1,1,1,1, 3,3,4,3,4,4.
Корректирующие поправки К находят способом вычисления общей поправки К и разделение ее на поправки по секциям ] = 1,1 — 1. Общая поправка К; вычисляется по формуле (6). Затем поправку К; переводят во входную систему счисления р и представляют
п1 +п2 +... + п; разрядными числами. Полученное число разбивается на группы по п. разрядов в каждой. Каждая группа двоичных разрядов представляет собой чистую поправку
К , которая для удобства вычислений переводится в десятичную систему счисления. Поправочные коэффициенты в общем виде записываются по матрице:
4
4+4+3+4+3
>4+4+3+4+3+3 > 126; п6 = 3.
К2 0 0 0 0 К21
К3 0 0 0 К32 К31
К4 0 0 ' К43 К42 К41
Ки = :
1 2 КК,2
Для рассматриваемого примера с р=2; К=12; N=6 получим
(12)
К = 24 —121 = 410 =0100, ;
Я21 =01002 =410 Я3 =2
4+4
10
—122 = 11210 = 011100002 ;
К32 710 ;К31 010;К4=2
>4+4+3 —123 = 32010 = 001010000002 ; Я43 =110 ;
К42 410 ; К41 010 ;
К = 24+4+3+4 —124 = 1203210 = 0101111000000002 ; Я54 = 510 ; Я53 = 710 ;
К52 = 010 ; К51 = 010 ;
К6 = 24+4+3+4+3 —125 = 1331210 =0000110100000000002 ;
К65 = 010 ;К64 = 610 ;К63 = 410 ; К62 = 010 ; К61 = 010 . В итоге получим следующую матрицу корректирующих поправок:
2 3
К = 4
5
6
4
7 0 1 4 0 5700 06400
(13)
и следующие веса секций Q1 = 1^2 = 5^3 = 36^4 = 57^5 = 538;Q6 = 487 . Максимальное число тактов преобразования ПК ДСЧ составит 8372 такта. Все основные параметры ПК ДСЧ можно быстро определить с помощью программного средства «РКЕ0БЯЛ70УЛТЕЬ 2-К », реализованного на языке программирования С# [4]. Результаты расчета для р=2; К=12 ; пе =21 приведены на рис.2. 30
Рис.2. Пример расчета параметров 6-секционного ПК ДСЧ 5 . Назначение и возможности VHDL-модели ПК ДСЧ
Суть данной работы заключается в создании универсальной модели ПК ДСЧ, которая могла бы быть описана на языке VHDL.
Актуальность проектирования состоит в подготовке формализованного задания для проектирования ПК на ПЛИС с созданием модели на языке VHDL.
VHDL - это мощный язык, который позволяет описывать поведение цифровых схем, а также проводить иерархическое функционально-структурное описание больших интегральных систем и в то же время имеет все признаки языка программирования высокого уровня - позволяет создавать свои типы данных, имеет широкий набор арифметических и логических операций .
Задачей системы синтеза на данном этапе является эффективное распределение RTL-схемы в целях создания нового списка соединений с минимальным количеством использованных схемных компонентов. Каждый компонент нового списка будет соответствовать физическому аппаратному блоку в используемой микросхеме FPGA (элементы конфигурируемых логических блоков, логика ускоренного переноса).
Иерархические проекты синтезируются в восходящем режиме, когда компоненты нижнего уровня синтезируются до компонентов верхнего уровня.
Модель устройства, разработанная на языке описания аппаратуры VHDL, должна быть адаптирована для синтеза и реализации на кристалле FPGA фирмы XILINX.
Задача выбора аппаратной платформы чрезвычайно важна для проектировщика. Правильный выбор позволит:
- снизить материальные затраты при реализации устройства;
- добиться оптимального функционирования и быстродействия.
Согласно техническому заданию, модель ПК должна быть адаптирована для синтеза и реализации на FPGA фирмы Xilinx. При выборе серии ПЛИС основное внимание уделяется соотношению ее стоимости и производительности. Также необходимо учитывать площадь кристалла, которая будет занята синтезированным устройством.
Программируемые пользователем вентильные матрицы (Field Programmable Gate Arrays - FPGA) впервые были разработаны фирмой Xilinx в 1985 г. Настройка FPGA на заданное функционирование выполняется каждый раз перед началом ее работы. Необходимая для этого программа настройки предварительно записывается в ПЗУ (ОЗУ). Сразу после включения питания производится загрузка информации из ПЗУ и осуществляется автоматическая инициализация FPGA. Возможно также выполнение настройки FPGA под
управлением микропроцессора или микроконтроллера. FPGA имеет типичную структуру вентильной матрицы.
ПЛИС типа FPGA фирмы Xilinx выполнены по SRAM КМОП технологии. Характеризуются высокой гибкостью структуры и изобилием на кристалле триггеров. При этом логика реализуется посредством матрицы так называемых LUT - таблиц (Look Up Table), а внутренние межсоединения - посредством разветвлённой иерархии металлических линий, коммутируемых специальными быстродействующими транзисторами.
Большая стоимость микросхем FPGA с встроенной RAM по сравнению со стоимостью заказных микросхем ограничивает использование FPGA для изготовления опытных образцов или мелкосерийной продукции. Этот недостаток FPGA устранен фирмой Xilinx выпуском новой серии микросхем FPGA - серий Spartan и Spartan-II. Параметры микросхем семейства FPGA Spartan-II (модель XC2S30) имеют рекордно низкую стоимость в расчете на один вентиль при плотности упаковки до 200 тысяч вентилей. В кристалле имеется четыре блока ОЗУ каждый по 4 КБита, также возможна реализация 16 бит памяти на каждом 4-входовом функциональном генераторе.
Устройства Spartan-II сочетают черты гибкой, регулярной архитектуры, которая охватывает матрицу конфигурируемых логических блоков (CLB), окруженную программируемыми блоками ввода-вывода, связанными между собой иерархией быстрых, многосторонних ресурсов межсоединений.
Устройства Spartan-II имеют более высокую производительность по сравнению с предыдущими семействами FPGA. Проекты могут работать с системной частотой синхронизации до 200 МГц, включая блоки ввода/вывода (Input/Output-I/O). Кроме этого, чипы Spartan-II отличает целый ряд достоинств:
- относительно низкая стоимость кристалла;
- большая размерность чипа (до 200 000 системных вентилей);
- высокое быстродействие.
Программируемая пользователем вентильная матрица Spartan-II охватывает: конфигурируемые логические блоки (configurable logic blocks - CLBs) и блоки ввода - вывода (IOBs). CLB блоки служат для создания функциональных логических элементов, а блоки I/ O создают интерфейс между контактами микросхемы и CLB
Ниже приведен фрагмент текста программы на VHDL-языке для генерации RTL-схемы трехсекционного ПК ДСЧ из двоичной системы счисления в двоично-двенадцатиричную: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; component ie7 is generic(n:natural:=10); port(
clk : in STD_LOGIC;
rst : in STD_LOGIC;
ce_in : in STD_LOGIC;
ce_out : out STD_LOGIC;
q : out STD_LOGIC_VECTOR(3 downto 0)
);
end component; begin
process(clk) is begin
if rising_edge(clk) then
if load='1 ' then reg<=din; elsif clk_en='1' then
if section1/=0 then section1<=section1-1;
elsif section2/=0 then section2<=section2-1; section1<="0100";
elsif section3/=0 then section3<=section3-1; section2<="0111";
section1<="0000"; elsif section4/=0 then section4<=section4-1; section3<="001";
section2<="0100"; section1 <="0000"; —elsif section5/=0 then section5<=section5-1; section4<="0110"; section3<="001"; section2<="111"; section1<="0000"; end if;
end if;
end if; end process; ce_out<=ce_in when cnt=n-1 else '0'; q<=cnt; end architecture ie7;
В целях проверки функционирования ПК ДСЧ 2-12 получена временная диаграмма преобразования числа 298 из двоичной системы в двенадцатиричную (рис.3).
Naine Value ¿ > , ■ 5 , . Ю • I • R I -¿2p .2.5 • , • 3.0 .; „ ","5.5 • , • 4.0 • , • 45 . , . 5.0 • , 55 ■ , M
• dk 1
load 0 ■ft;,;.....;;„;;;.....;;;,„;..........;;;;„;;;;;„;;.....;;;„;;;,;„;;;„;;„„;;;;;.....;;;;„,;;;,;,;;;;;;;;„;,;„;
start 1 : ¿_____________________________________________________________________________________________________________________________________________-
El & dir, 0С20А Дгэ.е
В dcLit ■ гхтхтптитшттшпшппттпштйт^
Рис. 3. Временная диаграмма функционирования трехсекционного ПК ДСЧ
СБИС семейства Spartan-II отличает целый ряд достоинств: относительно низкая стоимость кристалла; большая размерность чипа (до 200 ООО системных вентилей); высокое быстродействие. Схемотехническая реализация трехсекционного ПК ДСЧ 2-12 приведена на рис.4.
Программируемая пользователем вентильная матрица Spartan-II охватывает: конфигурируемые логические блоки (configurable logic blocks - CLBs) и блоки ввода - вывода (IOBs). CLB блоки служат для создания функциональных логических элементов, а блоки I/O создают интерфейс между контактами микросхемы и CLB
Выводы
1. Рассмотрена структура и функционирование многосекционного преобразователя кодов по методу досчета.
2. Предложены методика и алгоритм нахождения фундаментального разбиения ПК ДСЧ, реализованные на языке программирования С# в программном средстве «PREOBRAZOVATEL 2-К», позволяющем автоматизировать этапы системного проектирования и ускорять нахождение основных характеристик многосекционного ПК ДСЧ .
3. Разработана на языке описания аппаратуры VHDL программная модель многосекционного ПК ДСЧ и получена временная диаграмма функционирования трехсекционного ПК ДСЧ двоичного кода в двоично-двенацатиричный код.
Научная новизна исследования состоит в разработке и апробации программной модели многосекционного ПК ДСЧ и реализации этой модели на языке VHDL .
Практическая значимость результатов заключается в возможности автоматизированного синтеза RTL-схем ПК ДСЧ, что позволяет на порядок ускорить их проектирование и реализацию на СБИС.
Список литературы: 1. A.C. 468236 5G06F 5/02. Устройство для преобразования кодов / В.М.Гусятин, Н.В.Алипов, А.П.Руденко // Открытия, изобретения. 1975. №15. С. 108.2. A.C. 1153323 5GÓ6F 5/00. Преобразователь двоичного кода в двоично-К-ичный код /Н.Я.Каку-рин, Ю.К. Кирьяков, В.М. Гусятин // Открытия, изобретения. 1985. №16. С.167.3. Макаренко А.Н. Алгоритмизация разбиений преобразователей кодов // АСУ и приборы автоматики. 1990. Вып. 94. С. 103-109. 4. Какурил Н.Я., ЛопухинЮ.В., Вареца В.В., Катасонов В.В., Мака-
ренко А.Н. Программное средство для анализа характеристик преобразователей кодов по методу досчета // АСУ и приборы автоматики. 2010. Вып. 152. С.41-48.
Поступила в редколлегию 29.08.2011
Какурин Николай Яковлевич, канд. техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: прикладная теория цифровых автоматов, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326. Лопухин Юрий Владимирович, ст. преподаватель кафедры АПВТ ХНУРЭ. Научные интересы: проектирование программного обеспечения, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326. Вареца Виталий Викторович, аспирант кафедры АПВТ ХНУРЭ. Научные интересы: проектирование программного обеспечения, автоматизация проектирования цифровых устройств. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-326. Саранча Сергей Николаевич, канд. техн. наук, доцент кафедры ЭВМ ХНУРЭ. Научные интересы: системы автоматизированного проектирования, моделирование цифровых систем. Адрес: Украина, 61166, Харьков, пр.Ленина, 14, тел. 70-21-354.
Макаренко Анна Николаевна, канд. техн. наук, доцент кафедры информационных технологий Харьковского банковского института. Научные интересы: информационные технологии, анализ и синтез преобразователей код-код. Адрес:. Украина, 61074, Харьков, пр. Победы, 55, тел. 336-05-64.