Статья:

РАЗРАБОТКА УСТРОЙСТВА "КОДОВЫЙ ЗАМОК" В ПРОГРАММНОЙ СРЕДЕ QUARTUS

Журнал: Научный журнал «Студенческий форум» выпуск №43(179)

Рубрика: Технические науки

Выходные данные
Владимирцев Д.К. РАЗРАБОТКА УСТРОЙСТВА "КОДОВЫЙ ЗАМОК" В ПРОГРАММНОЙ СРЕДЕ QUARTUS // Студенческий форум: электрон. научн. журн. 2021. № 43(179). URL: https://nauchforum.ru/journal/stud/179/103369 (дата обращения: 26.11.2024).
Журнал опубликован
Мне нравится
на печатьскачать .pdfподелиться

РАЗРАБОТКА УСТРОЙСТВА "КОДОВЫЙ ЗАМОК" В ПРОГРАММНОЙ СРЕДЕ QUARTUS

Владимирцев Данил Кириллович
студент, кафедра средства связи и информационная безопасность, Омский Государственный Технический университет, РФ, г. Омск

 

DEVELOPMENT OF THE "COMBINATION LOCK" DEVICE IN THE QUARTUS SOFTWARE ENVIRONMENT

 

Danil Vladimirtsev

Student, Department of Communications and Information Security, Omsk State Technical University, Russia, Omsk

 

Аннотация. В данной статье проведено проектирование устройства поиска среднего арифметического с выводом на семисегментный дисплей.

Abstract. In this article, the design of an arithmetic mean search device with output to a seven-segment display was carried out.

 

Ключевые слова: Ключевые слова: Счетчик, Код Грея, Quartus, Программируемая логическая матрица, Программируемая логическая интегральная схема, Проектирование, Структурная схема.

Keywords: Keywords: Counter, Gray Code, Quartus, Programmable logic matrix, Programmable logic integrated circuit, Design, Block diagram.

 

Разработку «Кодового замка» будем реализовывать на языке текстового описания Verilog.

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

Алгоритм нашего замка имеет привязку по времени к генератору прямоугольных импульсов с тактовой частотой 50 Гц. Весь процесс будет происходить на каждый положительный фронт импульса генератора. Это поможет избежать разницы выполнения каких-либо команд во времени, что непременно повысит надежность проекта от программных ошибок.

Пароль от нашего «Кодового замка» будет четырехзначным, и задаваться движковыми рычагами. Так как количество рычагов, на используемом ПЛИС,

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

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

Смену пароля можно будет реализовать следующим способом:

  1. Выставить нужную комбинацию цифр для первого этапа и зажать нулевую кнопку.
  2. Повторить аналогичные действия для второго этапа.

Программный код для устройства «Кодовый замок» приведен ниже:

module project(clk, sw, sw8, sw9, ind0, ind1, ind2, ind3, t, led); input clk; input [7:0] sw; input sw8;  input sw9;  input t;

output led; output [6:0]ind0; output [6:0]ind1; output [6:0]ind2; output [6:0]ind3; reg a;  reg [6:0]ee0; reg [6:0]ee1; reg [6:0]ee2; reg [6:0]ee3;

reg [6:0] password; reg [6:0] password1; reg [6:0] password2; reg [6:0] password3; always @ (posedge clk)

begin

if (sw8 == 1'b0) begin case (sw[3:0])

4'b0000: ee0=7'b1000000;

4'b0001: ee0=7'b1111001;

4'b0010: ee0=7'b0100100;

4'b0011: ee0=7'b0110000;

4'b0100: ee0=7'b0011001;

4'b0101: ee0=7'b0010010;

4'b0110: ee0=7'b0000010;

4'b0111: ee0=7'b1111000;

4'b1000: ee0=7'b0000000;

4'b1001: ee0=7'b0010000;

endcase

case (sw[7:4])

4'b0000: ee1=7'b1000000;

4'b0001: ee1=7'b1111001;

4'b0010: ee1=7'b0100100;

4'b0011: ee1=7'b0110000;

4'b0100: ee1=7'b0011001;

4'b0101: ee1=7'b0010010;

4'b0110: ee1=7'b0000010;

4'b0111: ee1=7'b1111000;

4'b1000: ee1=7'b0000000;

4'b1001: ee1=7'b0010000;

endcase end

if (sw8 == 1'b1) begin case (sw[3:0])

4'b0000: ee2=7'b1000000;

4'b0001: ee2=7'b1111001;

4'b0010: ee2=7'b0100100;

4'b0011: ee2=7'b0110000;

4'b0100: ee2=7'b0011001;

4'b0101: ee2=7'b0010010;

4'b0110: ee2=7'b0000010;

4'b0111: ee2=7'b1111000;

4'b1000: ee2=7'b0000000;

4'b1001: ee2=7'b0010000;

endcase

case (sw[7:4])

4'b0000: ee3=7'b1000000;

4'b0001: ee3=7'b1111001;

4'b0010: ee3=7'b0100100;

4'b0011: ee3=7'b0110000;

4'b0100: ee3=7'b0011001;

4'b0101: ee3=7'b0010010;

4'b0110: ee3=7'b0000010;

4'b0111: ee3=7'b1111000;

4'b1000: ee3=7'b0000000;

4'b1001: ee3=7'b0010000;

endcase end

if (t==1'b0)

begin password = ee0; password1 = ee1;  password2 = ee2;  password3 = ee3; end

if (sw9==1'b1) if ((ee0 == password) & (ee1 == password1) & (ee2 == password2) & (ee3

== password3)) a = 1'b1; else a=1'b0; else a=1'b0; end

assign ind0 = ee0; assign ind1 = ee1; assign ind2 = ee2; assign ind3 = ee3; assign led = a; endmodule



Проведѐм функциональную симуляцию работы устройства:

 

Рисунок 1. Функциональная симуляция

 

Описание:

  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.

ЗАКЛЮЧЕНИЕ

В данной курсовой работе было разработано устройство «Кодовый замок» в программной среде Quartus с использованием ПЛИС. В ходе выполнения работы изучены методы программирования ПЛИС для разнообразных целей, освоены базовые знания в области программирования интегральных схем.

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

 

Список литературы:
1. Угрюмов Е. П. Глава 7. Программируемые логические матрицы, программируемая матричная логика, базовые матричные кристаллы / Цифровая схемотехника. Учеб. пособие для вузов. Изд.2, БХВ-Петербург, 2004. С. 255.
2. Микушин А.В., Сажнев А.М., Сединин В.И. Цифровые устройства и микропроцессоры. СПб, БХВ-Петербург, 2010. С. 175.
3. Александр Ашихмин Цифровая схемотехника. Шаг за шагом. М, Диалог-МИФИ, 2008. С. 274.
4. Шило В. Л. "Популярные микросхемы КМОП" — М.: "Горячая Линия - Телеком" 2002
5. Википедия .Свободная энциклопедия [Электронный ресурс].-Режим доступа:URL https://ru.wikipedia.org/wiki/Гирлянда (06.12.2018)