MODELING FUNCTIONAL CONTROL UNIT BY MATRIX INDICATOR ON BASIS OF PROGRAMMABLE LOGIC INTEGRATED CIRCUIT
Abstract and keywords
Abstract (English):
The article presents the process of simulation of the functional control unit of a matrix indicator on the basis of a programmable logic integrated circuit in the Xilinx Vivado Design Suite tool programming environment. Analysis and synthesis of the hardware language constructs, as well as developing RTL models were carried out using the Xilinx ISE software. There have been defined the functional modules common to the matrix indicator control unit: a finite state machine that generates a sequence of characters; a matrix indicator control unit that outputs a sequence of characters to a matrix indicator generating a finite automaton; a button bounce filter; frequency divider. A logic unit model combining functional nodes has been realized. Xilinx ISE CAD produced an RTL model that shows interaction of the nodes and the appearance of the top level. The matrix indicator control unit is presented as four interrelated devices: a column counter that enumerates the columns; a column decoder that takes input values and produces the value "1" only to one of the outputs, the number of which is equal to the number of the column whose value is put to the input; a character code register which receives, stores and transmits character codes; read-only memory which stores encodings of lines for sending an information signal in case of arrival of a particular word or a column. The specific features of implementing the modules on programmable logic are considered. A test module developed in the Verilog language was designed for verification, which is a step-by-step input of values and delays between input. Testing the modules that make up the matrix indicator control unit was carried out.

Keywords:
matrix indicator, programmable logic integrated circuit, RTL-model, programmable logic, control unit, programming, testing
Text
Publication text (PDF): Read Download

