完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
modulemachine_sell(one_dollar,
half_dollar, collect, half_out, dispense, reset, clk); parameter idle=2'b00, half=2'b01, one=2'b10; //代表投入币值 的几种情况 inputone_dollar,half_dollar,reset,clk; outputcollect,half_out,dispense; regcollect,half_out,dispense; reg[1:0] D; always@(posedgeclk) begin if(reset) begin dispense=0; collect=0; half_out=0; D=idle; end else case(D) idle: if(half_dollar) begin dispense=0; collect=0; half_out=0; D=half; end else if(one_dollar) begin dispense=0; collect=0; half_out=0; D=one; end else begin dispense=0; collect=0; half_out=0; D=idle; end half: if(half_dollar) begin dispense=0; collect=0; half_out=0; D=one; end else if(one_dollar) begin dispense=1; collect=1; half_out=0; D=idle; end else begin dispense=0; collect=0; half_out=0; D=half; end one: if(half_dollar) begin dispense=1; collect=1; half_out=0; D=idle; end else if(one_dollar) begin dispense=1; collect=1; half_out=1; D=idle; end else begin dispense=0; collect=0; half_out=0; D=one; end endcase end endmodule 如果开始输入half_dollar,状态机切换到half状态。如果half_dollar一直保持高电平,这样子计数是不是有问题。 |
|
相关推荐
6个回答
|
|
加一个投币延时功能
最佳答案
|
|
|
|
是啊,你投了5毛,一直保持高电平不就变成1元了吗,加个一个周期的使能信号就好了!
|
|
|
|
你仿真一下,啥都看明白了!Modelsim仿真
|
|
|
|
哈哈,仿真过了,就是觉得有点问题,才请教大神。代码应该还要完善下。这是网上查到的代码。 |
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
250 浏览 0 评论
在做基于fpga的数字示波器这个项目时,我用的是vivado平台,遇到了显示相关的问题。
435 浏览 1 评论
有关PL端利用AXI总线控制PS端DDR进行读写(从机wready信号一直不拉高)
1374 浏览 1 评论
803 浏览 0 评论
737 浏览 0 评论
2510 浏览 62 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-6-12 04:57 , Processed in 0.728536 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号