1、状态转换图:
2、verilog代码:
`timescale 1ns / 1ps
module Two_st(
input clk, //时钟
input rst_n, //低电平复位(一般FPGA都是低电平吧,特别式altera的FPGA)
input [11:0] d_in,
output reg flag
);
parameter S1 = 2'b00; //3个状态
parameter S2 = 2'b01;
parameter S3 = 2'b10;
parameter A = 100;
reg [3:0] cnt_1; //计数器
reg [3:0] cnt_2;
reg [1:0] state;
reg [11:0] data_in; //习惯性的做一个寄存器寄存
always @(posedge clk or negedge rst_n)begin
if(!rst_n)
data_in <= 1'b0;
else
data_in <= d_in;
end
always @(posedge clk or negedge rst_n)begin
if(!rst_n)
state <= S1