科研民工许二宝:我觉得是因为d的输入只有半个周期,而且是组合逻辑,假设前半个周期next_state是下个状态,在下半个周期变为0,nstate就变成原来状态了,相当于没投币,需要nstate=nstate保持住前半个周期的状态
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
微甜๑:`timescale 1ns/1ns module huawei6( input wire clk0 , input wire clk1 , input wire rst , input wire sel , output reg clk_out ); reg q0, q1; always@(negedge clk1 or negedge rst) if(!rst) q0 <= 0; else q0 <= ~sel & ~q1; always@(negedge clk0 or negedge rst) if(!rst) q1 <= 0; else q1 <= sel & ~q0; always@(*)begin clk_out <= (q0 & clk0) | (q1 & clk1); end endmodule 这样就可以了 感谢楼主的答案
0 点赞 评论 收藏
分享
maple~~:当然可以多设置一些状态,如选择10块的饮料,在S_Five再投了5元,进入一个S_Ten,此状态是不稳定的,但也是可以存在于状态图,只是此状态不能再有输入,会自动跳转至稳定的状态,由于状态跳转用的组合逻辑,并无延迟。 这样多一些状态,对于第三段的输出就有一定的书写简化,需要注意的是,对于第三段的输出,若依然使用时序逻辑,需要用next_state来判断是否在那些不稳定的状态,而不是state;组合逻辑使用state来判断。
0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: