本文为 FPGA 学习总结,欢迎分享交流。
运行环境
- windows10
- Vivado 2018.3
- Modelsim 10.7
状态机是数字逻辑系统的核心,是重要的时序电路。通常包括三个部分:一是下一个状态的逻辑 电路,二是存储状态机当前状态的时序逻辑电路,三是输出组合逻辑电路。状态机的结构如下图:
根据状态机的输出信号是否与电路的输入有关分为 Mealy 型状态机和 Moore 型状态机。电路的输出信号与电路当前状态和电路的输入有关,称为 Mealy 型状态机;电路的输出信号仅与电路当前状态有关,称为 Moore 型状态机。
一段式状态机
// detect1.v
module detect_1(
input clk_i,
input rst_n_i,
output out_o
);
reg out_r;
//状态声明和状态编码
reg [1:0] state;
parameter [1:0] S0=2'b00;
parameter [1:0] S1=2'b01;
parameter [1:0] S2=2'b10;
parameter [1:0] S3=2'b11;
always@(posedge clk_i)
begin
if(!rst_n_i)begin
state<=0;
out_r<=1'b0;
end
else
case(state)
S