УДК 621.3
ОСОБЕННОСТИ ПРОЕКТИРОВАНИЯ УСТРОЙСТВ ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ В БАЗИСЕ ПЛИС СЕРИИ 5578
А.В. Строгонов, П.С. Городков
Рассматривается структура программируемой логической интегральной схемы (ПЛИС) типа «программируемые пользователем вентильные матрицы» (ППВМ) с логическими блоками на основе адаптивных логических модулей серии 5578, разработанной в рамках импортозамещения зарубежной электронной компонентной базы. По архитектурным решениям новые отечественные ПЛИС занимают промежуточное положение между низкобюджетной серией Altera Cyclone II и высокопроизводительными ПЛИС серии Stratix III. Раскрываются особенности организации локальных и глобальных трассировочных ресурсов, блока цифровой обработки сигналов, режимы работы блока пользовательской памяти. Приводятся примеры проектирования цифровых фильтров с конечно-импульсной характеристикой с использованием САПР Altera Quartus II и вопросы программирования ПЛИС с применением среды разработки конфигурационных данных
Ключевые слова: линия задержки, умножитель, аккумулятор, фильтр, цифровая обработка сигналов
В рамках импортозамещения зарубежной электронной компонентной базы разработана новая серия ПЛИС 5578 по 180 нм КМОП-технологии с шестью слоями металлизации и напряжением питания 1,8 В. Серия представлена двумя типами ПЛИС 5578TC014 и 5578TC024. ПЛИС содержат увеличенную емкость встроенной памяти и ЦОС-блоки (аппаратные умножители), ранее отсутствующие в ПЛИС серии 5576.
ПЛИС 5578TC014 и 5578TC024 не являются прямыми аналогами зарубежных ПЛИС серии Cyclone II (ЕР2С5 и ЕР2С8, выполнены по 90 нм КМОП-технологии) фирмы Altera, а могут быть использованы для их замены. По архитектурным решениям новые отечественные ПЛИС занимают промежуточное положение между
низкобюджетной серией Cyclone II [1] и высокопроизводительными ПЛИС серии Stratix III. ПЛИС серии 5578 так же близки по своим техническим характеристикам к ПЛИС серии Spartan III фирмы Xilinx.
В основе структуры ПЛИС лежат следующие компоненты: матрица памяти, управляющая коммутацией и режимами работы элементов ядра ПЛИС; система локальных (СЛМ) и глобальных межсоединений (СГМ) с блоками коммутации (БК); глобальные сигналы управления; логические блоки (ЛБ), состоящие из 8 адаптивных логических модулей (АЛМ), которые используются для реализации комбинационной логики, счетчиков, сумматоров, конечных автоматов состояний; блоки пользовательской памяти (БПП),
использующиеся для реализации разнообразных функций памяти или сложных логических
Строгонов Андрей Владимирович - ВГТУ, д-р техн. наук, профессор, e-mail: andreistrogonov@mail.ru, тел. 8(473)2437695
Городков Павел Сергеевич - ВГТУ, аспирант, e-mail: gorodkoff@gmail.com, тел. 8(473)2437695
функций; блоки цифровой обработки сигналов (БЦОС или ЦОС-блоки), предназначенные для реализации функций умножения, умножения-накопления и др., используемых при построении цифровых фильтров; модули ввода-вывода (МВВ), осуществляющие передачу сигналов между ядром и периферией ПЛИС; программируемые периферийные блоки ввода-вывода (БВВ).
На рис. 1 показана структурная схема ПЛИС серии 5578. Используются следующие сокращения: СЛМ - система локальных межсоединений; СГМ - система глобальных межсоединений; МПВВ - матрица памяти элементов ввода-вывода; МПЛБ - матрица памяти логического блока встроенной памяти; МПБЦОС - матрица памяти блока цифровой обработки сигналов; БВВ - буфер ввода-вывода; ВВ - элемент ввода-вывода; ЛБ - логический блок; БВП - блок встроенной памяти; БЦОС -блок цифровой обработки сигналов. В ПЛИС серии 5578 используется новая трассировочная структура с блоками памяти и цифровой обработки сигналов, содержащая 7 уровней программируемых межсоединений с длиной сегментируемых межсоединений в 4 кластера и различной шириной трассировочного канала из разнонаправленных пар межсоединений.
На рис. 2 показан фрагмент структуры ПЛИС серии 5578, поясняющий принцип организации многоуровневых межсоединений. Фрагмент состоит из шести кластеров, расположенных в двух рядах соединительных блоков, коммутирующих сигналы с уровня треков (трек - короткое межсоединение в глобальном трассировочном канале) на уровень локальных межсоединений двух соседних кластеров. Между углами кластеров расположены два маршрутизатора. Кластер состоит из восьми АЛМ, имеет 16 выходов, выходящих на четыре внешние стороны кластера. Входы АЛМ расположены внутри
кластера и выходят на локальные межсоединения. Локальные межсоединения входят в кластер со всех сторон с соответствующих коммутаторов и расходятся ко всем входам АЛМ.
Логический блок ПЛИС серии 5578 отличается от ЛБ ПЛИС Altera серии Cyclone II. ЛБ состоит из 8 АЛМ, каждый из которых имеет 8 входов данных и может реализовывать одну произвольную 6-входовую или две произвольные 4-входовые функции.
В ЛБ входят 48 локальных линий, которые могут быть скоммутированы на входы данных АЛМ, а так же быть использованы для управляющих сигналов. В центре ЛБ находятся блоки формирования и коммутации управляющих сигналов. Управляющие сигналы могут быть получены с 6 глобальных выделенных шин или с локальных линий. Кроме того, ЛБ имеет специальные линии register_chain и shared_arithmetic, а также 3 линии распространения переноса (соответственно схеме суммирования с выбором переноса).
Регистр сканирования периферии
[] ; "ff-Û; Q ; "ff-Q [] ; □":Q Q ; "ff-D: Q ; "ff-D; Q ; "ff-D; [] :
[] ; D-O; [] ; П-Щ; Q ; "ff-Q Q ; □■"□; Q
Регистр сканирования периферии
Рис. 1. Структура ПЛИС серии 5578
' cm | слм
| БЦОС
^^ МПБЦОС
Рис. 2. Фрагмент структуры ПЛИС серии 5578, с локальными и глобальными трассировочными ресурсами
Разработанный АЛМ, по своей структуре схож с АЛМ ПЛИС серии Stratix III, обеспечивающий повышение быстродействия ПЛИС и эффективность упаковки проектов пользователя за счёт расширенных режимов работы LUT5, LUT6 и встроенного сумматора для логико-арифметических вычислений. В
ЦОС-блоках ПЛИС серии Cyclone II нет встроенных аппаратных сумматоров, и все арифметические операции выполняются на LUT, работающих в арифметических режимах.
АЛМ состоит из шести 3-входовых LUT, двух выделенных сумматоров и двух триггеров с возможностью синхронного и асинхронного
сброса, синхронной загрузки из нескольких источников, использования обратной связи и обвода триггера.
Блок пользовательской памяти. БПП предназначен для эффективного хранения пользовательских данных, передачи данных между доменами с помощью FIFO, хранения буферов и т. д. БПП поддерживают однопортовый (single-port), простой
двухпортовый (simpe dual-port) и полнофункциональный двухпортовый (true dualport) режимы работы. По своей структуре БПП близок к блоку памяти типа M4K ПЛИС серии Cyclone II.
Основные характеристики блока: 4096 бит памяти на блок (4608 бит включая биты чётности); поддержка различных конфигураций портов; полнофункциональный двухпортовый режим (два независимых порта с возможностью чтения и записи по каждому); сигнал byte enable для маскирования входов при записи; возможность инициализации содержимого памяти при загрузке.
Блок цифровой обработки сигналов. ЦОС-блок используются для эффективной реализации функций, используемых при цифровой обработке сигналов. Структурная схема ЦОС-блока показана на рис. 3. По своей структуре ЦОС-блок ПЛИС серии 5578 близок к ЦОС-блоку ПЛИС Altera Cyclone II, но имеет некоторые архитектурные особенности, например, содержит аппаратный сумматор на выходах умножителя. Состоит из входных и выходных регистров, умножителя с размерностью операндов 18х18.
По классификации фирмы Altera ЦОС-блок ПЛИС серии Cyclone II (DSP Block) называют MAC-Block, т. к. его основной функцией является умножение и накопление.
Умножитель с размерностью операндов 18x18
Рис. 3. Структура ЦОС-блока ПЛИС серии 5578 в режиме совместимости с MAC-блоком ПЛИС Altera Cyclone II
В каждом ЦОС-блоке имеется возможность скоммутировать входные сигналы на входные регистры или напрямую на умножитель. Каждый вход может быть скоммутирован через регистры независимо от других. Также возможно
скоммутировать выходной сигнал на выходные регистры или напрямую на выход.
Для входных и выходных регистров используются следующие управляющие сигналы: тактовый сигнал; сигнал разрешения тактирования; асинхронный сброс. Все входные и выходные регистры в пределах одного ЦОС-блока управляются одним тактовым сигналом, сигналом разрешения тактирования и асинхронным сбросом.
Умножитель поддерживает разрядности 18х18 бит и менее. Для определения знакового представления переменных используются сигналы signa и signb. Если сигнал signa или signb находится в состоянии высокого уровня, то dataa или datab имеют знаковое представление. Если хотя бы одна из переменных знаковая, то результат умножения тоже знаковый.
Маршрут проектирования цифровых устройств в базисе ПЛИС серии 5578.
Процесс проектирования ПЛИС серии 5578 осуществляется в САПР Altera Quartus II версии 9.0 до 13.0 включительно с поддержкой ПЛИС серии Cyclone II и основывается на использовании VQM-файлов (Verilog Quartus Mapping). VQM-файл является ограниченным подмножеством формата Verilog и используется для технологического мэппирования
(отображения) проекта с помощью сетевых примитивов в уникальный базис ПЛИС.
Составной частью процесса компиляции проекта в базис ПЛИС является этап анализа и синтеза. Под термином "синтез логики" следует понимать автоматическое преобразование проекта с уровня регистровых передач (RTL) на уровень вентилей технологического базиса ПЛИС.
VQM-файл можно извлечь как на этапе анализа и синтеза, так и после полной компиляции, с учетом размещения и трассировки. В случае его повторного использования в проекте размещение, трассировка и временной анализ исключаются.
На этапе синтеза логики в САПР Altera Quartus II c помощью опции Start VQM Writer меню Start необходимо получить синтезированный нетлист проекта.
В целом процесс проектирования очень похож на использование программных продуктов сторонних разработчиков на этапе анализа и синтеза, например, синтезатор Synplicity Synplify. Синтезатор Synplify Pro позволяет по VHDL/Verilog-проектам созданным в САПР Quartus II создавать "свои" VQM-файлы и разводить их в технологический базис ПЛИС с помощью "своих" алгоритмов размещения и трассировки. VQM-файлы, созданные с помощью Synplify Pro, отличаются по формату
от VQM-файлов созданных Quartus II (синтезатор QIS, Quartus II Integrated Synthesis от Altera) но САПР Quartus II допускает их повторное использование в проектах.
Для программирования ПЛИС создана среда разработки конфигурационных данных. Кратко рассмотрим лишь некоторые возможности этой среды.
Среда разработки читает VQM-файлы, созданные с помощью синтезатора QIS от Altera. Базируется на открытом программном инструменте ODIN-II [2]. ODIN_II конвертирует VQM-файл в специальный файл в blif (Berkeley Logic Interchange Format) формате, в котором выделяет логические вентили для описания логики устройства и "черные ящики" для гетерогенных блоков, таких как умножители, блоки памяти и др. Синтаксический анализатор ODIN-II разработан на основе программных средств bison (лексический анализатор) и flex (синтаксический анализатор). По Verilog-коду синтаксический анализатор ODIN-II строит абстрактное синтаксическое дерево. Далее с использованием специального программного инструмента проводится технологический мэппинг в базис ПЛИС серии 5578, оптимизация и последующее размещение и трассировка.
Для обеспечения гарантированного размещения пользовательских проектов в ПЛИС 5578ТС014, 5578ТС024 на этапе работы с САПР Quartus II (ф. Altera) необходимо учитывать следующие рекомендации по максимальному количеству задействованных в проекте логических элементов — 3200 (для ПЛИС 5578ТС014) и 3400 (для ПЛИС 5578ТС024).
Особенность представления
конфигурационных файлов для ОЗУ и ПЗУ в проектах пользователя показано ниже (пример 1, пример 2).
WIDTH=8;
DEPTH=4;
ADDRESS_RADIX=UNS;
DATA_RADIX=BIN;
CONTENT BEGIN 0 : 00000000; 1 : 00000000; 2 : 00000000; 3 : 00000000;
END;
Пример 1. Конфигурация ОЗУ
WIDTH=8;
DEPTH=4;
ADDRESS_RADIX=UNS;
DATA_RADIX=BIN;
CONTENT BEGIN 0 : 11111110; 1 : 11111111; 2 : 00000111; 3 : 00000110;
END;
Пример 2. Конфигурация ПЗУ
В работах [3,4] рассматривались следующие проекты последовательного КИХ-фильтра на четыре отвода для ПЛИС Cyclone II Device EP2C5F256C8 и Cyclone III Device EP3C5F256C6:
1. Умножитель на мегафункции LPM_MULT, аккумулятор на мегафункции ALTACCUMULATE [3,4];
2. Умножитель и аккумулятор на мегафункции ALTMULT_ACCUM [3,4];
3. Линия задержки на основе двухпортовой памяти (мегафункция RAM: 2 port, режим Simple Dual Port с инициализацией), ПЗУ для хранения коэффициентов (мегафункция ROM: 1 port, с инициализацией). Для выходной шины q установлен режим I do not care [3].
4. Параллельная реализация КИХ-фильтра. Четыре умножителя в одном блоке на мегафункции alt_mult_accum [3].
Первые два проекта основаны на примере, поставляемом с САПР Quartus II. Его можно найти по адресу altera\90\qdesigns\fir_filter а для версии 13.0 - altera\13.0\quartus\qdesigns\fir_filter.
Сведения по числу задействованных ресурсов ПЛИС Altera Cyclone II Device EP2C5F256C8 представлены в табл. 1. В табл. 2 приводятся сведения по числу задействованных ресурсов ПЛИС серии 5578ТС014.
Оценить рабочую частоту проекта возможно с помощью временного анализа с использованием файлов временных ограничений в формате SDC. Опция "Временной анализ" позволяет задавать пути с наименьшим запасом времени, информация по которым попадает в отчёт. Доступен выбор рабочих условий, для которых проводится анализ: «лучшие» и «худшие».
Таблица 1
Общие сведения по числу задействованных ресурсов ПЛИС Altera Cyclone II Device EP2C5F256C8, _временная модель TimeQuest анализа Slow-model [1,2]_
Проект Число Число LUT Триггеров Блоков Аппаратных Рабочая
логических с 4/3/<=2 логических памяти, умножителей с частота в
элементов (Total logic elements) входами элементов (Dedicated logic registers) M4K, бит размерностью операндов 9х9 (Embedded Multiplier 9-bit elements) наихудшем случае Fmax, МГц
Последовательный КИХ-фильтр на четыре отвода
1. 91 37=16/18/3 72 - 1 125.05
2. 89 37=16/18/3 70 - 1 105.35
3. Для выходной 49 27=0/23/4 41 ОЗУ: 32 1 190.62
шины q установлен ПЗУ:
режим Old memory 32
contents appear
4. Линия задержки на 70 36=16/15/5 54 ОЗУ: 32 1 163.03
основе двух портовой памяти (Shift Register (RAM-based)) ПЗУ: 64
Параллельный КИХ-фильтр на четыре отвода
5. 41 29=0/26/3 22 - 4 131.6
Таблица 2
Общие сведения по числу задействованных ресурсов ПЛИС 5578ТС014
Проект ^отношение триггеров ЛБ к LUT (alm ff/lcell comb) Число логических блоков Число LUT с 4/3/2 входами Триггеров ЛБ (alm_ff) Аппаратных умножителей (dsp18) Блоков памяти (dpbram)
Последовательный КИХ-фильтр на четыре отвода
1 72/46 73 46=19/3/24 72 1 -
2 70/46 72 46=24/3/19 70 1 -
3 41/29 43 29=0/21/8 41 1 2
4 Не реализуется - - - - - -
Параллельный КИХ-фильтр на четыре отвода
5 22/32 44 32=0/0/32 22 4 0
Выводы
По архитектурным решениям новые отечественные ПЛИС занимают промежуточное положение между низкобюджетной серией Cyclone II и высокопроизводительными ПЛИС серии Stratix III. Так использование двух портовой памяти в качестве линии задержки, встроенных умножителей и аппаратных сумматоров позволяют разрабатывать высокопроизводительные устройства цифровой обработки сигналов [5].
Использованием АЛМ позволяет уменьшить число используемых логических блоков ПЛИС 5578ТС014 в проектах пользователя по сравнению с числом логических элементов в ПЛИС Cyclone II EP2C5F256C8. Однако, как показывает эксперимент (проекты 1,2 и 5), общее число используемых LUT для ПЛИС 5578ТС014 немного выше, но при этом происходит перераспределение реализации комбинационных функций на 3-входовых LUT к 2-входовым LUT и возрастание числа используемых 4-входовых LUT.
К недостаткам блоков памяти можно отнести отсутствие режима "Old memory contents appear" (режим одновременного чтения и записи по одинаковому адресу в блоках памяти) в этом случае не удается реализовать линию задержки на основе двух портовой памяти с использованием мегафункции altshift_taps (Shift Register (RAM-based)) (табл.2, проект 4).
Литература
1. Altera. White Paper. FPGAs for High-Performance DSP Applications. May 2005, ver. 1.1.
2. Строгонов, А. САПР VTR7 для проектирования академических ПЛИС [Текст] / А. Строгонов, С. Цыбин, П. Городков // Компоненты и технологии. - 2016. - N3.
3. Строгонов, А. Особенности использования двух портовой памяти при проектировании последовательных КИХ-фильтров в САПР ПЛИС Quartus II [Текст] / А. Строгонов, С. Цыбин, П. Городков // Компоненты и технологии. - 2016. - N4.
4. Строгонов, А. Проектирование последовательных КИХ-фильтров в САПР ПЛИС Quartus II [Текст] / А. Строгонов, С. Цыбин, П. Городков // Компоненты и технологии. - 2016. - N1.
5. Строганов А.В. Цифровая обработка сигналов в [Текст] : учеб. пособие / А.В. Строганов. - 2-е изд., испр.
базисе программируемых логических интегральных схем и доп. - СПб.: Издательство "Лань", 2015. -310 с.
Воронежский государственный технический университет
FEATURES OF DESIGNING DEVICE DIGITAL SIGNAL PROCESSING IN THE FPGA
BASIS SERIES 5578
A.V. Srogonov, Doctor of Technical Sciences, Full Professor, Voronezh State Technical University, Voronezh, Russian Federation, e-mail: sto@sci.vrn.ru
P.S. Gorodkov, Postgraduate, Voronezh State Technical University, Voronezh, Russian Federation, e-mail:
gorodkoff@gmail. com
The programmable logic integrated circuit (PLD) such as field programmable gate arrays (FPGAs) structure with the logical blocks on the basis of adaptive logic modules of 5578 series developed as part of the import substitution of foreign electronic components programme is considered. According to architectural solutions, new domestic FPGAs are intermediate notched up a series of low-budget between the Altera Cyclone II FPGA and high-performance series of Stratix III. Special aspects of the organization of local and global wiring resources, block for digital signal processing and modes of user memory block are reported. There are examples of the design of digital filters with finite impulse response using CAD Altera Quartus II FPGA and programming issues with the configuration data development environment.
Key words: delay line, multiplier, accumulator, filter, digital signal processing
References
1. Altera. White Paper. FPGAs for High-Performance DSP Applications. May 2005, ver. 1.1.
2. Strogonov A., Cybin S., Gorodkov P. SAPR VTR7 dlja proektirovanija akademicheskih PLIS [VTR7 CAD for designing academic FPGA] // Komponenty i tehnologii, 2016, N3.
3. Strogonov A., Cybin S., Gorodkov P. Osobennosti ispol'zovanija dvuh portovoj pamjati pri proektirovanii posledovatel'nyh KIH-fil'trov v SAPR PLIS Quartus II [Features of use of the two port memory in the design of sequential FIR filters in the CAD Quartus II FPGA] // Komponenty i tehnologii, 2016, N4.
4. Strogonov A., Cybin S., Gorodkov P. Proektirovanie posledovatel'nyh KIH-fil'trov v SAPR PLIS Quartus II [Designing sequential FIR filters in the CAD Quartus II FPGA] // Komponenty i tehnologii, 2016, N1.
5. Strogonov A.V. Cifrovaja obrabotka signalov v bazise programmiruemyh logicheskih integral'nyh shem [Digital signal processing in the basis of programmable logic integrated circuits]: Uchebnoe posobie. - 2-e izd., ispr. i dop. -SPb.: Izdatel'stvo "Lan'", 2015. -310 s.