Дипломная работа: Разработка устройства для граничных вычислений

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

5.5 Языки для описания аппаратуры и временных ограничений

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

Языки описания аппаратуры позволили повысить уровень абстракции и тем самым упростили разработку СБИС (сверхбольшая интегральная схема). На данный момент существует два основных языка: SystemVerilog и VHDL.

Выбор был сделан в пользу SystemVerilog так, как он имеет несколько преимущества перед VHDL:

· Наличие объектно-ориентированного подмножества языка программирования

· Universal Verification Methodology предполагает использование SystemVerilog

· Менее громоздкий синтаксис

При компиляции SystemVerilog или VHDL получается список соединении логических элементов, который вместе с библиотекой временных параметров используется для статистического временного анализа (СВА). СВА рассчитывает максимальную частоту работы интегральной схемы или ПЛИС, времена удержания и установки для последовательной логики, задержку на критическом пути распространения сигнала и множество других значений.

При проектировании на ПЛИС или ИС может возникнуть потребность задания временных ограничении. Временные ограничения (ВО) могут касаться сигналов, которые пересекают клоковые домены, пересинхронизаторов, частоты работы схемы. В общем, с помощью ВО появляется возможность влиять на СВА.

Стандартным инструментом задания ВО на сегодняшний день является язык synopsys design constraints.

6. Тестирование и замеры параметров

6.1 Тестирование

Верификация логики работы цифровой схемы заключается в подачи стимулов на входные порты и проверке выходов и внутренних состоянии тестируемого устройства. Для данной задачи используется подмножество языка SystemVerilog и симулятор ModelSim.

Функциональное тестирование

Функциональное тестирование - это проверка всех возможностей, определяемых спецификацией, верифицируемой системы. Так на рисунке 18 приведен пример тестируемого конечного автомата (КА) Мура.

В конечном автомате Мура все выходные сигналы зависят от внутреннего состояния КА. Переход в другое состояние КА происходит только под воздействием сигналов, подаваемых на вход. Для тестирования КА необходимо, подавая различные сигналы на вход А, сопоставлять значения на выходе Y и внутренние состояния КА на соответствие спецификации. Если всё сходится, то блок прошел тестирование, если нет, то исправляется код, написанный на языке описания аппаратуры. Таким образом происходит верификация логики работы цифровой схемы с помощью функционального тестирования.

Рисунок 18. Схема конечного автомата Мура

В данной работе с помощью функционального тестирования верифицируется небольшие блоки такие как: Арифметико-логическое устройство, регистровый файл, котроллер UART, интерфейс FIFO. Однако по мере роста проекта сложность росла по экспоненте, поэтому возникла необходимость использовать объектно-ориентированное подмножество (ООП) SystemVerilog.

ООП SystemVerilog

Существуют распространённая структура [17], изображенная на рисунке 19, для верификации с помощью ООП SystemVerilog.

Рисунок 19. Структура системы для верификации

На рисунке 19 изображены пунктирной линей классы, каждый из которых выполняет свою функцию:

· Generator создает сценарии, которые описывают воздействия, подающиеся на тестируемое устройство. К примеру, мобильный телефон одновременно может выполнять такие сценарии как: проигрывание музыки, скачивание документов, показ видео и прочие. Генератор создает эти сценарии на основе различных случайных переменных (объем файла, место в памяти, и т.д.).

· Agent принимает сценарии и переводит их в более мелкие команды. Так если пришел запрос на чтение данных то, он переводится в более мелкие команды: запись необходимых данных в DMA для начала передачи информации, подачи тактовой частоты, включение питания и т.п.

· Driver, получая команды от Agent, преобразует их в сигналы, подающиеся на тестируемое устройство.

· Monitor принимает сигналы с выходов тестируемого устройства и переводит в более высокоуровневые ответы.

· Checker сравнивает ответы, полученные от monitor, с ожидаемыми.

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

· Тест в данном случае - это блок, который может накладывать дополнительные ограничения на тестирование определенных сценариев.

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

