<!DOCTYPE article
PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.4 20190208//EN"
       "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.4" xml:lang="en">
 <front>
  <journal-meta>
   <journal-id journal-id-type="publisher-id">Vestnik of Astrakhan State Technical University. Series: Management, computer science and informatics</journal-id>
   <journal-title-group>
    <journal-title xml:lang="en">Vestnik of Astrakhan State Technical University. Series: Management, computer science and informatics</journal-title>
    <trans-title-group xml:lang="ru">
     <trans-title>Вестник Астраханского государственного технического университета. Серия: Управление, вычислительная техника и информатика</trans-title>
    </trans-title-group>
   </journal-title-group>
   <issn publication-format="print">2072-9502</issn>
   <issn publication-format="online">2224-9761</issn>
  </journal-meta>
  <article-meta>
   <article-id pub-id-type="publisher-id">54744</article-id>
   <article-id pub-id-type="doi">10.24143/2073-5529-2022-4-42-47</article-id>
   <article-categories>
    <subj-group subj-group-type="toc-heading" xml:lang="ru">
     <subject>КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА</subject>
    </subj-group>
    <subj-group subj-group-type="toc-heading" xml:lang="en">
     <subject>COMPUTER ENGINEERING AND SOFTWARE</subject>
    </subj-group>
    <subj-group>
     <subject>КОМПЬЮТЕРНОЕ ОБЕСПЕЧЕНИЕ И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА</subject>
    </subj-group>
   </article-categories>
   <title-group>
    <article-title xml:lang="en">Modeling functional control unit by matrix indicator  on basis of programmable logic integrated circuit</article-title>
    <trans-title-group xml:lang="ru">
     <trans-title>Моделирование функционального узла управления  матричным индикатором на базе программируемой  логической интегральной схемы</trans-title>
    </trans-title-group>
   </title-group>
   <contrib-group content-type="authors">
    <contrib contrib-type="author">
     <name-alternatives>
      <name xml:lang="ru">
       <surname>Шуршев</surname>
       <given-names>Тимофей Валерьевич </given-names>
      </name>
      <name xml:lang="en">
       <surname>Shurshev</surname>
       <given-names>Timofei Valerievich </given-names>
      </name>
     </name-alternatives>
     <email>t.shurshev2002@gmail.com</email>
     <xref ref-type="aff" rid="aff-1"/>
    </contrib>
    <contrib contrib-type="author">
     <name-alternatives>
      <name xml:lang="ru">
       <surname>Карлина</surname>
       <given-names>Елена Прокофьевна </given-names>
      </name>
      <name xml:lang="en">
       <surname>Karlina</surname>
       <given-names>Elena Prokofievna </given-names>
      </name>
     </name-alternatives>
     <email>e_karlina@list.ru</email>
     <xref ref-type="aff" rid="aff-2"/>
    </contrib>
   </contrib-group>
   <aff-alternatives id="aff-1">
    <aff>
     <institution xml:lang="ru">МИРЭА – Российский технологический университет</institution>
     <country>Россия</country>
    </aff>
    <aff>
     <institution xml:lang="en">MIREA – Russian Technological University</institution>
     <country>Russian Federation</country>
    </aff>
   </aff-alternatives>
   <aff-alternatives id="aff-2">
    <aff>
     <institution xml:lang="ru">Астраханский  государственный технический университет</institution>
     <city>Астрахань</city>
     <country>Россия</country>
    </aff>
    <aff>
     <institution xml:lang="en">Astrakhan State Technical University</institution>
     <city>Astrakhan</city>
     <country>Russian Federation</country>
    </aff>
   </aff-alternatives>
   <pub-date publication-format="print" date-type="pub" iso-8601-date="2022-10-25T21:20:49+03:00">
    <day>25</day>
    <month>10</month>
    <year>2022</year>
   </pub-date>
   <pub-date publication-format="electronic" date-type="pub" iso-8601-date="2022-10-25T21:20:49+03:00">
    <day>25</day>
    <month>10</month>
    <year>2022</year>
   </pub-date>
   <issue>4</issue>
   <fpage>42</fpage>
   <lpage>47</lpage>
   <history>
    <date date-type="received" iso-8601-date="2022-09-14T00:00:00+03:00">
     <day>14</day>
     <month>09</month>
     <year>2022</year>
    </date>
    <date date-type="accepted" iso-8601-date="2022-10-17T00:00:00+03:00">
     <day>17</day>
     <month>10</month>
     <year>2022</year>
    </date>
   </history>
   <self-uri xlink:href="https://vestnik.astu.ru/en/nauka/article/54744/view">https://vestnik.astu.ru/en/nauka/article/54744/view</self-uri>
   <abstract xml:lang="ru">
    <p>Представлено моделирование функционального узла управления матричным индикатором на базе программируемой логической интегральной схемы в инструментальной среде разработки программ Xilinx Vivado Design Suite. Анализ и синтез конструкций языка описания аппаратуры, разработка RTL-моделей проведены &#13;
в программном обеспечении Xilinx ISE. Определены общие для узла управления матричным индикатором функциональные модули: конечный автомат, который генерирует последовательность символов; блок управления матричным индикатором, выводящий последовательность символов на матричный индикатор, который генерирует конечный автомат; фильтр дребезга контактов кнопки; делитель частоты. Реализована модель логического устройства, сочетающая в себе функциональные узлы. В САПР Xilinx ISE разработана RTL-модель, которая показывает взаимодействие узлов и то, как будет выглядеть верхний уровень. Блок управления матричным индикатором представлен в виде взаимосвязи 4 устройств: счетчика столбцов, который производит перебор столбцов; дешифратора столбцов, который принимает входные значения и выдает значение «1» только на одном из выходов, номер которого равен номеру столбца, значение которого подается на вход; регистра кода символов, который принимает, хранит и передает коды символов; постоянного запоминающего устройства, в котором хранятся кодировки того, на какие строки подавать информационный сигнал в случае прихода того или иного слова и столбца. Рассмотрены особенности реализации модулей на программируемой логике. Разработан тестовый модуль на языке Verilog, предназначенный для верификации, представляющий собой пошаговый ввод значений и задержек между вводом; проведено тестирование модулей, составляющих узел управления матричным индикатором.</p>
   </abstract>
   <trans-abstract xml:lang="en">
    <p>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: &#13;
