Обзор - Что такое конечный автомат FSM
Конечный автомат -конечной State Machine, сокращенно ФШМ, представляет собой математическую модель поведения конечного числа состояний и передачи и действия между ними и другими государствами, широко используется в компьютерной области. FSM обычно содержит несколько элементов: запускающее государственное управление, контроль за состояние, состояние, запускаемого государством для запуска действий.
Ниже это вики об описании конечного автомата, адрес ссылку для конечного автомата-Wiki .
Конечный автомат (FSM) или конечно-автомат ( во множественном числе: автоматы), или просто состояние машины , представляет собой математическую модель вычислений используется для разработки как компьютерные программы и последовательные логические схемы. Она задумана как абстрактная машина , которая может находиться в одном из конечного числа состояний. Машина находится только в одном состоянии одновременно; состояние это в любой момент времени, называется текущим. Она может меняться от одного состояния в другое , когда инициируется инициирующего события или состояния; это называется переходом. Особый FSM определяется списком своих состояний, и запускающим условием для каждого перехода.
Две формы FSM
Для ПЛИС аппаратной схемы, независимо от того, каких конечного автомата, мы предполагаем, что Р является функцией от текущего состояния и входных сигналов. Конечный автомат выводятся, G является функцией текущего состояния и входной сигнал, подаваемый на выходной сигнал комбинационной логики Г. Тогда для логики государственной машины, она может быть выражена следующим образом:
下一个状态 = F(当前状态,输入信号);
输出信号 = G(当前状态,输入信号);
В государственной машине, на основе отношений мы сформулируем производительность машины и ввод государственной машины делятся на две модель, которые являются автоматы Мили и Мура состояния машины. Подробное ниже этих двух частей.
состояние машины Мур
Мур государственная машина является последовательной логикой вывод зависит только от текущего состояния государственного типа машины. В это время, выражение выхода 输出信号 = G(当前状态,输入信号);
этого.
Мур государственная структура синхронизации часов машина, как показано ниже, может быть видно из фиг логического G, выход которого определяется только текущим состоянием.
Мили состояние машины
Мили состояния машины является последовательным логическим выход зависит не только от государства , но и на входе государственного типа машины. В это время, выход конечного автомата, экспрессия которого 输出信号 = G(当前状态,输入信号);
это.
Мучнистый структура синхронизации состояния машины часов, как показано ниже, может быть видно из фиг логического G, выход которого определяется входом и с текущим состоянием.
Мур против государственной машины Мили
Мили машина, чем машина Мура «в ответ» быстро.
Мили машина с выходом текущего состояния и входных данных, в то время как только машина выходы Moore, связанные с текущим состоянием. Мили машина вход немедленного отклика в текущем цикле, Moore вход машины влияет на следующее состояние, следующее состояние путем воздействия на выходе. Мили машина, чем это конец выходной последовательности перед машинным циклом Мура, то есть «скорость реакции» быстро. Мучнистая производительность машины в текущем цикле, более длинный путь (комбинаторная логика); Мур машиной выход, имеющая период времени задержки, тактовая синхронизация легко доступна, Мур машина с хорошей синхронизацией.
Менее Мили состояние машины, Мур машина структура проста.
Поскольку выход только текущего состояния машины Мура, связанного с выходом соответствует состоянию, Мур машина имеет больше состояний. Между Мили и Мура машины может быть преобразован друг в друг, для каждой машины Мили, Мур машина имеет эквивалент, верхний предел количества конечного автомата Мура и выходную произведению числа, соответствующее Миля автомата.
Конечный автомат, чтобы вызвать реакцию числа, Мили автоматов с меньшим, с меньшим пусковым механизмом для этой цели.
Мур и мучнистые машины состояния взаимообмен
Для данных последовательных логических функций могут быть реализованы с помощью аппарата Мили, Мура машина может быть реализована. Характеристики цикла машины Мура, чем в обратном направлении выходной Мили машина, преобразование между двумя машинами состояния может быть реализованы. Преобразование машины подхода Муры является мучнистой машиной, выходного состояние вторичного тока, соответствующим для изменения состояния выхода, состояние одновременных их эквивалентным количеством свойств. Мили машины для преобразования машины подхода Муры является изменение выходного сигнала текущего состояния соответствующего выходным подсостояния, при добавлении определенного статуса. Как показано ниже, Мучнистый состояние карта преобразуется в Мура автомата, показанного на фиг.
Как было показано выше, преобразование типа машина Мучнистой является типом машины Мура, до тех пор, как выходной ток изменяется на следующее выходное время. Для состояния А, существуют четыре стрелка, указывающая на то, четыре состояния могут быть выражены в следующее состояние в текущем состоянии A, выходы тока одновременно 0, 0 может перемещаться внутри состояния A, показывает состояние, в машине Moore а 0 выводится. Кроме того, она может быть смещена соответственно 0 состояние B / C. Но для состояния D, есть две стрелки, указывающие и имеют различные выходные значения должны утверждать D разлагается на два состояния D1 и D2 (каждое состояние соответствует выходному сигналу, когда выходной сигнал различного статуса указывает нужно использовать разные, то есть он является причина Мур машина имеет больше состояний), чтобы получить полный Moore машины модели государства.
Точно так же, если машина Мур конверсии фиг Мили машины, Мур машина, до тех пор, как выход следующего состояния меняется на текущее состояние выхода машины Мили, так как D1 / D2 в два состояния состояния в А / С между ними, эквивалентными и эквивалент узла между узлом A / C может D1 / D2 объединены в два-государственного статуса в.
Государственные принципы проектирования машины
Мур машина и реализация Мучнистый машина схемы две различные формы синхронной последовательной логической схемы, никакой функциональной разницы между ними, и могут быть преобразованы друг к другу. стабильная выходная последовательность типа цепи Мур, выходная последовательность раннего Мур Мучнистый Тип цепи схема генерации тактового цикла. В конструкции синхронизации, в соответствии с фактическими потребностями, связывающие характеристики двух цепей выбраны.
Для последовательной схемы счетчика общего счетчика состояния был зафиксирован, независимо от типа или типа Мили схемы Мура, одной и те же сложностей.
В выборе типа конструкции синхронизации цепи Принцип схемы типа Мили и Мура: когда требуемая мощность и требуемое быстрое реагирование на входную схему как можно более простое, выбор типа Мили цепи. Когда на выходе стабильных требований к синхронизации, выходная последовательность может принять один цикл позднее, и выбор типа цепи Мур без увеличения сложности схемы, соответствующий выбранного типа схемы Мур.
состояние машины Мур
3-ступенчатый конечный автомат (рекомендуется)
A - Нормальная
// 第一个always块,描述当前状态的状态寄存器,non-blocking
always @ (posedge clk or negedge rst_n) begin
if (!rst_n)
curr_state <= idle;
else
curr_state <= next_state;
end
// 第二个always块,描述状态转移,即下一状态的状态寄存器,blocking
always @ (*) begin
next_state = idle; // 初始化
case (curr_state)
idle: begin
if (...)
next_state = sx;
else
next_state = sy;
end
...
default:
next_state = sz;
endcase
end
// 第三个always块,组合逻辑描述输出,blocking
always @ (*) begin
if (!rst_n) begin
o1 = 1'b0;
end
else begin
case (curr_state)
s1: begin
o1 = 1'b1;
end
...
default: begin
o1 = 1'b0;
end
endcase
end
end
В - улучшена
// 第三个always块,时序逻辑描述输出,non-blocking
// 此时为时序逻辑
always @ (posedge clk or negedge rst_n) begin
if (!rst_n) begin
o1 <= 1'b0;
end
else begin
case (curr_state) // 注意此处为当前状态
s1: begin
o1 <= 1'b1;
end
...
default: begin
o1 <= 1'b0;
end
endcase
end
end
С - улучшена
// 第三个always块,时序逻辑描述输出,non-blocking
// 此时为时序逻辑
always @ (posedge clk or negedge rst_n) begin
if (!rst_n) begin
o1 <= 1'b0;
end
else begin
case (next_state) // 注意此处为前一状态
s1: begin
o1 <= 1'b1;
end
...
default: begin
o1 <= 1'b0;
end
endcase
end
end