1)设计一个自动售货机,此机能出售1.5元、2元两种商品。出售哪种商品可有顾客按动相应的一个按键即可,并同时用数码管显示出此商品的价格。可同时购买两种、多件商品。 2)顾客投入硬币的钱数有5角、1元两种。此操作通过按动相应的两个按键来模拟,并同时用数码管将投币额显示出来。 3)顾客投币后,按一次确认键,如果投币额不足时则报警灯亮。如果投币额足够时自动送出货物(送出的货物用相应不同的指示灯显示来模拟),同时多余的钱应找回,找回的钱数用数码管显示出来,库存显示减少。 4)顾客一旦按下取消键,自动售货机即可自动恢复到初始状态,此时才允许顾客进行下一次购货操作。 5)售货机还应具有供商家供货功能,可通过两个按键增加两种商品的库存量,有数码管显示库存量。 6)此售货机要设有两个由商家控制的复位键,可分别将两种商品清零。 Verilog课程设计中的自动售货机项目旨在让学生掌握Verilog硬件描述语言的基础知识,并通过实际应用加深理解。在这个设计中,自动售货机是一个复杂的数字系统,它包含了多个功能模块,如分频器、购买处理模块和显示模块。 1. 分频模块:自动售货机的内部操作速度可能很高,但为了人机交互,需要将高速时钟信号降低到适合显示和控制的速率。分频模块的作用就是将500MHz的时钟信号分频至25Hz,使得用户界面的操作更加平滑。 2. 购买模块:这个模块处理用户的购买行为,包括选择商品、投币和确认购买。它有三个优先级最高的复位键,用于清零状态。商品选择后,对应的商品计数变量会增加,同时根据商品价格计算总购买金额。当用户按下投币键时,系统会累加投币总额。确认购买后,系统会比较投币总额与购买总额,如果足够则完成交易,否则点亮警告灯。 3. 显示模块:该模块负责显示各种信息,如商品价格、投币总额、找零金额以及商品库存等。它使用七段数码管显示这些数值,并实时更新以反映系统状态的变化。 4. 模块化设计:整个系统由三个主要模块构成,每个模块都有明确的功能,这符合Verilog的设计原则,易于测试和验证。分频模块、购买模块和显示模块各自独立,可以单独编写和调试。 5. 硬件实现:在Verilog代码中,定义了输入和输出信号,例如选择商品的按钮、投币按钮、确认键、取消键等,以及各种数码管显示和指示灯。这些信号的处理通过一系列的寄存器和逻辑运算来完成,包括计数器、条件判断和数值计算。 6. 商品管理:自动售货机可以出售两种不同价格的商品,并可以通过按键增加库存。商家还可以通过两个复位键分别清空两种商品的库存,便于维护和管理。 7. 用户交互:系统提供了直观的用户界面,包括按键操作和LED显示。用户可以选择商品,投入硬币,确认购买,或者取消操作并恢复初始状态。 通过这个自动售货机的Verilog课程设计,学生不仅能够学习到Verilog语言的基本语法和设计技巧,还能了解数字系统设计中的模块化、状态机实现、时序逻辑和接口设计等概念,从而提升综合设计能力。
- woniu52112016-11-23非常适合新手学习,值得一看
- AUVer2014-07-03有用,但代码写得不好,不值这个积分啊
- dianqiguzhou2012-06-11很不错,如果有测试代码就好更好了
- 粉丝: 1
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助