完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
`书上说这是设计复杂状态机的方法,但是我分析一下,这种状态机设计的方法和一般用always和case设计的状态机的结果是不一样的,那么这种状态机有没有实际应用的价值,毕竟他和正常的状态机不一样,另外,是不是这个程序哪里不对呢?求大侠指点一二~ 程序: module fsm(inputclock,input reset,input a,output reg k2,output reg k1); reg [1:0] state, nextstate; parameter idle = 2'b00, start = 2'b01, stop = 2'b10, clear = 2'b11; always @(posedgeclock) begin if(!reset) state <= idle; else begin state <= nextstate; end end always @(stateor a) case (state) idle:if(a) nextstate=start; else nextstate=idle; start:if(a) nextstate = start; else nextstate = stop; stop:if(a) nextstate = clear; else nextstate = stop; clear: if(a) nextstate = clear; else nextstate = idle; defaultnextstate = 2'bxx; endcase always@(state,reset,a) if(!reset) k1=0; else if (state == clear && !a) k1=1; else k1 = 0; always@(state,reset,a) if(!reset) k2=0; else if (state == stop && a) k2 = 1; else k2 = 0; endmodule 测试: `timescale 1 ns/ 1 ns module test_fsm; reg a; reg clock,rst; wire k2,k1; initial begin a=0; rst = 1; clock = 0; #22 rst = 0; #133 rst = 1; end always #50 clock= ~clock; always @(posedge clock) begin #30 a ={$random}%2; #(3*50+12); end initial begin # 100000 $stop; end fsmm(clock,rst,a,k2,k1); endmodule 仿真结果如下: ` |
|
相关推荐
1个回答
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
196 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
879 浏览 0 评论
855 浏览 0 评论
1775 浏览 0 评论
465 浏览 0 评论
1245 浏览 25 评论
5456 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 06:24 , Processed in 0.589633 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号