我是靠谱客的博主 从容期待,最近开发中收集的这篇文章主要介绍FPGA日常1:101序列检测器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

采用三段式状态机,将组合逻辑与时序逻辑分开

第一部分描述状态转移

第二部分描述状态转移条件

第三部分描述输出

module fsm (
input clk,
input rst_n,
input x,
output z
);
reg [1:0]	current_state;
reg [1:0]	nstate;
always @ (posedge clk or negedge rst_n)
if(!rst_n)
current_state<=S0;
else
current_state<=nstate;
parameter S0=4'b0001;
parameter S1=4'b0010;
parameter S2=4'b0100;
parameter S3=4'b1000;
always @(x or current_state) begin
case (current_state)
S0:begin
if(x==1)
nstate<=S1;
else
nstate<=S0;
end
S1:begin
if(x==0)
nstate<=S2;
else
nstate<=S1;
end
S2:begin
if(x==1)
nstate<=S3;
else
nstate<=S0;
end
S3:begin
if(x==1)
nstate<=S1;
else
nstate<=S2;
end
default:begin
nstate<= S0;
end
endcase
end
always@(posedge clk or negedge rst_n)begin
if(!rst_n)begin
z<=1'b0;
end
else begin
if(nstate==S3)
z<=1'b1;
else
z<=1'b0;
end
endmodule

最后

以上就是从容期待为你收集整理的FPGA日常1:101序列检测器的全部内容,希望文章能够帮你解决FPGA日常1:101序列检测器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部