(1)用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商品,购买者可以通过开关选择任意一种标价中的小商品。
(2)灯亮时表示该小商品售出。
(3)用开关分别模拟5角、1元硬币和5元纸币投入,可以用几只发光二极管分别代表找回剩余的硬币。
(4)每次只能售出一种小商品,当所投硬币达到或超过购买者所选面值时,售出货物并找回剩余的硬币,回到初始状态;
(5)当所投硬币值不足面值时,可通过一个复位键退回所投硬币,回到初始状态。
该EDA课程设计报告主要涉及的是基于EDA技术的自动售货机模型的构建。在这个设计中,学生使用EDA工具,如Quartus II 5.0,来实现一个简化版的自动售货机功能,旨在理解和应用硬件描述语言VHDL。
自动售货机的核心功能如下:
1. **商品选择**:通过四个发光二极管模拟四种不同价格的商品(5角、1元、1.5元和2元)。用户可以通过开关选择想要购买的商品,对应的二极管亮起表示选定。
2. **货币投入**:使用开关模拟硬币(5角和1元)和纸币(5元)的投入。投入的硬币值将通过发光二极管显示,以表示找回的零钱。
3. **交易处理**:一次只能购买一种商品。如果投入的硬币值等于或超过商品价格,商品售出,多余的钱作为找零返回;如果硬币不足,则通过复位键可以退回所有投入的硬币。
设计中,系统被分解为多个模块,包括:
- **退币闪烁信号电路模块**:负责处理退款情况下的闪烁提示。
- **投入硬币处理模块**:分别处理1元和5角硬币的投入。
- **商品选择处理模块**:接收商品选择信号并控制相应的二极管。
- **确认与取消处理电路模块**:处理用户的确认和取消操作。
- **退币处理电路模块**:在需要退款时,执行退款操作。
- **出货并计算存货电路模块**:控制商品的出货,并更新库存状态。
在软件设计流程中,VHDL用于描述硬件逻辑,通过主时钟信号协调各个模块工作。在设计过程中,学生面临并解决了各种问题,比如仿真文件的命名规则、VHDL代码的编写等。课程设计不仅强化了学生对EDA软件的使用,还暴露了他们在理论知识上的不足,促使他们重新审视和巩固已学的电子和数字逻辑知识。
在指导教师的帮助下,学生成功地完成了设计,通过这个项目,他们不仅掌握了实际操作技能,还学会了如何解决问题和团队协作。同时,他们对参考教材和课程资料表示感谢,这包括《可编程逻辑器件与EDA技术》、电子设计大赛的培训课件以及河海大学的EDA培训课件。
整个设计包含了硬件实现的原理图,以及相关的程序代码,显示了VHDL程序的结构,如示例代码所示,使用了IEEE库中的标准逻辑运算和类型。通过这样的课程设计,学生能够深入理解硬件描述语言和FPGA设计的基本原理,为今后的电子设计打下坚实基础。