a finite state machine that generates a sequence of characters; a matrix indicator control unit that outputs a sequence &#13;
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 &quot;1&quot; 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.</p>
   </trans-abstract>
   <kwd-group xml:lang="ru">
    <kwd>матричный индикатор</kwd>
    <kwd>программируемая логическая интегральная схема</kwd>
    <kwd>RTL-модель</kwd>
    <kwd>программируемая логика</kwd>
    <kwd>узел управления</kwd>
    <kwd>программирование</kwd>
    <kwd>тестирование</kwd>
   </kwd-group>
   <kwd-group xml:lang="en">
    <kwd>matrix indicator</kwd>
    <kwd>programmable logic integrated circuit</kwd>
    <kwd>RTL-model</kwd>
    <kwd>programmable logic</kwd>
    <kwd>control unit</kwd>
    <kwd>programming</kwd>
    <kwd>testing</kwd>
   </kwd-group>
  </article-meta>
 </front>
 <body>
  <p>ВведениеМатричные индикаторы являются устройствами вывода, реализующими большое количество отображаемых символов. Матричные индикаторы используются в различных целях: в качестве информационных табло, рекламных вывесок и т. п. Однако в отличие от экранов и дисплеев матричные индикаторы ограничены количеством элементов и способны выводить в один момент один или несколько символов. Принцип их работы заключен в том, что на матрицу индикаторов подается напряжение на соответствующий столбец и строку, на их пересечении и появляется изображение. Одним из методов работы с матричными индикаторами является программирование функционального узла на базе программируемой логической интегральной схемы (ПЛИС), которая представляет собой электронный компонент (интегральная микросхема), предназначенный для создания конфигурируемых цифровых электронных схем. Логика работы ПЛИС, в отличие от обычных цифровых микросхем, не определяется при изготовлении, а задается посредством программирования [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ПорядокFEDCBA9876543210Значение329C8D0FAB321741 Для понимания методов написания кода на языке 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. Определены общие для узла управления матричным индикатором функциональные модули. Рассмотрены особенности реализации модулей на программируемой логике. За-программированный функциональный узел на базе программируемой логической интегральной схемы предназначен для создания конфигурируемых цифровых электронных схем. Разработанный узел управления матричным индикатором может быть использован в программируемой логической интегральной схеме, проведено успешное тестирование модулей, составляющих узел управления матричным индикатором.</p>
 </body>
 <back>
  <ref-list>
   <ref id="B1">
    <label>1.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Басс А. В., Антонов М. А. Работа с ПЛИС c ис-пользованием языка описания аппаратуры VERILOG // Изв. Тул. гос. ун-та. Техн. науки. 2019. № 3. С. 19-24.</mixed-citation>
     <mixed-citation xml:lang="en">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.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B2">
    <label>2.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Иванов С. А., Квятковская И. Ю., Дорохов А. Ф., Шишкин Н. Д. Модель системы управления комбинированным отоплением теплицы в условиях закрытого грунта на базе микроконтроллера RASPBERRY PI // Вестн. Астрахан. гос. техн. ун-та. Сер.: Управление, вычислительная техника и информатика. 2015. № 2. С. 32-37.</mixed-citation>
     <mixed-citation xml:lang="en">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.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B3">
    <label>3.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Шуршев Т. В. Способ поабзацного ввода числовых значений в массив в языке программирования PYTHON // Информационные технологии и технологии коммуникации: современные достижения: материалы Третьей Междунар. молодеж. конф. (Астрахань, 1-5 октября 2019 г.) [Электронный ресурс]. Астрахань: Изд-во АГТУ, 2019. Режим доступа: 1 электрон. опт. диск (CD-ROM). № гос. регистрации 0322000404.</mixed-citation>
     <mixed-citation xml:lang="en">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.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B4">
    <label>4.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">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. Т. 754. С. 284-301.</mixed-citation>
     <mixed-citation xml:lang="en">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.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B5">
    <label>5.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">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. Т. 466. С. 400-409.</mixed-citation>
     <mixed-citation xml:lang="en">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.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B6">
    <label>6.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Цифровой синтез: практ. курс / под ред. А. Ю. Романова, Ю. В. Панчула. М.: ДМК Пресс, 2020. 556 с.</mixed-citation>
     <mixed-citation xml:lang="en">Cifrovoy sintez: prakt. kurs / pod red. A. Yu. Romanova, Yu. V. Panchula. M.: DMK Press, 2020. 556 s.</mixed-citation>
    </citation-alternatives>
   </ref>
   <ref id="B7">
    <label>7.</label>
    <citation-alternatives>
     <mixed-citation xml:lang="ru">Соловьев В. В. Основы языка проектирования цифровой аппаратуры Verilog. М.: Горячая линия - Телеком, 2015. 206 с.</mixed-citation>
     <mixed-citation xml:lang="en">Solov'ev V. V. Osnovy yazyka proektirovaniya cifrovoy apparatury Verilog. M.: Goryachaya liniya - Telekom, 2015. 206 s.</mixed-citation>
    </citation-alternatives>
   </ref>
  </ref-list>
 </back>
</article>
