
项目2:报纸售卖机控制器分析1
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本项目旨在对现有的报纸售卖机控制系统进行深入分析与优化设计,重点解决现有系统存在的问题并提出改进方案。
报纸售卖机控制器是一种基于硬币投入的自动化售货设备,设计重点在于接收、处理硬币以及判断是否满足购买条件,并控制机器发放商品。在本项目中,需要分析并设计一个能够根据预设规则操作的控制器。
1. 设计说明:
- 报纸售价为15分,接受的硬币面额包括5分和1角。
- 客户必须投入足够的金额以购买报纸,系统不提供找零服务。
- 合法的组合有:一个五分加一角、三个五分或两个一角。
2. 电路要求:
- 当硬币被放入机器时,通过两位信号`coin[1:0]`传递信息,在每个时钟周期(由`clockI`定义)开始上升沿进行采样。
- 控制器输出端口 `newspaperO`会在总金额达到或超过15分的时候变为高电平,并持续一个时钟周期,用于开启售卖机门。
3. 信号定义:
- `coin[1:0]`: 输入信号,其中2b00代表无硬币投入;2b01表示一角。
- `clockI`:系统运行的时钟信号,在值为1的时候有效。
- `resetI`:复位信号,当其值为1时启用复位功能。
- `newspaperO`: 输出端口,用于指示总金额已满足购买条件。
4. 控制器工作原理:
- 通过状态机的方式运作;控制器根据当前的状态和硬币输入信息来更新总额,并判断是否达到了可以出售报纸的最低标准(15分)。
- 硬币总额达到或超过15分时,`newspaperO`输出高电平。
5. 控制器电路设计:
- 使用D型触发器存储状态;利用NOT和NAND逻辑门进行必要的计算操作。
- 需要构建一个描述控制器如何根据输入变化调整自身状态的状态转换图。
6. Verilog代码编写:
- 在Verilog代码中添加注释,解释各部分功能以提高可读性。
- 检查第18行是否符合设计需求;如果多余则应删除。
- 第24到31行可能为了简化而存在,可以使用define宏定义来替代这些重复的语句,以便于代码修改和维护。
- 要考虑其他简洁的方式来编写Line34, 例如利用算术运算或位操作等方法;同时检查第49行是否必要。
7. 验证:
- 完善测试平台文件以模拟所有可能的硬币组合情况,确保控制器能够正确识别并响应。
- 确保测试覆盖所有的边界条件和异常状况,从而全面验证设计的有效性。
总的来说,在这个项目中涉及了数字逻辑设计的基础知识,包括状态机的设计、Verilog硬件描述语言编程以及对设计方案进行有效的验证过程。通过信号解析、建立状态转换图及编写Verilog代码等步骤来构建一个功能完善的报纸售卖控制器,并且在实际应用前还需要对该设备做仿真和物理测试以确保其可靠性和稳定性。
全部评论 (0)


