利用 Verilog HDL 设计状态机(4 页)Good is good, but better carries it.精益求精,善益求善。利用 Verilog HDL 设计状态机1.设计要求利用 Verilog HDL 设计一个电路,对输入的一串二进制数,用于检测序列中连续 3 个或者 3 个以上的 1,状态转换如图所示:2.设计步骤第一步:安装 Quartus II 软件并破解第二步:根据设计要求编写程序代码第三步:生成仿真电路图和波形如图3.程序代码module moore(clk,din,op);input clk,din;output op;reg[1:0] current_state,next_state;reg op;parameter S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11;always@(posedge clk)begincurrent_state<=next_state;endalways@(current_state or din)begincase(current_state)S0:beginop=0;if(din==0)next_state=S0;elsenext_state=S1;endS1:beginop=0;if(din==0)next_state=S0;elsenext_state=S2;endS2:beginop=0;if(din==0)next_state=S0;elsenext_state=S3;endS3:beginop=1;if(din==0)next_state=S0;elsenext_state=S3;enddefault:beginop=0;next_state=S0;endendcaseendendmodule4.仿真电路图和波形图电路图如下图:图一 电路原理图 图二 转换关系图波形图如下图:波形图5.实验结论与心得体会实验结果:由仿真波形可以看出,利用该状态机,可以实现输入一串二进制数然后检测序列中连续 3 个或者 3 个以上的 1,实现上面转换图要求的功能,符合实验要求。心得体会:1.通过本次作业,我更加熟知转换器的使用方法,并能设计出任意转换方式的转换器。我感觉已经不再对转换关系与转换图形感到陌生和恐惧。 2. 模拟仿真出来的电路图和波形图直观的反映出电路的功能和最终转换结果更简便,可操作性强。 3. 对于所学的知识应该活学活用在实践中大胆创新,去做书本上没有的东西,掌握这些工具性软件对于将来的自身进展和工作竞争有着至关重要的作用。(~}<:《\;|'!—!:(¥`|>…;'…|[。|.,—