//the content that digital LED shows
//output [7:0] AN;
//output [7:0] SEG;
initial
begin
hold_ind <= 0;
drinktk_ind <= 0;
charge_ind <= 0;
coin_val <= 0;
charge_val <= 5'b00000;
end
always @ (posedge clk or posedge reset)
begin
if(reset == 0)
// When switch is off, now_state points to S0
begin
now_state <= S0;
end
else begin
now_state <= next_state;
end
end
// 状态转移模块
always @ (now_state or op_start or takeAway or drink_type or coin_val)
begin
case(now_state)
S0:
begin
//如果还未开始使用, 那么次态保持不变
if(op_start == 0) next_state <= S0;
else
begin
//如果已经开始使用,那么次态变为S3或S1
//饮料为5元的(即drink_type==1),那么进入S3。
//饮料为2.5元的(即drink_type==0),那么进入S1。
if(drink_type == 2'b01) next_state <= S1;
else if(drink_type == 2'b10) next_state <= S3;
end
end
S1:
begin
//如果此时选择取消,那么回到
if( op_start == 0) next_state <= S0;
else
begin
//如果币值小于3,那么保持在S1;如果大于3,进入S2
if(coin_val < 4'b0011) next_state <= S1;
else next_state <= S2;
end
end
S2:
begin
//如果此时拿走货物,那么回到S0
if(takeAway == 1) next_state <= S0;
else next_state <= S2;
end
S3:
begin
//如果此时选择取消,那么退回到S0
if(op_start == 0) next_state <= S0;
else
begin
//如果币值小于5,那么保持在S1;如果大于5,进入S2
if(coin_val < 4'b0101) next_state <= S3;
else next_state <= S4;
end
end
S4:
begin
//如果此时拿走货物,那么回到S0
if(takeAway == 1) next_state <= S0;
else next_state <= S4;
end
endcase
end
// 投币模块
always @(insert or op_start)
begin
if(op_start == 0) coin_val <= 4'b0000;
else if(insert == 1)
begin
if(coin_type == 2'b01) coin_val <= coin_val + 4'b0001;
else if(coin_type == 2'b10) coin_val <= coin_val + 4'b1010;
end
end
//结果输出模块
always @(now_state)
begin
case(now_state)
S0:
begin
hold_ind <= 0;
drinktk_ind <= 0;
charge_ind <= 0;
charge_val <= 5'b00000;
if(op_start == 1)
begin
hold_ind = 1;
end
end
S1:
begin
hold_ind = 1;
end
S2:
begin
hold_ind = 1;
drinktk_ind = 1;
charge_ind = 1;
if(coin_val == 4'b0011) charge_val = 5'b10001;//找零0.5
else if(coin_val == 4'b1010) charge_val = 5'b10010;//找零7.5
else if(coin_val == 4'b1011) charge_val = 5'b10011;//找零8.5
else if(coin_val == 4'b1100) charge_val = 5'b10100;//找零9.5
end
S3:
begin
hold_ind = 1;
end
S4:
begin
hold_ind = 1;
drinktk_ind = 1;
charge_ind = 1;
if(coin_val == 4'b0101) charge_val = 5'b00000;//找零0
else if(coin_val == 4'b1010) charge_val = 5'b00101;//找零5
else if(coin_val == 4'b1011) charge_val = 5'b00110;//找零6
else if(coin_val == 4'b1100) charge_val = 5'b00111;//找零7
end
endcase
end
没有合适的资源?快使用搜索试试~ 我知道了~
自动售货机verilog vivado-数字逻辑课程设计-华中科技大学
共213个文件
xml:51个
jou:25个
log:25个
5星 · 超过95%的资源 需积分: 50 58 下载量 170 浏览量
2018-03-03
14:38:29
上传
评论 25
收藏 694KB RAR 举报
温馨提示
用verilog编写,用vivado实现的自动售货机。支持选择商品(设定为两种,分别是2.5元和5元)、投币(1元、5元)和找零的功能。 详细文档可见:http://www.doc88.com/p-0807880645741.html
资源推荐
资源详情
资源评论
收起资源包目录
自动售货机verilog vivado-数字逻辑课程设计-华中科技大学 (213个子文件)
elaborate.bat 407B
compile.bat 286B
simulate.bat 282B
runme.bat 229B
runme.bat 229B
topModule.bit 3.65MB
xsim.dbg 14KB
topModule_routed.dcp 176KB
topModule_placed.dcp 159KB
topModule_opt.dcp 142KB
topModule.dcp 39KB
xsimk.exe 129KB
usage_statistics_ext_xsim.html 3KB
usage_statistics_ext_labtool.html 3KB
.xsim_webtallk.info 64B
.xsim_webtallk.info 60B
vivado_5300.backup.jou 2KB
vivado_4408.backup.jou 2KB
vivado.jou 1KB
vivado_24292.backup.jou 1KB
vivado_1164.backup.jou 1KB
vivado_11452.backup.jou 1KB
vivado_2708.backup.jou 820B
webtalk.jou 631B
vivado_848.backup.jou 591B
webtalk_13748.backup.jou 590B
webtalk_5044.backup.jou 590B
webtalk.jou 589B
webtalk_3840.backup.jou 589B
webtalk_16508.backup.jou 583B
webtalk_18072.backup.jou 583B
webtalk_5600.backup.jou 577B
vivado.jou 577B
vivado.jou 551B
vivado_23256.backup.jou 549B
vivado_3236.backup.jou 538B
vivado_4468.backup.jou 534B
vivado_10476.backup.jou 499B
vivado_3100.backup.jou 494B
vivado_6548.backup.jou 485B
vivado_12724.backup.jou 485B
ISEWrap.js 5KB
ISEWrap.js 5KB
rundef.js 1KB
rundef.js 1KB
vivado_2708.backup.log 44KB
vivado_5300.backup.log 28KB
runme.log 24KB
runme.log 23KB
vivado_4408.backup.log 10KB
vivado_1164.backup.log 4KB
vivado_24292.backup.log 4KB
vivado.log 4KB
vivado_11452.backup.log 4KB
compile.log 1KB
webtalk.log 1KB
webtalk_5600.backup.log 1KB
webtalk.log 1005B
webtalk_3840.backup.log 998B
webtalk_13748.backup.log 990B
webtalk_5044.backup.log 990B
webtalk_18072.backup.log 981B
webtalk_16508.backup.log 981B
elaborate.log 948B
vivado_12724.backup.log 906B
vivado_6548.backup.log 906B
labtool_webtalk.log 716B
xsimkernel.log 332B
simulate.log 50B
xsimcrash.log 0B
vendor.lpr 343B
xsim.mem 4KB
vivado.pb 39KB
place_design.pb 14KB
route_design.pb 7KB
write_bitstream.pb 6KB
opt_design.pb 5KB
xvlog.pb 2KB
xelab.pb 2KB
init_design.pb 1KB
topModule_power_summary_routed.pb 675B
topModule_utilization_synth.pb 231B
topModule_utilization_placed.pb 231B
vivado.pb 129B
topModule_route_status.pb 44B
topModule_drc_routed.pb 37B
similator_vlog.prj 586B
xsim.reloc 2KB
topModule_io_placed.rpt 78KB
topModule_clock_utilization_routed.rpt 10KB
topModule_utilization_placed.rpt 9KB
topModule_timing_summary_routed.rpt 8KB
topModule_power_routed.rpt 7KB
topModule_utilization_synth.rpt 7KB
topModule_control_sets_placed.rpt 4KB
topModule_drc_routed.rpt 2KB
topModule_drc_opted.rpt 2KB
topModule_route_status.rpt 588B
topModule_timing_summary_routed.rpx 15KB
.route_design.begin.rst 182B
共 213 条
- 1
- 2
- 3
资源评论
- 丛乐2023-07-26该文件从实际生活中的自动售货机出发,给出了设计思路和解决方案,非常实用和可行。
- 小米智能生活2023-07-26该文件提供了丰富的功能,并且逻辑设计非常精准,能够有效地实现自动售货机的各项操作。
- 郑瑜伊2023-07-26这个文件对自动售货机的设计进行了详细的解释和说明,非常易于理解。
- 天使的梦魇2023-07-26作者在文件中详细讲解了verilog的使用方法,对于初学者来说非常友好和有帮助。
- 白羊带你成长2023-07-26文件中提供了具体的实例和测试代码,能够帮助读者更好地理解和运用所学的知识。
木森OS
- 粉丝: 19
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功