有限状态机的设计实验

有限状态机的设计

1.实验目的
(1)掌握有限状态机的写法。
(2)理解三段式与两段式的写法和区别。
2.实验涉及语法
(1)第4章行为级建模的部分语法。
(2)第8章有限状态机的三段式写法。
3.实验内容
本实验要完成一个序列信号检测器,检测信号为 10010,当检测到此序列时输出端口输出高电平,其余时间输出低电平。
4.实验工具:
Modelsim软件和Quartusll软件
5.实验截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.实验代码:
(1)源代码
module s7 (x,z,clk,reset) ;
input x,clk,reset;
output z;
reg z;
reg [2: 0] state,nstate;
parameter s0='d0,s1='d1,s2='d2,s3='d3,s4='d4,s5='d5;
always @ (posedge clk or posedge reset)
begin
if (reset)
state <=s0;
else
state <=nstate;
end
always@ (state or x)
begin
casex (state)
s0:begin
if (x1)
nstate=s1;
else
nstate=s0;
end
s1:begin
if (x
0)
nstate=s2;
else
nstate=s1;
end
s2:begin
if (x0)
nstate=s3;
else
nstate=s1;
end
s3:begin
if (x
0)
nstate=s0;
else
nstate=s4;
end
s4:begin
if (x0)
nstate=s5;
else
nstate=s1;
end
s5:begin
if (x
0)
nstate=s0;
else
nstate=s1;
end
default:nstate=s0;
endcase
end
always@ (posedge clk)
begin
casex (nstate)
s0:z <=0;
s1:z <=0;
s2:z <=0;
s3:z <=0;
s4:z <=0;
s5:z <=1;
default:z <=0;
endcase
end
endmodule
(2)测试代码
module tbs7;
reg x,clk,reset;
wire z;
integer seed=9;
initial clk=0;
always #5 clk=~clk;
initial
begin
reset=0;
#15 reset=1;
#15 reset=0;
end
always
#10 x= {$random (seed) } %2;
s7 mys7 (x,z,clk,reset) ;
endmodule

7.实验视频:
请下载哔哩哔哩动画打开此网址:
https://b23.tv/UpViUe

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值