Статья опубликована в рамках: Научного журнала «Студенческий» № 42(170)
Рубрика журнала: Технические науки
Секция: Радиотехника, Электроника
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5
КОДОВЫЙ ЗАМОК НА ПЛИС СЕМЕЙСТВА «CYCLONE IV/V» С ПОМОЩЬЮ ТЕКСТОВОГО ЯЗЫКА ОПИСАНИЯ «VERILOG» В САПР QUARTUS PRIME 21.1
CODE LOCK ON "CYCLONE IV/V" FAMILY FPGA USING "VERILOG" TEXT DESCRIPTION LANGUAGE IN QUARTUS PRIME CAD 21.1
Egor Lasunov
Student, radio engineering faculty, Omsk State Technical University,
Russia, Omsk
АННОТАЦИЯ
В данной статье будет описано проектирование устройства «Кодовый замок» на программируемой логической интегральной схеме семейства Altera «Cyclone IV/V» с помощью текстового языка описания Verilog в программной среде «Quartus Prime».
ABSTRACT
This article will describe the design of the Code Lock device on the Altera "Cyclone IV/V" family of programmable logic integrated circuits using the Verilog text description language in the Quartus Prime software environment.
Ключевые слова: ПЛИС. Проектирование. Замок. Код. Quartus. Verilog.
Keywords: FPGA. Design. Lock. Code. Quartus. Verilog.
В 1862 году американцы Доддз, Урбан и Макнил из штата Огайо запатентовали кодовый замок с пятью цилиндрическими пальцами, называвшийся «Эврика». Этот механизм защищён от случайного набора кода огромным количеством конфигураций цифр и букв – 1 073 741 824 конфигурации. И чтобы перепробовать их все необходимо непрерывно вводить комбинации 2 042 года 324 дня и 1 час!
Электронный замок – это устройство, в котором кодовая комбинация хранится в памяти электронного блока и вводится с устройства ввода.
Это изобретение относится к электронной технике для защиты объектов от несанкционированного доступа. Техническим результатом является уменьшение вероятности несанкционированного выявления эталонного кода. Устройство, как правило, содержит контактный элемент, три счетчика у блок эталонного кода, схему сравнения, два триггера, дешифратор, элемент ИЛИ-НЕ, индикатор, генератор импульсов, регистр, переключатель кода, сумматор и элемент исключающее ИЛИ.
Наша же разработка «Кодового замка» будет реализована на языке текстового описания Verilog с использованием САПР «Quartus Prime». Код будет содержать пять входов и выходов. В проекте задействуем семисегментные индикаторы (для отображения пароля), кнопку (для перезаписи пароля), движковые рычаги (для задания комбинации пароля и проверки правильности введенного пароля).
Алгоритм нашего замка имеет привязку по времени к генератору прямоугольных импульсов с тактовой частотой 50 МГц, поскольку генераторы этой частоты встроены в ПЛИС. Весь процесс будет происходить на каждый положительный фронт импульса генератора. Это поможет избежать разницы выполнения каких-либо команд во времени, что непременно повысит надежность проекта от программных ошибок.
Пароль от нашего «Кодового замка» будет четырехзначным, и задаваться движковыми рычагами. Так как количество рычагов, на используемом ПЛИС равно 10, а для задачи десятичной цифры в двоичном коде необходимо 4 рычага, процесс ввода пароля будет разделен на два этапа. Каждый этап будет задавать две цифры восемью рычагами, а девятый рычаг будет позволять переключаться между ними. Десятый рычаг будет проводить проверку на правильность ввода и в случае удачи зажигать нулевой светодиод, что будет свидетельствовать об условном открытии замка.
Смену пароля будет реализована следующим способом:
- Выставить нужную комбинацию цифр для первого этапа и зажать нулевую кнопку.
- Повторить аналогичные действия для второго этапа.
Прежде чем приступить непосредственно к проектированию, объясним, что такое «Verilog». Verilog или Verilog Hardware Description Language – это язык описания аппаратуры, используемый для описания и моделирования электронных систем. Verilog HDL, наиболее часто используется в проектировании, верификации и реализации аналоговых, цифровых и смешанных электронных систем на различных уровнях абстракции [1].
САПР «Quartus Prime» включает реализацию «VHDL» и «Verilog» для описания оборудования, визуального редактирования логических схем и моделирования реакции проекта на различные стимулы. САПР также позволяет настраивать целевое устройство с помощью программиста [2, c. 5].
Приступим к проектированию. Программный код для устройства «Кодовый замок» приведен ниже:
Рисунок 1. Программный код в среде «Quartus Prime»
Рисунок 2. Продолжение программного кода
Прежде чем провести функциональное моделирование, поясним для чего оно необходимо. При его выполнении синтезируемая схема тестируется на предмет корректности функционирования во встроенном симуляторе, который моделирует зависимость состояния (выбранных разработчиком) сигналов схемы от времени. Это моделирование не учитывает временные задержки сигналов (называемые логическими гонками) между ЛЭ/ЛБ микросхемы ПЛИС [2, c. 17].
Ниже приведено описание работы и результат функционального моделирования в виде временных диаграмм, по которому можно судить о корректности работы программного кода.
Рисунок 3. Функциональное моделирование
Описание функционального моделирования:
Шаг 1: рычаг «t» в положении «1» (запоминание не происходит), sw8 = 0 – запись первых двух чисел справа, sw = 00010000 – задали цифры «1» и «0»;
Шаг 2: sw8 = 1 – запись последних двух чисел, sw = 0010000 – соответственно цифры «2» и «0»;
Шаг 3: t = 0 – произошло запоминание пароля «2010»;
Шаг 4: t = 1(запоминание не происходит), sw8 = 0, задаем первые две цифры, sw = 0001000 – задал цифры «1» и «0»;
Шаг 5: sw8 = 1 – задаем последние две цифры, sw = 0010000 – «2» и «0»;
Шаг 6: sw9 = 1 – происходит проверка правильности введенного пароля, выход led = 1, следовательно пароль верный;
Шаг 7: задаем случайные цифры для проверки, sw9 = 0, т.к. пока происходит ввод пароля, проверка не нужна;
Шаг 8: sw = 1 – происходит проверка, пароль неверный, следовательно, led = 0.
Исходя из данных функционального моделирования, можно сделать вывод, что программный код работает корректно.
В данной статье было подробно рассмотрено проектирование устройства «Кодовый замок» на ПЛИС с помощью текстового языка описания «Verilog». Эта информация может быть полезна как студентам, чья будущая профессия так или иначе связана с информационными технологиями, так и тем, кто уже знаком с проектированием на ПЛИС, но ищет новые идеи для реализации проектов.
Список литературы
- Verilog [электронный ресурс] – Режим доступа. – URL: https://ru.wikipedia.org/wiki/Verilog (дата обращения 18.12.2021)
- Акчурин А.Д., Юсупов К.М., Колчев А.А. Основы работы в среде Quartus II. – Казань: КФУ, 2017. – 49 с
Оставить комментарий