Введение Матричные индикаторы являются устройствами вывода, реализующими большое количество отображаемых символов. Матричные индикаторы используются в различных целях: в качестве информационных табло, рекламных вывесок и т. п. Однако в отличие от экранов и дисплеев матричные индикаторы ограничены количеством элементов и способны выводить в один момент один или несколько символов. Принцип их работы заключен в том, что на матрицу индикаторов подается напряжение на соответствующий столбец и строку, на их пересечении и появляется изображение. Одним из методов работы с матричными индикаторами является программирование функционального узла на базе программируемой логической интегральной схемы (ПЛИС), которая представляет собой электронный компонент (интегральная микросхема), предназначенный для создания конфигурируемых цифровых электронных схем. Логика работы ПЛИС, в отличие от обычных цифровых микросхем, не определяется при изготовлении, а задается посредством программирования [1–3]. Узел управления матричным индикатором используется в ПЛИС, которая широко применяется в различных устройствах, в том числе в потребительской электронике, телекоммуникационном оборудовании, в платах-ускорителях, которые используются в DATA-центрах и других устройствах [4, 5]. Моделирование его работы необходимо для последующего тестирования и отладки выполняемых задач. Программные и аппаратные средства В работе с целью получения результатов для программирования были использованы программатор и отладочная среда (IDE), которые позволяют создать требуемую структуру цифрового устройства в виде принципиальной электрической схемы или программы. Программирование производилось на специальном языке описания аппаратуры Verilog HDL в программной среде Xilinx Vivado Design Suite. Язык высокого уровня Verilog позволяет создать проект разрабатываемого устройства. Данный язык имеет лаконичный синтаксис [6, 7]. Язык описания аппаратуры (ЯОА) позволяет работать со структурой и программировать ПЛИС. Xilinx ISE – программное обеспечение, помогающее работать с ЯОА. С его помощью производится анализ и синтез конструкций ЯОА. Разработка RTL-моделей производилась с использованием САПР Xilinx ISE. Описание устройства Для корректной работы одного модуля, как правило, требуется реализовать несколько других модулей, которые будут помогать основному, поэтому в работе реализована модель логического устройства, сочетающая в себе функциональные узлы делителя частоты 1 кГц, фильтра дребезга контактов кнопки и конечного автомата генератора последова-тельности. При этом все модули проекта описаны с помощью языка Verilog. Помимо синтезируемых модулей, реализуемых в базисе элементов ПЛИС, были разработаны тестовый модуль на языке Verilog, предназначенный для верификации, с помощью которого без наличия физической модели платы можно увидеть результаты работы узла управления матричным индикатором. На начальном этапе программирования были заданы символы, которые должны будут выводиться на матричном индикаторе, в данном случае это случайные символы из шестнадцатеричной системы исчисления. В таблице представлены входные и выходные данные конечного автомата, который генерирует последовательность чисел. Входные и выходные значения конечного автомата Input and output values of a finite state machine Порядок F E D C B A 9 8 7 6 5 4 3 2 1 0 Значение 3 2 9 C 8 D 0 F A B 3 2 1 7 4 1 Для понимания методов написания кода на языке Verilog было определено то, как работают и за что отвечают модули узла управления матричным индикатором. Само устройство имеет структурную схему, в которой определен принцип взаимодействия между собой внутренних модулей и устройств ввода и вывода (переключатели, кнопки и матричный индикатор). Устройство состоит из следующих структурных элементов: 1. Конечный автомат, который генерирует последовательность символов согласно значениям, представленным в таблице. 2. Блок управления матричным индикатором – выводит последовательность символов на матричный индикатор, которую генерирует конечный автомат. 3. Фильтр дребезга контактов кнопки. 4. Делитель частоты. Конечный автомат нужен для того, чтобы переходить из состояния в состояние. В зависимости от состояния автомата на матричный индикатор будут подаваться сигналы о выводе того или иного знака. Для управления переходами автомата есть несколько функций: “RST”, “CE” и “UP”. В данном автомате существует 16 состояний, у каждого состояния есть свой номер (DATA_I) и значение (SEQ). Рассмотрим следующие варианты переходов между состояниями: – переход вверх при CE = 1 и UP = 1. Автомат переходит в следующее состояние по возрастанию (из DATA_I = 5 в DATA_I = 6); – переход вниз при CE = 1 и UP = 0. Автомат переходит в следующее состояние по убыванию (из DATA_I = A в DATA_I = 9); – сброс при RST = 1. Основным принципом работы автомата будет ожидание функцией “always@” изменения значения в переменной “cnt”, которая является счетчиком состояния. Переменная “cnt” изменяет свои значения при сбросе или перезагрузке в 0, при переходе вверх (UP = 1) на +1 и при переходе вниз (UP = 0) на –1. Также для правильной работы узла управления матричным индикатором в его составе должны быть модуль делителя частоты и модуль фильтра дребезга. Делитель частоты используется для того, чтобы формировать определенную частоту. Различные устройства работают на различных тактовых частотах, для правильной работы отдельных модулей нужны делители частоты. Фильтры дребезга используются, чтобы верно считывать сигналы с устройств ввода. При нажатии на клавиши или переключатели формируется дребезг, из-за которого может сложиться ощущение того, что контакт был замкнут очень много раз за очень короткий промежуток времени. Для предотвращения этой ситуации в фильтре дребезга существует функция, которая ожидает определенное ко-личество тактовых сигналов после нажатия, заведомо большее, чем время дребезга контактов, затем проверяет состояние контакта и в зависимости от его значения меняет значение соответствующей переменной. Все вышеупомянутые устройства соединяются в один общий модуль, который является управляющим автоматом со вспомогательными устройствами, передающим информационные сигналы на модуль матричного индикатора. В САПР Xilinx ISE была разработана RTL-модель, которая показывает работу узлов между собой и то, как будет выглядеть верхний уровень. Входы и выходы объединяются в модули, модули – в устройство, это и есть RTL-модель. Verilog RTL-модели, которые описывают управляющий автомат, верхний уровень иерархии и модель делителя частоты, представлены на рис. 1, 2 и 3 соответственно. Рис. 1. RTL-модель управляющего автомата Fig. 1. RTL-model of the control automaton Рис. 2. RTL-модель верхнего уровня иерархии автомата Fig. 2. RTL model of the top level of the automaton hierarchy Рис. 3. RTL-модель делителя частоты Fig. 3. RTL model of a frequency divider Блок управления матричным индикатором представлен в виде взаимосвязи 4 устройств: – счетчик столбцов, который производит перебор столбцов; – дешифратор столбцов, который принимает входные значения и выдает «1» только на одном из выходов, номер которого равен номеру столбца, значение которого подается на вход; – регистр кода символов, который принимает, хранит и передает коды символов; – постоянное запоминающее устройство (ПЗУ), в котором хранятся кодировки того, на какие строки подавать информационный сигнал в случае прихода того или иного слова и столбца. Информационные сигналы приходят на буфер столбцов и буфер строк, после чего информационные сигналы приходят на транзисторы, транзисторы пропускают ток на диоды, и диоды начинают светиться. Структурная схема модуля матричного индикатора и самого матричного индикатора изображена на рис. 4. Рис. 4. Структурная схема матричного индикатора и его модуля Fig. 4. Flowchart of the matrix indicator and its module Для тестирования был создан UUT-модуль, который представляет собой пошаговый ввод значений и задержек между вводом. На временной диаграмме (рис. 5) виден результат верификации в виде симуляции. Рис. 5. Результат верификации Fig. 5. Verification result Выходные значения совпадают и соответствуют данным, представленным в таблице (кроме первого значения «0», потому что “RST” = 1), следовательно, автомат спроектирован верно, а изображения символов будут выводиться верно и без задержек при работе пикселей. Заключение Проведено моделирование функционального узла управления матричным индикатором на базе программируемой логической интегральной схемы в инструментальной среде разработки программ Xilinx Vivado Design Suite. Определены общие для узла управления матричным индикатором функциональные модули. Рассмотрены особенности реализации модулей на программируемой логике. За-программированный функциональный узел на базе программируемой логической интегральной схемы предназначен для создания конфигурируемых цифровых электронных схем. Разработанный узел управления матричным индикатором может быть использован в программируемой логической интегральной схеме, проведено успешное тестирование модулей, составляющих узел управления матричным индикатором.
References

