资源描述:
《EDA实验五状态机》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验五有限状态机0900210204吴韦艳一、实验目的:本次实验通过Verilog硬件语言编写摩尔型有限状态机和米勒型有限状态机,掌握采用有限状态机产生各种控制信号的原理,熟悉如何选用合适的有限状态机进行电路设计,通过实验进一步了解原理图编辑方法和仿真方法。二、实验要求:1、利用Verilog硬件语言,参考提供的源程序,设计一个采用摩尔型有限状态机实现的流水灯控制程序;2、利用Verilog硬件语言,参考提供的源程序,设计一个采用米勒型有限状态机实现的串行口发送程序;3、利用Verilog硬件语言,参考提供的源程序,设计一个采用米勒型有限状态机实现的串
2、行口接收程序;4、利用原理图编辑方法,将串行口发送和接收模块进行连接,实现完整的串行通信电路,并对该电路进行仿真。三、实验内容1、米勒型有限状态机实现的串行口发送源程序modulestx(clk,en,dain,txd);inputelk,en;input[7:0]dain;outputtxd;reg[7:0]da_temp;regtxd;reg[3:0]state;parameterswait=45bOOOO,star二4'bOOOl,si二4'bOOlO,s2二4'b0011,s3=4'bOlOO,s4=4'bOlOl,s5=4'b0110,s6二
3、4'b0111,s7二4'bl000,s8二4'bl001,stop=4,blOlO;always@(posedgeon)datemp〈二dain;always@(posedgeelk)辻(!en)beginstate<=swait;txd<=l;endelsecase(state)swait:beginstate<=star;txd<=l;endstar:beginstate<=sl;txd<=0;end//状态转换si:beginstate<=s2;txd<=datemp[7];ends2:beginstate〈二s3;txd<=da_temp[6
4、];ends3:beginstate〈二s4;txd<=da_temp[5];ends4:beginstate<=s5;txd<=da_temp[4];encls5:beginstate<=s6;txd<=da_temp[3];ends6:beginstate<=s7;txd<=datemp[2];ends7:beginstate〈二s8;txd<=da_temp[l];ends8:beginstate〈二stop;txcK二da_temp[0];endstop:beginstate<=stop;txd<=l;endendcascendmodule2、
5、米勒型有限状态机实现的串行口接收源程序modules_rx(elk,dain,daout);inputelk,dain;output[7:0]daout;reg[7:0]daout;reg[7:0]datemp;reg[3:0]state;parameterstar=4,bOOOO,si二4'bOOlO,s2=4'bOOll,s3=4'b0100,s4二4'b0101,s5二4'b0110,s6=4'bOlll,s7=4'bl000,s8=4,bl001,stop二4'blOlO;always@(negedgeelk)case(state)star:i
6、f(dain)state〈二star;elsestate〈二si;〃状态转换//数据开始位为0si:beginstate<=s2;da_temp[7]<=dain;ends2:beginstate<=s3;da_temp[6]<=dain;ends3:beginstate<=s4;da_temp[5]<=dain;ends4:beginstate<=s5;datemp[4]<=dain;ends5:beginstate<=s6;da_temp[3]<=dain;ends8:beginstate〈二stop;da_temp[O]<=dain;encl//
7、8个状态//数据结束位为1s6:beginstate<=s7;s7:beginstate〈二s8;datemp[2]<=dain;enddatemp[l]<:zdain;endstop:if(!dain)state<=stop;elsebeginstate〈二star;daout<=da_temp;endendcaseEndmodule3、由s_tx和s_rx组成的电路ParameterswaitValueB’ooocrstarB-ooors1B-0010"s2B^ooirs3B-0100^S4B-0101-s5B^OHO"s6B-onrs7Brooo
8、・s8BM001-stopBM010".srxParameterstarValueB^OOOO