《数电实验报告 1》主要涉及数字系统设计,尤其是基于Verilog HDL语言的硬件描述,涵盖了步进电机脉冲分配器以及自动售货机的模拟设计。实验旨在通过实际操作来提升学生对数字逻辑电路的理解和应用能力。
基础要求部分是设计一个步进电机脉冲分配器。在Verilog代码中,`dianji`模块接收到输入信号`reset`、`clk`和`M`,并输出`A`、`B`和`C`。代码中使用了状态机设计方法,定义了6个状态(st0-st5),并根据输入`M`的值正向或反向输出脉冲。`fenpin`变量用于计数,当达到一定阈值时产生1ms的时钟脉冲`clk_1ms`。在状态机中,根据当前状态`pst`和输入`M`更新下一状态`nst`,并通过`case`语句将输出`{C,B,A}`对应于不同状态。
提高要求部分则是一个模拟自动售货机的设计。该售货机预设了4种价格不同的商品,用户可以投入1元、2元、5元或10元硬币。同时,系统还需要具备找零功能,可找零的硬币为1元、2元和5元。Verilog代码中,顶层模块`top_module`连接了所有输入和输出,包括投币选择、商品选择和可能的取消操作。设计应能处理任意组合的投币情况,完成商品购买和找零,并通过适当的显示输出反馈给用户。实验要求将设计下载到开发板上进行实际运行和调试,并增加必要的显示功能,以验证其正确性和有效性。
这个实验报告不仅锻炼了学生的Verilog编程技巧,还强化了他们对数字系统设计的理解,特别是状态机和时序控制的应用。通过实际的硬件实现,学生能够更好地掌握数字逻辑设计的基本原理和方法,同时也为未来更复杂的嵌入式系统设计打下坚实的基础。