Радиотехника и электроника, 2021, T. 66, № 12, стр. 1178-1188
Использование методики ASMD-FSMD при проектировании на программируемых логических интегральных схемах устройств обработки сигналов
В. В. Соловьев *
Белорусская государственная академия связи
220076 Минск, ул. Ф. Скорины, 8/2, Республика Беларусь
* E-mail: valsol@mail.ru
Поступила в редакцию 20.03.2021
После доработки 07.04.2021
Принята к публикации 10.04.2021
Аннотация
Рассмотрена методика ASMD-FSMD проектирования цифровых устройств на основе конечных автоматов с трактом обработки данных (finite state machine with datapath, FSMD), когда функционирование устройства описывается в виде блок-схемы автомата с трактом обработки данных (algorithmic state machine with datapath, ASMD). Приведено сравнение различных методик проектирования цифровых устройств на примерах проектирования синхронных умножителей и процессоров PIC на программируемых логических интегральных схемах (ПЛИС – field programmable gate array, FPGA). Показано, что методика ASMD-FSMD по сравнению с традиционной позволяет в большинстве случаев уменьшить стоимость реализации (для отдельных примеров на 47%) и заметно увеличить быстродействие (для отдельных примеров в 2.96 раза), а также значительно сократить время проектирования (приблизительно в пять–семь раз). Даны рекомендации по использованию методики ASMD-FSMD и указаны возможные направления ее дальнейшего развития.
ВВЕДЕНИЕ
В последнее время наблюдается возрастание сложности систем цифровой обработки сигналов с одновременным ужесточением требований к срокам разработки и повышению надежности проектов. Одним из направлений решения указанной проблемы является внедрение в практику инженерного проектирования новых методик проектирования цифровых устройств.
Традиционно проектируемое цифровое устройство принято представлять в виде операционного устройства (datapath) и устройства управления (control unit), которые обычно проектируются отдельно: операционное устройство – в виде совокупности стандартных функциональных узлов (регистров, шин, мультиплексоров и др.), а устройство управления – в виде конечного автомата (finite state machine – FSM).
В работе [1] предложено объединить вместе операционное и управляющее устройства и представить как конечный автомат с трактом обработки данных (finite state machine with datapath, FSMD). Модель FSMD быстро стала популярной, в [2] приведены варианты FSMD для синхронных и асинхронных проектов. Модель FSMD оказалась очень удобной для проверки эквивалентности двух схем, полученных в результате синтеза или различных проектных преобразований [3, 4]. В работе [5] предложено цифровую систему представлять в виде сети FSMD, которая приводит к реализации аппаратуры, свободной от гонок.
Общая модель FSMD не всегда удобна при проектировании конкретных приложений. Поэтому в ряде работ предложены расширения FSMD: в [6] – для представления архитектуры процессора и ASIC (application-specific integrated circuit); в [7] – для синхронного доступа к памяти; в [8] – для программ обработки массивов. Уменьшение потребляемой мощности путем декомпозиции FSMD рассмотрено в [9], а путем стробирования – в [10]. Сравнение эффективности FSM и FSMD приведено в [11].
Благодаря своей наглядности блок-схемы автоматов (algorithmic state machine, ASM) получили широкое распространение для представления алгоритмов функционирования конечных автоматов. ASM впервые были предложены в [12] как альтернатива графам автоматов. В работе [13] рассмотрена реализация ASM на PROM, FPLA и мультиплексорах, а в [14] предложены методы минимизации числа вершин ASM. В [15] описан инструмент ABELITE синтеза контроллеров, основанных на ASM.
Традиционно ASM используют для представления алгоритма функционирования устройства управления. В [16] предложено использовать ASM как для описания поведения устройства управления, так и для описания регистровых операций, выполняемых в операционном устройстве. Такая ASM получила название блок-схема автомата с трактом обработки данных (algorithmic state machine with datapath, ASMD). Диаграммы ASMD в последнее время все чаще применяют в проектах на FPGA: при реализации промышленных систем управления [17]; для реализации функции asin с помощью алгоритма CORDIC [18]; при аппаратной реализации криптографического алгоритма AES [19]; при проектировании универсального асинхронного приема-передатчика UART [20].
В данной работе исследована основанная на языке Verilog методика ASMD-FSMD при проектировании синхронных умножителей и процессоров PIC на программируемых логических интегральных схемах (ПЛИС – field programmable gate array, FPGA). В методике ASMD-FSMD функционирование устройства представляется в виде схемы ASMD, которая на языке Verilog описывается в виде конечного автомата с трактом обработки данных.
1. ТРАДИЦИОННЫЙ ПОДХОД К ПРОЕКТИРОВАНИЮ ЦИФРОВЫХ УСТРОЙСТВ
Рассмотрим простейший школьный алгоритм умножения, выполняющий арифметическую операцию умножения P = A × B двух двоичных чисел шириной N битов. Вначале P обнуляют. В каждом цикле умножения проверяют значение младшего разряда множителя B[0]. Если B[0] = 1, то к произведению P прибавляется множимое A. Если B[0] = 0, то к произведению P прибавляют ноль или ничего не прибавляют. Затем содержимое множителя B сдвигают на один разряд вправо, а значение произведения P – влево. Алгоритм заканчивается после рассмотрения всех битов множителя B.
На рис. 1 представлена структурная схема синхронного умножителя в виде операционного устройства (Datapath) и устройства управления (FSM). Значения чисел A и B поступают на вход операционного устройства. На выходах операционного устройства формируется произведение P и сигнал done, указывающий на окончание процесса умножения. Кроме того, операционное устройство формирует внутренний сигнал roll, совпадающий с сигналом done. Устройство управления FSM формирует следующие управляющие сигналы: load – для загрузки в регистры операционного устройства значений умножаемых слов A и B; clr – для сброса регистров операционного устройства; ena – для разрешения операции сдвига содержимого сдвиговых регистров.
Схема операционного устройства, реализующего алгоритм умножения, показана на рис. 2. Операционное устройство включает сдвиговый регистр влево ra, сдвиговый регистр вправо rb и регистр rp для хранения слов A, B и P соответственно, шинный мультиплексор 2-1 и сумматор на 2N разрядов, а также счетчик по модулю counter, который формирует сигнал roll.
Функционирование устройства управления синхронного умножителя можно представить в виде автомата типа Мили (рис. 3a) или автомата типа Мура (рис. 3б). Отметим, что конечный автомат типа Мили содержит два состояния: S0 и S1, в то время как автомат типа Мура содержит три состояния: S0, S1 и S2. Детали описания компонентов операционного устройства (см. рис. 2) и конечных автоматов Мили и Мура (см. рис. 3) на языке Verilog при реализации синхронного умножителя в случае традиционного подхода приведены в [21].
2. БЛОК-СХЕМЫ АВТОМАТОВ ASM
Блок-схема автомата (ASM) предназначена для наглядного описания алгоритма функционирования конечного автомата и представляет собой ориентированный связный граф [12], содержащий вершины трех типов:
1) прямоугольники – вершины состояний (state box);
2) ромбы – условные вершины (decision box);
3) овалы – вершины выходов по условию (conditional output box).
Вершина состояния ASM (прямоугольник) определяет состояние автомата. Вблизи вершины состояния может записываться имя состояния (например, S0, START, INITIAL и др.), а также двоичный код состояния. В случае автомата Мура внутри вершины состояния записывают выходные сигналы, принимающие единичное значение в данном состоянии. По умолчанию полагается, что все остальные выходные сигналы в данном состоянии имеют нулевое значение.
В условных вершинах ASM (ромбах) записывают проверяемые условия, условная вершина ASM представляет собой точку ветвления алгоритма. Выходы условной вершины обозначают значениями 0 и 1, которые соответствуют переходам в случае нулевого (ложного) или единичного (истинного) значения результата проверки условия. В качестве условия может выступать входная переменная конечного автомата, логическое выражение, единичный разряд битового вектора и др.
В вершинах выходов по условию (овалах) записывают выходные сигналы автомата Мили, принимающие единичное значение на определенном переходе. В ASM для автоматов Мура отсутствуют вершины выходов по условию (овалы), а в ASM для автоматов Мили в вершинах состояний ничего не записывают.
Главным строительным элементом блок-схемы ASM является блок ASM (ASM block), пример которого показан на рис. 4. Блок ASM описывает поведение автомата в одном состоянии в течение одного такта синхронизации. Поэтому блок ASM включает только одну вершину состояния (прямоугольник) и может иметь несколько условных вершин (ромбов) и вершин выходов по условию (овалов), причем ромбы могут как предшествовать овалам, так и следовать после овалов. Входы и выходы вершин соединяют с помощью дуг. Блок ASM имеет только один вход, который является входом в вершину состояния, и может иметь один или несколько выходов. Внутри блока ASM запрещены обратные связи. Циклы алгоритма и ждущие вершины в ASM реализуют с помощью внешних обратных связей.
Блок-схема ASM представляет собой композицию соединенных между собой блоков ASM. При этом каждый выход любой вершины ASM может быть соединен только с одним входом другой вершины, т.е. ветвление алгоритма возможно только в условных вершинах.
Отметим некоторые характерные особенности, заложенные в природе ASM. Он сохраняет наглядность блок-схем алгоритмов. В ASM явно определяют внутренние состояния автомата с помощью блоков ASM. Переход от одного блока ASM к другому всегда выполняется за один такт синхронизации, т.е. алгоритм функционирования автомата непосредственно привязан к автоматному времени. Благодаря этому по ASM всегда можно проследить, за сколько тактов будет выполнен тот или другой фрагмент алгоритма.
3. МЕТОДИКА ASMD-FSMD
Блок-схема ASM с трактом обработки данных (ASM with datapath, ASMD) представляет собой ASM, в которой в прямоугольниках и овалах можно записывать любые операции над регистрами, которые допустимы в языке Verilog, а в условных вершинах можно проверять любые логические выражения языка Verilog. Схема ASMD, так же как ASM, состоит из блоков. Действия, описанные внутри блока ASMD, выполняются в течение одного такта синхронизации. Реализуемый по ASMD конечный автомат называется конечным автоматом с трактом обработки данных (FSM with datapath, FSMD). Методику ASMD-FSMD представим в виде следующего алгоритма.
Алгоритм. Методика ASMD-FSMD проектирования цифровых устройств.
Шаг 1. Определяют состояния FSMD.
Шаг 2. Для каждого состояния строят блок ASMD.
Шаг 2.1. В условных вершинах ASMD записывают логические функции, значения которых проверяют в данном состоянии.
Шаг 2.2. Для FSMD Мура в вершинах состояний (прямоугольниках) записывают операции, выполняемые с содержимым регистров в данном состоянии.
Шаг 2.3. Для FSMD Мили в вершинах выходов по условию (овалах) записывают операции, выполняемые с содержимым регистров на данном переходе.
Шаг 3. Блоки ASMD соединяют между собой в соответствии с алгоритмом работы устройства. При этом каждый выход блока ASMD может быть соединен только с одним входом данного или другого блока ASMD.
Шаг 4. При необходимости выполняют оптимизацию ASMD.
Шаг 5. Непосредственно по ASMD строят код FSMD на языке Verilog. Переменным ASMD в коде соответствуют регистры или триггеры (для однобитных переменных). Логическим функциям, проверяемым в условных вершинах ASMD, соответствуют логические выражения в операторах if. Действия, выполняемые в блоках ASMD, описывают в виде процедурных блоков begin…end. Операции, выполняемые в прямоугольниках ASMD (для автоматов Мура), описывают вначале блока begin…end, а операции, выполняемые в ромбах (для автоматов Мили), описывают в соответствующих местах операторов if (возможно с использованием операторных скобок begin…end).
Шаг 6. Выполняют реализацию FSMD с помощью соответствующего средства проектирования.
Шаг 7. Конец.
Главным этапом методики ASMD-FSMD является построение ASMD на основе алгоритма функционирования устройства. Представление функционирования цифрового устройства в виде ASMD больше напоминает алгоритмическое описание устройства [21]. Однако в отличие от алгоритмического описания в ASMD явно определены состояния FSMD, которые могут соответствовать состояниям устройства управления. В отличие от традиционного подхода, в ASMD отсутствует строгое разделение на операционное устройство и устройство управления, а также в ASMD явно не определяется структура операционного устройства. Кроме того, представленная методика ASMD-FSMD позволяет реализовывать как автоматы типа Мили, так и автоматы типа Мура, а также совмещенную модель автоматов Мили и Мура (в [16] рассмотрена ASMD только для автоматов типа Мура).
Отметим также, что один и тот же алгоритм функционирования устройства может быть описан различными ASMD, что влияет на быстродействие и стоимость реализации проекта. Для увеличения быстродействия циклы алгоритма следует описывать с минимальным числом состояний, чтобы минимизировать число состояний в пути цикла. Для этого лучше подходят автоматы типа Мили.
На рис. 5 представлена ASMD, которая соответствует FSMD типа Мили для реализации рассматриваемого синхронного умножителя. Особенностью схемы ASMD на рис. 5 является то, что здесь имеются только два блока ASMD: в состоянии S0 выполняется инициализация регистров, а состояние S1 соответствует одному циклу умножения.
Из рисунка видно, что один цикл умножения выполняется за один такт синхронизации, поэтому умножение N-разрядных двоичных чисел по ASMD на рис. 5 осуществляется за n тактов синхронизации, где n = N + 1.
Отметим отличия методики ASMD-FSMD от известных подходов к проектированию цифровых устройств. Методика ASMD-FSMD позволяет:
а) описывать как автоматы типа Мили, так и автоматы типа Мура (в [16] ASMD описывают только автоматы Мура), а также совмещенные модели автоматов типа Мили и Мура;
б) объединять в одной схеме ASMD описание операционного устройства и устройства управления (в [16] ASMD отдельно описывают операционные и управляющие устройства);
в) описывать цифровое устройство на языке Verilog с помощью одного модуля, что значительно сокращает время проектирования и способствует повышению надежности проекта;
г) привлекать к разработке цифровых устройств программистов и математиков-алгоритмистов, которые не знакомы с тонкостями проектирования электронных устройств.
4. ЭКСПЕРИМЕНТАЛЬНЫЕ ИССЛЕДОВАНИЯ
Исследование эффективности методики ASMD-FSMD проводили при реализации на FPGA семейства Cyclone IV E с помощью системы Quartus Prime версии 18.1 известных методов умножения [22]. Были исследованы следующие классические методы умножения:
1) алгоритм a, когда проверяется младший разряд множителя, множитель сдвигается вправо, а множимое – влево (рассмотренный выше школьный алгоритм);
2) алгоритм b, когда проверяется старший разряд множителя, множитель сдвигается влево, а множимое – вправо;
3) алгоритм c, когда проверяется старший разряд множителя, множитель и частные произведения сдвигаются влево;
4) алгоритм d, когда проверяется младший разряд множителя, множитель и частные произведения сдвигаются вправо.
Кроме того, был исследован алгоритм умножения Бута и модифицированный алгоритм умножения Бута (всего шесть методов умножения).
Каждый метод умножения был реализован с помощью традиционного подхода в виде операционного устройства и устройства управления, а также с помощью методики ASMD-FSMD (всего 12 проектов). Проекты исследовали с шириной входных слов 4, 8, 16, 32, 64 и 128 битов (72 примера).
Результаты экспериментальных исследований приведены в табл. 1.
Таблица 1.
Пример | Параметр | |||||
---|---|---|---|---|---|---|
LT | LA | LT/LA | tT | tA | tT/tA | |
mult_a_4 | 36 | 28 | 1.29 | 24.46 | 17.49 | 1.40 |
mult_a_8 | 66 | 49 | 1.35 | 46.96 | 31.15 | 1.51 |
mult_a_16 | 123 | 90 | 1.37 | 80.08 | 84.08 | 0.95 |
mult_a_32 | 236 | 172 | 1.37 | 219.03 | 191.79 | 1.14 |
mult_a_64 | 464 | 335 | 1.38 | 598.42 | 582.23 | 1.03 |
mult_a_128 | 919 | 627 | 1.47 | 4136.21 | 3969.23 | 1.04 |
mult_b_4 | 36 | 26 | 1.38 | 23.42 | 16.39 | 1.43 |
mult_b_8 | 64 | 49 | 1.30 | 50.47 | 47.81 | 1.06 |
mult_b_16 | 121 | 89 | 1.36 | 89.32 | 106.86 | 0.84 |
mult_b_32 | 234 | 170 | 1.38 | 218.65 | 178.43 | 1.23 |
mult_b_64 | 461 | 332 | 1.39 | 603.31 | 580.67 | 1.04 |
mult_b_128 | 913 | 653 | 1.40 | 4093.18 | 3916.21 | 1.05 |
mult_c_4 | 35 | 35 | 1.00 | 40.25 | 20.22 | 1.99 |
mult_c_8 | 60 | 65 | 0.92 | 93.11 | 47.82 | 1.95 |
mult_c_16 | 112 | 138 | 0.81 | 183.55 | 97.72 | 1.88 |
mult_c_32 | 208 | 270 | 0.77 | 452.46 | 238.75 | 1.98 |
mult_c_64 | 405 | 540 | 0.75 | 1267.69 | 639.39 | 1.98 |
mult_c_128 | 793 | 1006 | 0.79 | 8216.11 | 4200.59 | 1.96 |
mult_d_4 | 32 | 29 | 1.10 | 41.77 | 20.67 | 2.02 |
mult_d_8 | 58 | 48 | 1.21 | 82.48 | 36.41 | 2.27 |
mult_d_16 | 98 | 75 | 1.31 | 159.26 | 53.86 | 2.96 |
mult_d_32 | 176 | 141 | 1.25 | 410.87 | 158.33 | 2.59 |
mult_d_64 | 338 | 271 | 1.25 | 940.51 | 355.62 | 2.64 |
mult_d_128 | 663 | 528 | 1.26 | 4851.80 | 2178.69 | 2.23 |
booth_4 | 44 | 38 | 1.16 | 37.11 | 30.37 | 1.22 |
booth_8 | 82 | 69 | 1.19 | 80.73 | 52.54 | 1.54 |
booth_16 | 152 | 125 | 1.21 | 111.02 | 111.21 | 1.00 |
booth_32 | 301 | 238 | 1.26 | 263.55 | 228.73 | 1.15 |
booth_64 | 590 | 464 | 1.27 | 794.75 | 654.96 | 1.21 |
booth_128 | 1168 | 917 | 1.27 | 4474.04 | 4245.59 | 1.05 |
mbooth_4 | 65 | 68 | 0.96 | 25.72 | 18.25 | 1.41 |
mbooth_8 | 122 | 138 | 0.88 | 36.89 | 31.59 | 1.17 |
mbooth_16 | 236 | 278 | 0.85 | 68.81 | 62.48 | 1.10 |
mbooth_32 | 467 | 492 | 0.95 | 150.53 | 124.27 | 1.21 |
mbooth_64 | 925 | 973 | 0.95 | 413.81 | 404.31 | 1.02 |
mbooth_128 | 1842 | 1935 | 0.95 | 2396.53 | 2236.75 | 1.07 |
Примечание: mult_a_N, mult_b_N, mult_c_N и mult_d_N – проекты, реализующие алгоритмы умножения a, b, c и d соответственно; booth_N и mbooth_N – проекты, реализующие алгоритм умножения Бута и модифицированный алгоритм умножения Бута; N – ширина входных слов умножителей в битах; LT и LA – число используемых логических элементов FPGA (стоимость реализации) в случае традиционного подхода и при использовании методики ASMD-FSMD соответственно; tT и tA – время выполнения операции умножения в наносекундах в случае традиционного подхода и при использовании методики ASMD-FSMD; LT/LA и tT/tA – отношения соответствующих параметров.
Анализ табл. 1 показывает, что использование методики ASMD-FSMD для большинства примеров позволяет уменьшить стоимость реализации и увеличить быстродействие. При этом в отдельных случаях стоимость реализации уменьшается в 1.47 раза, т.е. на 47% (пример mult_a_128), а быстродействие увеличивается в 2.96 раза (пример mult_d_16). Эти значения выделены полужирным шрифтом.
Для исследования методики ASMD-FSMD при проектировании более сложных проектов были созданы следующие проекты процессора PIC [21]:
а) PIC_1_cycle_N – однотактовый процессор PIC;
б) PIC_multi_N – многотактовый процессор PIC;
в) PIC_2_cycle_N – двухтактовый процессор PIC;
г) PIC_4_cycle_N – четырехтактовый процессор PIC,
где число N обозначает ширину шины данных в битах.
Каждый проект был реализован с помощью традиционного подхода и с помощью методики ASMD-FSMD (всего восемь проектов). Проекты процессора PIC исследовали при ширине шины данных N, равной 4, 8, 16, 32, 64 и 128 битов (всего 48 примеров). Результаты исследования проектов процессоров PIC приведены в табл. 2.
Таблица 2.
Пример | Параметр | |||||
---|---|---|---|---|---|---|
LT | LA | LT/LA | FT | FA | FA/FT | |
PIC_1_cycle_4 | 1002 | 1047 | 0.96 | 70.67 | 75.60 | 1.07 |
PIC_1_cycle_8 | 1653 | 1712 | 0.97 | 66.80 | 72.45 | 1.08 |
PIC_1_cycle_16 | 2978 | 3012 | 0.99 | 67.85 | 68.02 | 1.00 |
PIC_1_cycle_32 | 5561 | 5645 | 0.99 | 53.58 | 66.86 | 1.25 |
PIC_1_cycle_64 | 10 804 | 10 925 | 0.99 | 52.59 | 56.16 | 1.07 |
PIC_1_cycle_128 | 21 290 | 21 543 | 0.99 | 39.02 | 42.29 | 1.08 |
PIC_multi_cycle_4 | 920 | 1359 | 0.68 | 73.17 | 76.09 | 1.04 |
PIC_multi_cycle_8 | 1585 | 2160 | 0.73 | 70.64 | 74.43 | 1.05 |
PIC_multi_cycle_16 | 2913 | 3502 | 0.83 | 62.79 | 71.41 | 1.14 |
PIC_multi_cycle_32 | 5506 | 6157 | 0.89 | 62.41 | 69.31 | 1.11 |
PIC_multi_cycle_64 | 10 719 | 11 304 | 0.95 | 55.22 | 68.29 | 1.24 |
PIC_multi_cycle_128 | 21 204 | 21 849 | 0.97 | 41.97 | 59.41 | 1.42 |
PIC_2_cycle_4 | 1009 | 1344 | 0.75 | 70.53 | 79.47 | 1.13 |
PIC_2_cycle_8 | 1654 | 2143 | 0.77 | 68.25 | 73.03 | 1.07 |
PIC_2_cycle_16 | 2980 | 3497 | 0.85 | 58.67 | 75.34 | 1.28 |
PIC_2_cycle_32 | 5596 | 6104 | 0.92 | 52.72 | 69.59 | 1.32 |
PIC_2_cycle_64 | 10 792 | 11 300 | 0.96 | 53.26 | 68.61 | 1.29 |
PIC_2_cycle_128 | 21 287 | 21 834 | 0.97 | 41.20 | 59.96 | 1.46 |
PIC_4_cycle_4 | 998 | 1325 | 0.75 | 95.22 | 70.49 | 0.74 |
PIC_4_cycle_8 | 1670 | 2198 | 0.76 | 90.16 | 69.52 | 0.77 |
PIC_4_cycle_16 | 2984 | 3477 | 0.86 | 85.42 | 67.82 | 0.79 |
PIC_4_cycle_32 | 5592 | 6111 | 0.92 | 77.91 | 67.34 | 0.86 |
PIC_4_cycle_64 | 10 829 | 11 260 | 0.96 | 62.70 | 63.71 | 1.02 |
PIC_4_cycle_128 | 21 308 | 21 550 | 0.99 | 55.66 | 55.63 | 1.00 |
Анализ табл. 2 показывает, что при проектировании процессоров PIC методика ASMD-FSMD уступает традиционному подходу по стоимости реализации, однако в большинстве случаев выигрывает по быстродействию, для отдельных примеров в 1.46 раза (проект PIC_2_cycle_128). Это значение выделено полужирным шрифтом.
Среднеарифметические значения отношений LT/LA и tT/tA для каждого метода умножения представлены в табл. 3.
Из табл. 3 следует, что методика ASMD-FSMD позволяет в среднем уменьшить стоимость реализации для большинства методов умножения (исключение составляют методы mult_c и mbooth), а также для всех методов увеличить быстродействие. Особенно заметно увеличение быстродействия для методов mult_c и mult_d (выделено полужирным шрифтом).
Аналогичные средние значения отношений LT/LA и FT/FA для проектов процессоров PIC представлены в табл. 4. Анализ табл. 4 показывает, что использование методики ASMD-FSMD позволяет увеличить быстродействие процессоров PIC в среднем в 1.1 раза (т.е. на 10%), а для двухтактовых процессоров PIC – в 1.26 раза (т.е. на 26%) (выделено полужирным шрифтом). В то же время методика ASMD-FSMD уступает традиционному подходу по стоимости реализации в среднем от 2 до 16%.
Таблица 4.
Метод | Значение | |
---|---|---|
mid(LT/LA) | mid(FA/FT) | |
PIC_1_cycle | 0.98 | 1.09 |
PIC_1_multi | 0.84 | 1.17 |
PIC_2_cycle | 0.87 | 1.26 |
PIC_4_cycle | 0.87 | 0.86 |
mid | 0.89 | 1.10 |
Чтобы оценить время проектирования при традиционном подходе и с использованием методики ASMD-FSMD, все проекты создавались одним разработчиком. Время в минутах, затраченное на разработку каждого проекта, приведено в табл. 5.
Таблица 5.
Метод | Величина | ||
---|---|---|---|
DTT | DTA | DTT/DTA | |
mult_a | 188 | 33 | 5.70 |
mult_b | 176 | 29 | 6.07 |
mult_c | 172 | 28 | 6.14 |
mult_d | 237 | 43 | 5.51 |
booth | 167 | 27 | 6.19 |
mbooth | 195 | 35 | 5.57 |
PIC_1_cycle | 10560 | 1440 | 7.33 |
PIC_1_multi | 6240 | 960 | 6.50 |
PIC_2_cycle | 840 | 120 | 7.00 |
PIC_4_cycle | 980 | 150 | 6.53 |
mid | – | – | 6.35 |
Анализ табл. 5 показывает, что использование методики ASMD-FSMD позволяет значительно (в среднем в 6.25 раза) уменьшить время разработки проектов. Это связано с тем, что в случае применения методики ASMD-FSMD отпадает необходимость в разработке (написании кода и отладке) каждого компонента операционного устройства, самогó операционного устройства, устройства управления, а также главного модуля проекта.
Проведенные экспериментальные исследования позволили сделать следующие выводы:
1) при проектировании цифровых устройств, поведение которых хорошо представляется в виде алгоритма функционирования, методика ASMD-FSMD по стоимости реализации и быстродействию имеет преимущество по сравнению с традиционным подходом;
2) при проектировании сложных функциональных блоков (например, процессоров, цифровых фильтров и др.) традиционный подход и специальные методы проектирования могут иметь преимущество над методикой ASMD-FSMD;
3) во всех случаях методика ASMD-FSMD имеет преимущество над традиционным подходом по времени проектирования.
ЗАКЛЮЧЕНИЕ
На примере проектирования синхронных умножителей и процессоров PIC рассмотрены две технологии проектирования цифровых устройств: традиционный подход и методика ASMD-FSMD.
Методика ASMD-FSMD может использоваться при проектировании цифровых устройств на любой элементной базе (не обязательно FPGA), например, на специализированных интегральных схемах ASIC. В качестве языка проектирования может использоваться любой язык описания аппаратуры (не обязательно Verilog), например, VHDL или SystemVerilog.
Методика ASMD-FSMD требует дальнейшего совершенствования путем:
а) использования особенностей языков проектирования, например, применение в одном блоке ASMD нескольких операторов блокирующего назначения к одному и тому же регистру [22];
б) разработки методов повышения быстродействия ASMD, например, путем уменьшения числа состояний в циклах алгоритма;
в) разработки методов оптимизации ASMD с целью повышения производительности и надежности, а также уменьшения стоимости реализации.
Перспективным направлением также видится использование методики ASMD-FSMD для высокоуровневого проектирования сложных проектов.
Список литературы
Gajski D.D., Dutt N.D., Wu A.C., Lin S.Y. High-Level Synthesis: Introduction to Chip and System Design. Boston: Kluwer, 1992.
Auletta R., Reese B., Traver C. // Proc. Int. Conf. on Computer Design ICCD'93. Cambridge (MA). 3–6 Oct. 1993. N.Y.: IEEE, 1993. P. 178.
Karfa C., Sarkar D., Mandal C. // IEEE Trans. 2010. V. CAD-29. № 3. P. 479.
Hu J., Wang G., Chen G., Wei X. // IEEE Access. 2019. V. 7. P. 183435.
Schaumont P., Shukla S., Verbauwhede I. // Proc. Design Automation & Test in Europe Conf. Verona. 11–14 Jul. 2005. N.Y.: IEEE, 2006. V. 1. P. 6.
Zhu J., Gajski D.D. // Proc. 7th Int. Workshop on Hardware/Software Codesign CODES'99. Rome. 3 Mar. 1999. N.Y.: IEEE, 1999. P. 121.
Kavvadias N., Masselos K. // Proc. Int. Conf. on Application-Specific Systems, Architectures and Processors. Delft. 9–11 Jul. 2012. N.Y.: IEEE, 2012. P. 157.
Banerjee K., Sarkar D., Mandal C. // IEEE Trans. 2014. V. CAD-33. № 12. P. 2015.
Hwang E., Vahid F., Hsu Y.C. // Proc. Int. Conf. on Design, Automation and Test in Europe. Munich. 9–12 Mar. 1999. P. 7.
Abdullah A.Ch., Ooi Ch.Y., Ismail N.Bt., Mohammadd N.B. // Proc. Int. Symp. on Circuits and Systems (ISCAS). Montreal. 22–25 May 2016. N.Y.: IEEE, 2016. P. 1942.
Babakov R., Barkalov A., Titarenko L. // Proc. Int. Conf. on The Experience of Designing and Application of CAD Systems in Microelectronics (CADSM). Lviv. 21–25 Feb. 2017. N.Y.: IEEE, 2017. P. 203.
Clare C.R. Designing logic systems using state machines. N.Y.: McGraw-Hill Book Company, 1973.
Green D.H., Chughtai M.A. // IEE Proc. E-Computers and Digital Techniques. 1986. V. 133. № 4. P. 194.
Baranov S. // Proc. Int. Conf. EUROMICRO. Vasteras. 27–27 Aug. 1998. N.Y.: IEEE, 1998. V. 1. P. 176.
Jenihhin M., Baranov S., Raik J., Tihhomirov V. // Proc. Int. Conf. Latin American Test Workshop (LATW). Quito. 10–13 Apr. 2012. N.Y.: IEEE, P. 1.
Ciletti M.D. Advanced digital design with the Verilog HDL. New Delhi: Prentice Hall of India, 2005.
Martín P., Bueno E., Rodríguez F.J., Sáez V. // Proc. Annual Conf. IEEE Industrial Electronics. Porto. 3–5 Nov. 2009. N.Y.: IEEE. P. 2811.
Saha A., Ghosh A., Kumar K.G. // Proc. Int. Conf. on Advances in Science and Technology. Bangkok. 19–22 Jan. 2017. Bangkok: Elsevier, 2017. P. 138.
Burciu P. // J. Electrical Engineering, Electronics, Control and Computer Science. 2019. V. 5. № 3. P. 1.
Sowmya K.B., Shreyans G., Vishnusai R.T. // Proc. Int. Conf. on Communication and Electronics Systems. Coimbatore. 10–12 Jun. 2020. N.Y.: IEEE. P. 176.
Соловьев В.В. Проектирование функциональных блоков встраиваемых систем на FPGA. М.: Горячая линия–Телеком, 2020.
Соловьев В.В. Язык Verilog в проектировании встраиваемых систем на FPGA. М.: Горячая линия–Телеком, 2020.
Дополнительные материалы отсутствуют.
Инструменты
Радиотехника и электроника