Выпуск #3/2023
А. Строгонов
ПРОЕКТИРОВАНИЕ КОНЕЧНЫХ АВТОМАТОВ В ПРИЛОЖЕНИИ STATEFLOW СИСТЕМЫ MATLAB / SIMULINK С ПОСЛЕДУЮЩЕЙ РЕАЛИЗАЦИЕЙ В БАЗИСЕ ПЛИС
ПРОЕКТИРОВАНИЕ КОНЕЧНЫХ АВТОМАТОВ В ПРИЛОЖЕНИИ STATEFLOW СИСТЕМЫ MATLAB / SIMULINK С ПОСЛЕДУЮЩЕЙ РЕАЛИЗАЦИЕЙ В БАЗИСЕ ПЛИС
Просмотры: 786
DOI: 10.22184/1992-4178.2023.224.3.134.146
В статье описан пример проектирования конечных автоматов в приложении Stateflow системы визуально-имитационного моделирования Matlab/Simulink с последующей генерацией HDL-кода.
В статье описан пример проектирования конечных автоматов в приложении Stateflow системы визуально-имитационного моделирования Matlab/Simulink с последующей генерацией HDL-кода.
Теги: finite-state machine fpga matlab/simulink mealy machine moore machine ohe method risc-v architecture stateflow diagram stateflow-диаграмма автомат мили автомат мура архитектура risc-v конечный автомат метод ohe плис
Проектирование конечных автоматов в приложении Stateflow системы Matlab / Simulink с последующей реализацией в базисе ПЛИС
А. Строгонов, д. т. н.
Отечественные разработчики ЭКБ сделали ставку на развитие в России архитектуры RISC-V – нового открытого стандарта системы команд и архитектуры процессоров, создав ассоциацию разработчиков на RISC-V. RISC-V является развитием архитектуры MIPS, основным функциональным блоком которой является конечный автомат для формирования сигналов управления мультиплексорами и сигналов разрешения записи в регистры тракта данных. В статье описан пример проектирования конечных автоматов в приложении Stateflow системы визуально-имитационного моделирования Matlab/Simulink с последующей генерацией HDL-кода.
В ассоциацию разработчиков на RISC-V вошли производитель серверов и систем хранения данных Yadro («КНС групп»), разработчик процессоров «Байкал Электроникс», разработчик ОС Astra Linux группа компаний «Астра», разработчик технологической программно-аппаратной платформы «Восток» и НИУ МИЭТ. При участии НИУ МИЭТ была создана ассоциации вузов ЭКБ, целью которой является изучение архитектуры RISC-V в России в условиях санкционного давления. Кроме того, в Сколково на базе курса MIT создана Школа синтеза цифровых схем для быстрого освоения современных подходов к проектированию цифровых ИС, в частности микропроцессорных ядер с архитектурой RISC-V, построенных на конечных автоматах. Углубленное изучение обработки потока команд с помощью управляющего автомата возможно путем его визуализации, например в системе Matlab/Simulink, с последующей генерацией HDL-кода.
Система визуально-имитационного моделирования Matlab/Simulink содержит встроенный генератор кода языка описания аппаратных средств HDL (Simulink HDL Coder). Simulink HDL Coder – программный продукт для генерации VHDL-кода без привязки к конкретной архитектуре ПЛИС и платформе по Simulink-моделям и граф-автоматам (Stateflow-диаграммы). Предлагается сравнить VHDL-коды конечного автомата, извлеченные в автоматическом режиме с помощью Simulink HDL Coder и редактора состояний конечного автомата (State Machine Viewer) САПР Quartus II на примере граф-автомата, рассмотренного в работе [1], который стал эталонным примером по синтезу конечных автоматов в документациях САПР Xilinx с применением метода OHE. Поддержка метода кодирования с одним активным состоянием реализована во всех САПР ПЛИС [2–5].
Метод OHE (one-hot encoding) получил такое название потому, что в каждый конкретный момент времени активным (hot) может быть только один триггер состояния. Применение метода ОНЕ для ПЛИС типа ППВМ (FPGA) наиболее перспективно. Метод ОНЕ применительно к ПЛИС типа ППВМ дает возможность строить конечные автоматы, которые в общем случае требуют меньших ресурсов и отличаются более высокими скоростными показателями, чем аналогичные конечные автоматы с двоичным кодированием состояний. Повышенное быстродействие по методу ОНЕ обеспечивается меньшим числом уровней логики между рабочими фронтами синхросигналов, чем в случае двоичного кодирования. Логические схемы при этом упрощаются, поскольку метод ОНЕ практически не требует логики декодирования состояний. Получающийся в результате построения конечного автомата набор триггеров похож на структуру типа сдвигового регистра.
Быстродействие конечного автомата типа ОНЕ остается постоянным с увеличением числа состояний. И напротив, быстродействие конечного автомата с высокой степенью кодирования состояний снижается с увеличением количества состояний, поскольку в этом случае для декодирования требуется большее число уровней логики с большим числом линий.
Граф-автомат на семь состояний из работы [1] показан на рис. 1. Реализуем этот автомат в приложении Stateflow системы Matlab/Simulink.
На рис. 2 показан испытательный стенд для трех автоматов: автомат Мура с использованием триггерного входа Data, на который подается синхросигнал clk (а); автомат Мура без триггерного входа (б) и автомат Мили с триггерным входом (в). Генератор сигналов создан с помощью функционального блока Signal Builder библиотеки Simulink/Sources, а автомат с помощью блока Chart приложения Stateflow.
StateFlow-диаграмма строится из отдельных объектов, таких как состояние, переход, переход по умолчанию и др. На рис. 3 демонстрируется граф-автомат Мура с триггерным входом. По переднему фронту (Rising Edge) на триггерном входе Data (событие переключения, событием называется наступление некоторого факта, инициирующего переход – изменение состояния объекта) происходит переключение между состояниями при выполнении определенных условий. На вход автомата подаются информационные сигналы A, B, C, D, E и синхросигнал Clk, которые формируются с помощью генератора сигналов. Выходными сигналами автомата являются сигналы Multi, Contig и Single.
Переход – это линия со стрелкой, соединяющая один графический объект с другим. В большинстве случаев переход представляет скачок системы из одного режима (состояния) в другой. Переход соединяет объект-источник с объектом-адресатом. Объект-источник – место, где переход начинается, объект-адресат – место, где переход заканчивается.
Переходы между состояниями имеют события переключения, условия, действия условий и действия переходов. Состояния могут иметь действия при входе в состояние, во время активности состояния, действия при выходе из состояния и при наступлении события с именем event_name.
Условия – это булевы выражения, которые должны быть истинны для осуществления перехода. Условия заключаются в квадратные скобки ([]). Действия условий следуют за условиями и заключаются в фигурные скобки ({}). Они выполняются тогда, когда условие становится истинным, но перед тем, как переход осуществится. Действия перехода выполняются после того, как переход стал возможен и при истинности условия, если оно определено. Действия перехода обозначаются символом (\).
Например, для автомата Мура с триггерным входом Data переход из состояния 1 (S1) в cостояние 4 (S4) может быть записан так: Data[A&&B&&~C], где Data – входное событие переключения, а [A&&B&&~C] – условие переключения. В cостоянии 4 (S4) автомат формирует выходные сигналы Multi=1; Contig=1; Single=0. На рис. 4 показан автомат Мили с триггерным входом. Переход из состояния 1 (S1) в cостояние 4 (S4) может быть записан так:
[A&&B&&~C]{Multi=1; Contig=1; Single=0}.
На переходах графа (см. рис. 3) событие переключения Data явно не указывается. Входное событие переключения задано с помощью меню Chart/Add Inputs & Outputs/Event Input from Simulink. Это можно проверить с помощью проводника модели. Таким образом, граф-автомат на рис. 3 может быть использован и для автомата Мура без триггерного входа.
При выборе параметров расчета с помощью проводника модели (Model Explorer) необходимо указать способ моделирования (Type) и метод расчета нового состояния системы. Для параметра Type доступны два варианта моделирования систем – c фиксированным (Fixed-step) или с переменным (Variable-step) шагом.
Выберем в настройках Solver (установка параметров расчета модели) вариант с дискретным шагом Fixed-step/Discrete. Это необходимо, чтобы для автомата Мура без триггерного входа правильно отображались временные диаграммы его работы. Для двух других автоматов можно использовать способ моделирования с переменным шагом Variable-step/Ode45.
Входные сигналы, созданные с помощью генератора сигналов, и результаты имитационного моделирования показаны на рис. 5. Временные диаграммы на рис. 5б и 5г показывают, что добавление триггерного входа в автоматы Мура или Мили в системе Matlab/Simulink позволяет построить синхронные конечные автоматы, в которых для перехода между состояниями требуется наличие синхросигнала. А рис. 5в демонстрирует работу асинхронного конечного автомата, в котором переходы по состояниям осуществляются по изменению уровней сигналов на его входах.
Для того чтобы извлечь VHDL-код из диаграммы переходов, необходимо в свойствах диаграммы Properties (правый клик мышки) в поле Execute (Enter) Chart At Initialization поставить галочку. Удалить генератор сигналов и монитор, так как из них VHDL-код не извлекается, подготовить порты для модели и настроить генератор кода языка VHDL в меню HDL coder (рис. 6). Установить атрибуты сигналов входных портов Clk, A, B, C, D и E: Boolean, а выходных портов Inherit: auto (double).
Сгенерированный в автоматическом режиме код (AVT_Moore.vhd) сразу использовать не получится из-за того, что тип double-сигналов выходных портов заменяется на тип real. Код необходимо отредактировать.
Для того чтобы на базе этого кода создать проект в САПР Quartus II, необходимо тип real заменить на тип std_logic и при этом также обеспечить замену 0.0 на „0“ и 1.0 на „1“. А также добавить в проект пакет (для обозначения пакета используется имя модели автомата, например файл mealy1_4_pkg.vhd) c перечисляемым типом данных (рис. 7).
Перечисляемый тип – это такой тип данных, при котором количество всех возможных состояний конечно. Такой тип наиболее часто используется для обозначений состояний конечных автоматов. Любой перечисляемый тип имеет внутреннюю нумерацию: первый элемент всегда имеет номер 0, второй – 1 и т. д.
Анализ полученного VHDL-кода показывает, что используется как триггерный вход Data, так и отдельный вход для подачи синхросигнала clk (рис. 8). На рис. 9а показано RTL-представление автомата Мура с триггерным входом, а на рис. 9б, в и г – оптимизированная диаграмма переходов, условия переходов и таблица переходов. Добавление в проект триггерного входа Data приводит к появлению дополнительного сигнала enb_gated во всех условиях переходов (рис. 9в). Например, переход из S1 в S4 возможен, когда (! C).(A).(B).(enb_gated), таким образом, enb_gated является синхронным сигналом разрешения логики переходов и логики формирования триггерных выходных сигналов с мультиплексированием.
Таблица переходов демонстрирует использование метода OHE. По умолчанию в настройках САПР Quartus II в категории Analysis & Synthesis Settings /More Settings в разделе State Machine Processing задан режим Auto.
На рис. 10 (переходы по состояниям 1, 2, 4, 5, 6, 7 и 1) и рис. 11 (переходы по состояниям 1, 4, 5, 6, 7 и 1) показаны временные диаграммы работы автомата Мура с триггерным входом Data. Полученные диаграммы подтверждают правильность его работы.
Рассмотрим проектирование конечного автомата с использованием редактора состояний САПР Quartus II, построенного по рис. 1. На рис. 12 показано RTL-представление двух автоматов в САПР Quartus II. Логика переходов и память состояний реализованы в блоках is_AVT_Moore_no_Event и fstate, а логика формирования выходных сигналов построена на комбинационных элементах. На рис. 12а автомат построен по VHDL-коду, полученному с помощью Simulink HDL Coder из автомата Мура без триггерного входа Data (см. рис. 2б), а на рис. 12б автомат построен по VHDL-коду, полученному с помощью встроенного редактора состояний САПР Quartus II (рис. 13).
Сравнивая RTL-представления и временные диаграммы работы двух автоматов, убеждаемся, что они синтезированы и работают идентично (рис. 14), а сгенерированные VHDL-коды практически не отличаются друг от друга (рис. 15).
Реализуем по отдельности два автомата в базис ПЛИС Cyclone V 5CGXFC7C7F23C8 и оценим задействованные ресурсы. Результаты представлены в табл. 1 (метод кодирования OHE). Можно сделать вывод, что VHDL-код, сгенерированный с помощью Simulink HDL Coder из автомата Мура без триггерного входа, получается более избыточным, что сказывается на количестве задействованных логических ресурсов для реализации комбинационной логики и приводит к снижению рабочей частоты проекта.
Заключение
Приложение Stateflow системы Matlab/Simulink поддерживает разработку как синхронных, так и асинхронных конечных автоматов, а применение Simulink HDL Coder позволяет сгенерировать VHDL-код синхронного конечного автомата. В совокупности это дает возможность ускорить процесс разработки сложных конечных автоматов без сбоев для реализации их в базисе ПЛИС.
ЛИТЕРАТУРА
Knapp S. K. Accelerate FPGA macros with one-hot approach // ED, 1990, no. 17, pp. 65–71.
Строгонов А. В. Проектирование конечных автоматов по методу OHE // Компоненты и технологии. 2007. № 10. С. 124–129.
Строгонов А. В., Быстрицкий А. В. Эффективность разработки конечных автоматов в базисе ПЛИС FPGA // Компоненты и технологии. 2013. № 1. С. 66–72.
Строгонов А. В. Проектирование цифровых автоматов с использованием системы Matlab/Simulink // Компоненты и технологии. 2008. № 4. С. 149–152.
Строгонов А. В., Цыбин С. А., Городков П. С. Проектирование конечных автоматов с использованием пакетов расширения Stateflow и Xilinx System Generator системы Matlab/Simulink // Компоненты и технологии. 2015. № 8. С. 120–127.
А. Строгонов, д. т. н.
Отечественные разработчики ЭКБ сделали ставку на развитие в России архитектуры RISC-V – нового открытого стандарта системы команд и архитектуры процессоров, создав ассоциацию разработчиков на RISC-V. RISC-V является развитием архитектуры MIPS, основным функциональным блоком которой является конечный автомат для формирования сигналов управления мультиплексорами и сигналов разрешения записи в регистры тракта данных. В статье описан пример проектирования конечных автоматов в приложении Stateflow системы визуально-имитационного моделирования Matlab/Simulink с последующей генерацией HDL-кода.
В ассоциацию разработчиков на RISC-V вошли производитель серверов и систем хранения данных Yadro («КНС групп»), разработчик процессоров «Байкал Электроникс», разработчик ОС Astra Linux группа компаний «Астра», разработчик технологической программно-аппаратной платформы «Восток» и НИУ МИЭТ. При участии НИУ МИЭТ была создана ассоциации вузов ЭКБ, целью которой является изучение архитектуры RISC-V в России в условиях санкционного давления. Кроме того, в Сколково на базе курса MIT создана Школа синтеза цифровых схем для быстрого освоения современных подходов к проектированию цифровых ИС, в частности микропроцессорных ядер с архитектурой RISC-V, построенных на конечных автоматах. Углубленное изучение обработки потока команд с помощью управляющего автомата возможно путем его визуализации, например в системе Matlab/Simulink, с последующей генерацией HDL-кода.
Система визуально-имитационного моделирования Matlab/Simulink содержит встроенный генератор кода языка описания аппаратных средств HDL (Simulink HDL Coder). Simulink HDL Coder – программный продукт для генерации VHDL-кода без привязки к конкретной архитектуре ПЛИС и платформе по Simulink-моделям и граф-автоматам (Stateflow-диаграммы). Предлагается сравнить VHDL-коды конечного автомата, извлеченные в автоматическом режиме с помощью Simulink HDL Coder и редактора состояний конечного автомата (State Machine Viewer) САПР Quartus II на примере граф-автомата, рассмотренного в работе [1], который стал эталонным примером по синтезу конечных автоматов в документациях САПР Xilinx с применением метода OHE. Поддержка метода кодирования с одним активным состоянием реализована во всех САПР ПЛИС [2–5].
Метод OHE (one-hot encoding) получил такое название потому, что в каждый конкретный момент времени активным (hot) может быть только один триггер состояния. Применение метода ОНЕ для ПЛИС типа ППВМ (FPGA) наиболее перспективно. Метод ОНЕ применительно к ПЛИС типа ППВМ дает возможность строить конечные автоматы, которые в общем случае требуют меньших ресурсов и отличаются более высокими скоростными показателями, чем аналогичные конечные автоматы с двоичным кодированием состояний. Повышенное быстродействие по методу ОНЕ обеспечивается меньшим числом уровней логики между рабочими фронтами синхросигналов, чем в случае двоичного кодирования. Логические схемы при этом упрощаются, поскольку метод ОНЕ практически не требует логики декодирования состояний. Получающийся в результате построения конечного автомата набор триггеров похож на структуру типа сдвигового регистра.
Быстродействие конечного автомата типа ОНЕ остается постоянным с увеличением числа состояний. И напротив, быстродействие конечного автомата с высокой степенью кодирования состояний снижается с увеличением количества состояний, поскольку в этом случае для декодирования требуется большее число уровней логики с большим числом линий.
Граф-автомат на семь состояний из работы [1] показан на рис. 1. Реализуем этот автомат в приложении Stateflow системы Matlab/Simulink.
На рис. 2 показан испытательный стенд для трех автоматов: автомат Мура с использованием триггерного входа Data, на который подается синхросигнал clk (а); автомат Мура без триггерного входа (б) и автомат Мили с триггерным входом (в). Генератор сигналов создан с помощью функционального блока Signal Builder библиотеки Simulink/Sources, а автомат с помощью блока Chart приложения Stateflow.
StateFlow-диаграмма строится из отдельных объектов, таких как состояние, переход, переход по умолчанию и др. На рис. 3 демонстрируется граф-автомат Мура с триггерным входом. По переднему фронту (Rising Edge) на триггерном входе Data (событие переключения, событием называется наступление некоторого факта, инициирующего переход – изменение состояния объекта) происходит переключение между состояниями при выполнении определенных условий. На вход автомата подаются информационные сигналы A, B, C, D, E и синхросигнал Clk, которые формируются с помощью генератора сигналов. Выходными сигналами автомата являются сигналы Multi, Contig и Single.
Переход – это линия со стрелкой, соединяющая один графический объект с другим. В большинстве случаев переход представляет скачок системы из одного режима (состояния) в другой. Переход соединяет объект-источник с объектом-адресатом. Объект-источник – место, где переход начинается, объект-адресат – место, где переход заканчивается.
Переходы между состояниями имеют события переключения, условия, действия условий и действия переходов. Состояния могут иметь действия при входе в состояние, во время активности состояния, действия при выходе из состояния и при наступлении события с именем event_name.
Условия – это булевы выражения, которые должны быть истинны для осуществления перехода. Условия заключаются в квадратные скобки ([]). Действия условий следуют за условиями и заключаются в фигурные скобки ({}). Они выполняются тогда, когда условие становится истинным, но перед тем, как переход осуществится. Действия перехода выполняются после того, как переход стал возможен и при истинности условия, если оно определено. Действия перехода обозначаются символом (\).
Например, для автомата Мура с триггерным входом Data переход из состояния 1 (S1) в cостояние 4 (S4) может быть записан так: Data[A&&B&&~C], где Data – входное событие переключения, а [A&&B&&~C] – условие переключения. В cостоянии 4 (S4) автомат формирует выходные сигналы Multi=1; Contig=1; Single=0. На рис. 4 показан автомат Мили с триггерным входом. Переход из состояния 1 (S1) в cостояние 4 (S4) может быть записан так:
[A&&B&&~C]{Multi=1; Contig=1; Single=0}.
На переходах графа (см. рис. 3) событие переключения Data явно не указывается. Входное событие переключения задано с помощью меню Chart/Add Inputs & Outputs/Event Input from Simulink. Это можно проверить с помощью проводника модели. Таким образом, граф-автомат на рис. 3 может быть использован и для автомата Мура без триггерного входа.
При выборе параметров расчета с помощью проводника модели (Model Explorer) необходимо указать способ моделирования (Type) и метод расчета нового состояния системы. Для параметра Type доступны два варианта моделирования систем – c фиксированным (Fixed-step) или с переменным (Variable-step) шагом.
Выберем в настройках Solver (установка параметров расчета модели) вариант с дискретным шагом Fixed-step/Discrete. Это необходимо, чтобы для автомата Мура без триггерного входа правильно отображались временные диаграммы его работы. Для двух других автоматов можно использовать способ моделирования с переменным шагом Variable-step/Ode45.
Входные сигналы, созданные с помощью генератора сигналов, и результаты имитационного моделирования показаны на рис. 5. Временные диаграммы на рис. 5б и 5г показывают, что добавление триггерного входа в автоматы Мура или Мили в системе Matlab/Simulink позволяет построить синхронные конечные автоматы, в которых для перехода между состояниями требуется наличие синхросигнала. А рис. 5в демонстрирует работу асинхронного конечного автомата, в котором переходы по состояниям осуществляются по изменению уровней сигналов на его входах.
Для того чтобы извлечь VHDL-код из диаграммы переходов, необходимо в свойствах диаграммы Properties (правый клик мышки) в поле Execute (Enter) Chart At Initialization поставить галочку. Удалить генератор сигналов и монитор, так как из них VHDL-код не извлекается, подготовить порты для модели и настроить генератор кода языка VHDL в меню HDL coder (рис. 6). Установить атрибуты сигналов входных портов Clk, A, B, C, D и E: Boolean, а выходных портов Inherit: auto (double).
Сгенерированный в автоматическом режиме код (AVT_Moore.vhd) сразу использовать не получится из-за того, что тип double-сигналов выходных портов заменяется на тип real. Код необходимо отредактировать.
Для того чтобы на базе этого кода создать проект в САПР Quartus II, необходимо тип real заменить на тип std_logic и при этом также обеспечить замену 0.0 на „0“ и 1.0 на „1“. А также добавить в проект пакет (для обозначения пакета используется имя модели автомата, например файл mealy1_4_pkg.vhd) c перечисляемым типом данных (рис. 7).
Перечисляемый тип – это такой тип данных, при котором количество всех возможных состояний конечно. Такой тип наиболее часто используется для обозначений состояний конечных автоматов. Любой перечисляемый тип имеет внутреннюю нумерацию: первый элемент всегда имеет номер 0, второй – 1 и т. д.
Анализ полученного VHDL-кода показывает, что используется как триггерный вход Data, так и отдельный вход для подачи синхросигнала clk (рис. 8). На рис. 9а показано RTL-представление автомата Мура с триггерным входом, а на рис. 9б, в и г – оптимизированная диаграмма переходов, условия переходов и таблица переходов. Добавление в проект триггерного входа Data приводит к появлению дополнительного сигнала enb_gated во всех условиях переходов (рис. 9в). Например, переход из S1 в S4 возможен, когда (! C).(A).(B).(enb_gated), таким образом, enb_gated является синхронным сигналом разрешения логики переходов и логики формирования триггерных выходных сигналов с мультиплексированием.
Таблица переходов демонстрирует использование метода OHE. По умолчанию в настройках САПР Quartus II в категории Analysis & Synthesis Settings /More Settings в разделе State Machine Processing задан режим Auto.
На рис. 10 (переходы по состояниям 1, 2, 4, 5, 6, 7 и 1) и рис. 11 (переходы по состояниям 1, 4, 5, 6, 7 и 1) показаны временные диаграммы работы автомата Мура с триггерным входом Data. Полученные диаграммы подтверждают правильность его работы.
Рассмотрим проектирование конечного автомата с использованием редактора состояний САПР Quartus II, построенного по рис. 1. На рис. 12 показано RTL-представление двух автоматов в САПР Quartus II. Логика переходов и память состояний реализованы в блоках is_AVT_Moore_no_Event и fstate, а логика формирования выходных сигналов построена на комбинационных элементах. На рис. 12а автомат построен по VHDL-коду, полученному с помощью Simulink HDL Coder из автомата Мура без триггерного входа Data (см. рис. 2б), а на рис. 12б автомат построен по VHDL-коду, полученному с помощью встроенного редактора состояний САПР Quartus II (рис. 13).
Сравнивая RTL-представления и временные диаграммы работы двух автоматов, убеждаемся, что они синтезированы и работают идентично (рис. 14), а сгенерированные VHDL-коды практически не отличаются друг от друга (рис. 15).
Реализуем по отдельности два автомата в базис ПЛИС Cyclone V 5CGXFC7C7F23C8 и оценим задействованные ресурсы. Результаты представлены в табл. 1 (метод кодирования OHE). Можно сделать вывод, что VHDL-код, сгенерированный с помощью Simulink HDL Coder из автомата Мура без триггерного входа, получается более избыточным, что сказывается на количестве задействованных логических ресурсов для реализации комбинационной логики и приводит к снижению рабочей частоты проекта.
Заключение
Приложение Stateflow системы Matlab/Simulink поддерживает разработку как синхронных, так и асинхронных конечных автоматов, а применение Simulink HDL Coder позволяет сгенерировать VHDL-код синхронного конечного автомата. В совокупности это дает возможность ускорить процесс разработки сложных конечных автоматов без сбоев для реализации их в базисе ПЛИС.
ЛИТЕРАТУРА
Knapp S. K. Accelerate FPGA macros with one-hot approach // ED, 1990, no. 17, pp. 65–71.
Строгонов А. В. Проектирование конечных автоматов по методу OHE // Компоненты и технологии. 2007. № 10. С. 124–129.
Строгонов А. В., Быстрицкий А. В. Эффективность разработки конечных автоматов в базисе ПЛИС FPGA // Компоненты и технологии. 2013. № 1. С. 66–72.
Строгонов А. В. Проектирование цифровых автоматов с использованием системы Matlab/Simulink // Компоненты и технологии. 2008. № 4. С. 149–152.
Строгонов А. В., Цыбин С. А., Городков П. С. Проектирование конечных автоматов с использованием пакетов расширения Stateflow и Xilinx System Generator системы Matlab/Simulink // Компоненты и технологии. 2015. № 8. С. 120–127.
Отзывы читателей