1. Bass A. V., Antonov M. A. Rabota s PLIS c is-pol'zovaniem yazyka opisaniya apparatury VERILOG // Izv. Tul. gos. un-ta. Tehn. nauki. 2019. № 3. S. 19-24.

2. Ivanov S. A., Kvyatkovskaya I. Yu., Dorohov A. F., Shishkin N. D. Model' sistemy upravleniya kombinirovannym otopleniem teplicy v usloviyah zakrytogo grunta na baze mikrokontrollera RASPBERRY PI // Vestn. Astrahan. gos. tehn. un-ta. Ser.: Upravlenie, vychislitel'naya tehnika i informatika. 2015. № 2. S. 32-37.

3. Shurshev T. V. Sposob poabzacnogo vvoda chislovyh znacheniy v massiv v yazyke programmirovaniya PYTHON // Informacionnye tehnologii i tehnologii kommunikacii: sovremennye dostizheniya: materialy Tret'ey Mezhdunar. molodezh. konf. (Astrahan', 1-5 oktyabrya 2019 g.) [Elektronnyy resurs]. Astrahan': Izd-vo AGTU, 2019. Rezhim dostupa: 1 elektron. opt. disk (CD-ROM). № gos. registracii 0322000404.

4. Kvyatkovskaya I. Y., Kosmacheva I., Sibikina I., Galimova L., Rudenko M., Barabanova E. A. Modular structure of data processing in automated systems of risk management in the fisheries industry // Communications in Computer and Information Science. 2017. T. 754. S. 284-301.

5. Kosmacheva I., Sibikina I., Kvyatkovskaya I., Lezh-nina Y. Algorithms of ranking and classification of software systems elements // Communications in Computer and Information Science. 2014. T. 466. S. 400-409.

6. Cifrovoy sintez: prakt. kurs / pod red. A. Yu. Romanova, Yu. V. Panchula. M.: DMK Press, 2020. 556 s.

7. Solov'ev V. V. Osnovy yazyka proektirovaniya cifrovoy apparatury Verilog. M.: Goryachaya liniya - Telekom, 2015. 206 s.


Login or Create
* Forgot password?