6.2 Замеры характеристик вычислительной системы

После описания логики работы на SystemVerilog и ее верификации был проведен расчет максимальной частоты работы схемы при различных температурах в ПЛИС Altera Cyclone 4. Расчет был осуществлен с помощью языка Synopsys design constraints и инструмента Quartus Timing Analyzer [18]. Полученные данные приведены в таблице 3.

Таблица 3. Максимальные частоты работы схемы при различных температурах

Тактовый сигнал

Температура С

Период нс

МГц

clk

0

18,072

55,33

clk_intrfc

0

5,636

177,4

clk

85

19,359

51,66

clk_intrfc

85

6,054

165,18

· clk - частота работы процессора

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

Для реализации вычислительного устройства с параметрами, приведенными в таблице 4, необходимо было затратить 3190 логических элементов и 7Кбит встроенной памяти.

Таблица 4. Параметры вычислительного устройства

Длина вектора

Кол-во бит в слове

Кол-во бит в слове для отображения дробной части

Кол-во регистров

8

8

4

16

Стоит отметить, что параметры вычислительного устройства до синтеза можно изменять тем самым подстраивая систему под конкретную задачу. В ПЛИС Altera Cyclone 4 недостаточно ресурсов для более производительной системы.

7. Сравнение с аналогами

В таблице 5 представлены две системы, которые применяются для граничных вычислении, и разработанное в ходе данной работы устройство. Видно, что устройство под номером 2 (далее устр. 2) уступает устройству под номером 1 в частоте. Однако благодаря векторной архитектуре в задачах, в которых есть параллелизм данных, можно добиться более высокой производительности с использованием устр. 2. Если сравнивать с устройством под номером 3 (далее устр. 3) можно прийти к выводу, что устр. 2 больше подходит для работы с дробными числами, но при большем потреблении ресурсов (логических блоков).

Таки образом, устройство, представленное в данной работе, имеет, как и недостатки, так преимущества среди свободно распространяемых вычислительных систем и может найти свою область применения.

Таблица 5. Параметры вычислительных систем

логические блоки, шт.

длина вектора, слов

разрядность, бит

формат данных

Частота работы, МГц

№1

784

1 (скалярный)

32

целое число

156,25

№2

3190

8

8

фиксированная точка

51,66

№3

2990

4

8

целое число

37,88

1 (скалярный)

32

· №1 - Nios 2 [19]

· №2 - Устройство, представленное в данной работе

· №3 - RISC V с векторным расширением [20]

Заключение

По итогу разработки была создана вычислительная система для граничных вычислении. Работа над проектом велась с помощью современных методов:

· Описание логики работы цифровой схемы на SystemVerilog

· Моделирование в ModelSim

· Верификация с ООО SystemVerilog

· Размещение на кристалле ПЛИС в программном пакете Quartus

· Расчет временных характеристик цифровой схемы на ПЛИС с помощью Synopsys design constraints

Вычислительная система имеет такие особенности:

· Использует параллелизм данных (векторный)

· Формат данных с фиксированной точкой

· Ввод-вывод на основе буфера FIFO

· Гибкость настройки вывод-вывода благодаря расположению на ПЛИС

Для реализации на ПЛИС Altera Cyclone 4 векторного восьмибитного процессора, одновременно обрабатывающего 8 слов с форматом данных «фиксированная точка» потребовалось 3190 логических блоков и 7 Кбит встроенной памяти. Вычислительная система работает на частоте 51 МГц. Диапазон рабочей температуры от 0С до 85С.

Также описание на SystemVerilog может свободно распространяться как открытая вычислительная система. Это дает возможность модифицировать устройство и задавать параметры для настройки системы под конкретную задачу.

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

Список литературы

[1] Yeo, Kiat Seng & Chian, Mojy & Ng, Tony & Tuan, Do. (2015). Internet of Things: Trends, challenges, and applications. Proceedings of the 14th International Symposium on Integrated Circuits, ISIC 2014. 568-571. 10.1109/ISICIR.2014.7029523.

