✨你好啊,我是“ 怪& ”,是一名在校大学生哦。
主页链接:怪&的个人博客主页
☀️博文主更方向为:课程学习知识、作业题解、期末备考。随着专业的深入会越来越广哦…一起期待。
❤️一个“不想让我曾没有做好的也成为你的遗憾”的博主。
很高兴与你相遇,一起加油!
三个always语句分别描述
两个always语句分别描述
两个always语句分别描述
一个always描述
module count5(clk,clr,out,count);
input clk,clr;
output count;
out reg[2:0] out;
parameter s0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100; //定义变量
always @(posege clk)
begin
if(clr) out=so; //异步复位
else
case(out) //跳转
s0:out=s1; //cs:ns 现态:次态
s1:out=s2;
s2:out=s3;
s3:out=s4;
s4:out=s0;
default: out=s0; //防止意外
endcase
end
always @(out) //产生输出逻辑
begin
if(out=3'b100) cout=1;
else cout=0;
end
endmodule
(1)、首先画出状态转移图
(2)、根据状态转移图
(3)、编码
module tese_101(clk,clr,x,z);
input x,clk,clr;
output reg z;
parameter S0=2'b00, S1=2'b01,S2=2'b11,S3=2'b10; //<4的状态数量建议以格雷码编码
reg[1:0] CS,NS;
always@(posedge clk or posedge clr) //定义现态(CS)
begin
if(clr) CS=S0; //异步复位
else CS=NS;
end
always@(CS) //定义次态 (NS)
begin
case(CS)
S0:if(x) NS=S1;else NS=S0;
S1:if(x) NS=S1;else NS=S2;
S2:if(x) NS=S3;else NS=S0;
S3:if(x) NS=S1;else NS=S2;
default: NS=S0; //防止意外
endcase
end
always@(CS) //产生输出逻辑
begin
if(CS=S3) z=1;
else z=0;
end
endmodule
将状态转移图画准确,Code部分将迎刃而解
接下来,咱们来练习一下状态转移图的画法把:
今日份运动与家长视频 Date:2022.4.26 ExerciseAndVideo_Time:22:20 Code_Time: 23:58