- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有限状态机的设计PPT
第8章 有限状态机的设计
Verilog HDL数字系统设计及仿真
本章内容
有限状态机的类型
一段式、两段式和三段式状态机写法
状态编码
有限状态机的类型
moore型,也称为摩尔型
mealy型,也称为米利型
moore型红绿灯
状态转换图
模型代码
module trafficlight1(clock,reset,red,yellow,green);
input clock,reset; //输入时钟和复位信号
output red,yellow,green; //输出红黄绿的驱动信号
reg red,yellow,green;
reg [1:0] current_state,next_state;
//保存当前状态和下一状态
parameter red_state=2b00,
yellow_state=2b01,
green_state=2b10,
delay_r2y=4d8,
delay_y2g=4d3,
delay_g2r=4d11; //参数声明
完成状态描述
yellow_state:begin
red=0;
yellow=1;
green=0;
repeat (delay_y2g) @(posedge clock);
next_state=green_state;
end
green_state:begin
red=0;
yellow=0;
green=1;
repeat (delay_g2r) @(posedge clock);
next_state=red_state;
end
default:begin
red=1;
yellow=0;
green=0;
next_state=red_state;
end
endcase
end
endmodule
测试信号
initial clock=0;
always #10 clock=~clock;
initial
begin
reset=1;
#1 reset=0; //产生一个复位信号沿
#10000 reset=1; //主要工作时间
#20 $stop;
end
功能仿真
时序仿真
增加一个可变计数器
always @(posedge clock or posedge reset)
begin
if(reset)
light_count=0;
else if (light_count==light_delay)
//达到规定的计数值light_delay时置1
light_count=1;
else
light_count=light_count+1;
end
case(current_state)
red_state:begin
red=1; yellow=0; green=0;
light_delay=red_delay;
if(light_count==light_delay)
next_state=yellow_state;
end
yellow_state:begin
red=0; yellow=1; green=0;
light_delay=yellow_delay;
if(light_count==light_delay)
next_state=green_state;
end
green_state:begin
文档评论(0)