[2] Ning, Huansheng & Li, Yunfei & Shi, Feifei & Yang, Laurence. (2020). Heterogeneous edge computing open platforms and tools for internet of things. Future Generation Computer Systems. 106. 10.1016/j.future.2019.12.036.

[3] Edge Computing: Decentralizing for Performance in the IoT. URL:https://www.strategyanalytics.com/access-services/enterprise/iot/reports/report-detail/edge-computing-decentralizing-for-performance-in-the-iot (дата обращения 23.02.2020)

[4] Cyclone IV Device Handbook, Altera. URL:https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cyclone-iv/cyclone4-handbook.pdf (дата обращения 24.02.2020)

[5] Хеннеси Джон Л., Паттерсон Дэвид А. Компьютерная архитектура. Количественный подход. Издание 5-е Москва: ТЕХНОСФЕРА, 2016. - 936 с., ISBN 97805-94836-413-1

[6] Loghin, Dumitrel & Ramapantulu, Lavanya & Teo, Yong. (2017). On Understanding Time, Energy and Cost Performance of Wimpy Heterogeneous Systems for Edge Computing. 10.1109/IEEE.EDGE.2017.10.

[7] Andrйs Rodrнguez, Angeles Navarro, Rafael Asenjo, Francisco Corbera, Rubйn Gran, Darнo Suбrez, Jose NunezYanez. Exploring heterogeneous scheduling for edge computing with CPU and FPGA MPSoCs. Journal of Systems Architecture. Volume 98. 2019. Pages 27-40. ISSN 1383-7621.

[8] H. Junhong, Z. Tianxu and J. Haoyang, «New multi-DSP parallel computing architecture for real-time image processing,» in Journal of Systems Engineering and Electronics, vol. 17, no. 4, pp. 883-889, Dec. 2006, doi: 10.1016/S1004-4132 (07) 60032-2.

[9] Wan-Young Chung, Duk-Dong Lee, Real time multi-channel gas leakage monitoring system using CPLD chip, Sensors and Actuators B: Chemical, Volume 77, Issues 1-2, 2001, Pages 186-189, ISSN 0925-4005.

[10] Verilog, Expert & Cummings, Clifford. (2002). Simulation and Synthesis Techniques for Asynchronous FIFO Design.

[11] UltraFast Design Methodology. URL: https://www.xilinx.com/support/documentation-navigation/design-hubs/vivado-design-suite.html (дата обращения 25.02.2020)

[12] Quartus II Handbook. URL: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/qts/quartusii_handbook.pdf (дата обращения 26.02.2020)

[13] ModelSim® User's Manual. URL: https://www.microsemi.com/document-portal/doc_view/131619-modelsim-user (дата обращения 11.02.2020)

[14] Отладочная плата RZ-Easy FPGA A2.1. URL: http://rzrd.net/product/? 79_502.html (дата обращения 10.02.2020)

[15] Передача данных через UART. URL: http://easyelectronics.ru/avr-uchebnyj-kurs-peredacha-dannyx-cherez-uart.html (дата обращения 19.01.2020)

[16] Single chip USB to UART bridge. URL: https://static.chipdip.ru/lib/248/DOC000248655.pdf (дата обращения 03.03.2020)

[17] C. Spear, G. Tumbush, SystemVerilog for Verification, Edition Number 3, Springer US, 2012 - 464 с., ISBN 978-1-4614-0714-0

[18] Intel® Quartus® Prime Timing Analyzer Cookbook. URL: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/manual/mnl_timequest_cookbook.pdf (дата обращения 29.03.2020)

[19] Nios II Processor Reference Guide. URL: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/nios2/n2cpu-nii5v1gen2.pdf (дата обращения 12.04.2020)

[20] RISC-V CPU (Tape-Out with U18 Technology). https://github.com/jasonlin316/RISC-V-CPU (дата обращения 12.04.2020)

Источник: https://otherreferats.allbest.ru/download/1226700/