«…Труд избавляет человека от трех великих зол: скуки, порока, нужды…»

Пример взаимодействующих автоматов

Материал из Wiki
Версия от 19:56, 19 ноября 2017; ANA (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск

[svg]

Содержание

Расширенный вариант графа переходов

[svg]

Очень Расширенный вариант графа переходов

[svg]

Pictures

Граф переходов для 3 потоков

[svg]

Подграф для LastThread

[svg]

Описание примера взаимодействующих автоматов

Пусть имеется multi_fsm - синхронное цифровое устройство, состоящее из нескольких (N) автоматов (запросов) W0, W1,…, WN-1, которые хотят получить доступ к одному и тому автомату (ресурсу) cal_unit. Примером содержательной постановки является доступ к АЛУ от нескольких устройств.

Автоматы-запросы WJ (J=0,…,N-1) не взаимодействуют друг с другом. Каждый из автоматов-запросов WJ связан только с cal_unit. Каждый автомат-запрос имеет вход req и выход ready.

entity fsm_multi is
  generic (
    THREAD_NUMBER : natural := 2;
    REPLY_DELAY   : natural := 3;
    BUS_WIDTH     : natural := 8);
  port (
    req   : in  std_logic_vector(THREAD_NUMBER-1 downto 0);
    ready : out std_logic_vector(THREAD_NUMBER-1 downto 0);
    clk   : in  std_logic;
    rst   : in  std_logic);
 
end fsm_multi;

Будем рассматривать два автомата-запроса W0, W1.

Поведение multi_fsm следующее.

На вход req автомата-запроса WJ поступает сигнал (1) о том, что данный автомат хочет занять ресурс. Если ресурс свободен, то автомат WJ занимает ресурс. Ресурс обрабатывает любой из запросов 3 такта. В этих трех тактах другой автомат-запрос, ждет обработки своего запроса. Если ресурс обработал запрос от одного автомата, то он обрабатывает запрос другого автомата если такой имеется. В начале обработки запрос W0 имеет приоритет – обрабатывается первым, если выставлены два запроса.

Порядок обработки запросов для более, чем 2 автомата ?

Ограничение на подачу запросов. Для любого из каналов запроса: запрос может повториться через 4 ( и более тактов). С каждым из запросов могут быть связаны соответствующие операнды, которые должен обработать ресурс. Следующий запрос не должен повториться, пока не будет обработан поступивший запрос. Таким образом, подача запросов во времени должна быть «осмысленной». Вся цифровая система представляет собой три взаимодействующих конечных автомата. При этом ресурс представляет собой иерархический автомат. В каждом из его внутренних состояний происходит проверка состояния – а именно, какой из автоматов-запросов занимает ресурс.


NEW