verilog经典三段式状态机设计实例

上传人:hs****ma 文档编号:510642480 上传时间:2023-01-30 格式:DOC 页数:7 大小:116.50KB
返回 下载 相关 举报
verilog经典三段式状态机设计实例_第1页
第1页 / 共7页
verilog经典三段式状态机设计实例_第2页
第2页 / 共7页
verilog经典三段式状态机设计实例_第3页
第3页 / 共7页
verilog经典三段式状态机设计实例_第4页
第4页 / 共7页
verilog经典三段式状态机设计实例_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《verilog经典三段式状态机设计实例》由会员分享,可在线阅读,更多相关《verilog经典三段式状态机设计实例(7页珍藏版)》请在金锄头文库上搜索。

1、Moore型verilog源代码:FSM实现10010串的检测Moore状态转移图modulemoorefsm(clk,rst,a,z);inputclk,rst;inputa;outputz;regz;reg3:0currentstate,nextstate;parameterS0=4b0000;parameterS1=4b0001;parameterS2=4b0010;parameterS3=4b0011;parameterS4=4b0100;parameterS5=4b0101;always(posedgeclkornegedgerst)beginif(!rst)currentstate

2、=S0;elsecurrentstate=nextstate;endalways(currentstateoraorrst)beginif(!rst)nextstate=S0;elsecase(currentstate)S0:nextstate=(a=1)?S1:S0;S1:nextstate=(a=0)?S2:S1;S2:nextstate=(a=0)?S3:S1;S3:nextstate=(a=1)?S4:S0;S4:nextstate=(a=0)?S5:S1;S5:nextstate=(a=0)?S3:S1;default:nextstate=S0;endcaseendalways(rs

3、torcurrentstate)beginif(!rst)z=0;elsecase(currentstate)S0:z=0;S1:z=0;S2:z=0;S3:z=0;S4:z=0;S5:z=1;default:z=0;endcaseendendmodulemoorefsm测试模块testbenchmoduletb_fsm;regclk,rst;rega;wirez;moorefsmfsm(.clk(clk),.rst(rst),.a(a),.z(z);initialbeginclk=0;rst=1;#5rst=0;#3rst=1;#20a=1;#100a=1;#100a=0;#100a=0;#

4、100a=1;#100a=0;#100a=0;#100a=1;#100a=0;#100a=0;#100a=0;#100a=0;#100a=1;#100a=0;#100a=0;#100a=1;#100a=0;#100a=1;#100a=0;endalways#50elk=clk;endmoduleMealy型verilog源代码:FSM实现10010串的检测modulemealyfsm(clk,rst,a,z);Mealy状态转移图inputclk;inputrst;inputa;outputz;regz;reg3:0temp_z;reg3:0currentstate,nextstate;par

5、ameterS0=4b0000;parameterS1=4b0001;parameterS2=4b0010;parameterS3=4b0011;parameterS4=4b0100;always(posedgeclkornegedgerst)if(!rst)currentstate=S0;elsecurrentstate=nextstate;always(currentstateoraorrst)if(!rst)nextstate=S0;elsecase(currentstate)S0:nextstate=(a=1)?S1:S0;S1:nextstate=(a=0)?S2:S1;S2:nex

6、tstate=(a=0)?S3:S1;S3:nextstate=(a=1)?S4:S0;S4:nextstate=(a=0)?S2:S0;default:nextstate=S0;endcasealways(rstorcurrentstateora)if(!rst)temp_z=0;elsecase(currentstate)S0:temp_z=0;S1:temp_z=0;S2:temp_z=0;S3:temp_z=0;S4:temp_z=(a=0)?1:0;default:temp_z=0;endcasealways(posedgeclkornegedgerst)if(!rst)z=0;el

7、sebeginif(temp_z=1)&(nextstate=S2)z=1;elsez=0;endendmodulemealyfsm测试模块testbenchmoduletb_fsm;regclk,rst;rega;wirez;mealyfsmfsm(.clk(clk),.rst(rst),.a(a),.z(z);initialbeginclk=0;rst=1;#5rst=0;#3rst=1;#20a=1;#100a=1;#100a=0;#100a=0;#100a=1;#100a=0;#100a=0;#100a=1;#100a=0;#100a=0;#100a=0;#100a=0;#100a=1;#100a=0;#100a=0;#100a=1;#100a=0;#100a=1;#100a=0;endalways#50clk=clk;endmodule

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号