基于Verilog的售货系统设计及验证

2018-11-27 11:16胥杭君郭梦生白旭升赖寒
中国新技术新产品 2018年18期
关键词:模块化

胥杭君 郭梦生 白旭升 赖寒

摘 要:本文对自动售货机系统的功能进行了模块化的划分,并对其模块功能及组成进行了讨论,同时对其原理进行了研究后得出了相应的模拟系统。并对使用Verilog HDL语言及相应软件对其功能的实现进行了详细的阐述,且对模拟系统整体的框架进行了设计。经仿真后得出模拟系统可正常,稳定工作的这一结论。

关键词:模块化;自动售货;FPGA

中图分类号:TP311 文献标志码:A

0 引言

随着电子技术的不断发展,FPGA,即现场可编程门阵列作为专用集成电路(ASIC)领域中一种半定制的电路,其应用领域已经越来越广泛。且随着当今生活节奏的不断变化,各种自动售货设备的需求正在日益增大。基于FPGA的相应系统可实现模块化的设计,从而方便日后对系统的升级维护扩展。本文基于搭载FPGA芯片的实验板对自动收货系统进行了模拟设计与仿真验证。

1 系统整体设计概述

本文中的模拟系统对自动售货机的商品选购过程及当前状态显示进行了相应的模拟,因此可大致将其功能模块划分为5个相应的功能模块,分别为按键模块1、按键模块2、控制模块、数码管显示模块和状态显示模块。

2 各模块详述

2.1 按键模块1

本模块在硬件上为一个4×4的矩阵键盘,则对应可实现16种商品的模拟的选择,而矩阵键盘的按键检测采用了行扫描法,而其中在程序描述部分还包括了一个编码器及解码器,以此使得控制部分接收到较为精简的数据信号。

2.2 按键模块2

本模块对选定商品后的投币过程进行了模拟,key_in1模拟表示投入一元的硬币,而key_in2模拟表示投入五毛的硬币。同时本模块中还包括了一个复位按键,其可以将系统状态恢复为初始状态,同时可以让顾客在未完成商品购买全额投入的操作下进行重新选择。

2.3 控制模块部分

本模块为本模拟系统的核心控制部分,而其实现则采用了有限同步状态机的思想。而本状态机共有6个状态,分别为初始状态(IDLE),共投入一元的状态(oney),共投入五毛的状态(fivem),共投入一元五的状态(onef),共两元的状态(twoy)及错误状态(error)。由于本系统为模拟系统,只做相关功能验证,故设定商品最高金额为两元。

而具体状态转移过程为最开始系统处于初始状态,当投入一元硬币后将跳转至状态oney,若是投入五角则跳转至fivem状态,此后依照投入金额为触发条件分别跳转至相应状态。当跳转至twoy状态时,则代表商品购买完成,而若是在状态处于onefive时投入一元硬币,则系统将跳转至error状态,而若是在状态转移中出现其他问题或是不在正常购买流程内的情况,系统同样会跳转至error状态。若是在购买过程中按下重置按键,则系统将跳转回初试状态。同时当系统处于各相应状态时将向外输出value1和value2两个值给相应的显示模块。

2.4 数码管显示模块

本模块对当前投币金额进行显示。其硬件实现原理为数码管的动态扫描,利用余晖效应来显示不同的数值。而其程序部分为接受来自于控制模块的输出值value1,然后通过解码器将其解码后通过数码管对相应金额数字进行显示。

2.5 LED显示模块

本模块为通过LED灯的不同点亮位置来对当前状态进行可视化的显示,程序部分同样为使用解码器将接收于来自控制部分输出的值value2进行解码后点亮相应的LED。

由于本文中使用的实验板LED灯为低电平有效,且高位在左,低位在右,故对其做出如下表示形式:(0亮1灭)

IDLE:5b11111 fivem:5b11101 oney:5b11011 onef:5b10111

twoy:5b01111 error:5b00000

3 控制部分的仿真验证

modelsim为一款非常优秀的仿真软件,且其界面设计简洁,可读性高,可提供非常友好的仿真环境,故本文中将使用modelsim作为仿真工具来对本文中所设计的系统进行仿真验证。

分别对模拟先投入一元的硬币后再投入五角的硬币再投入一元硬币导致总金额溢出而出现错误的情况进行仿真。其仿真波形如图1所示。

经对其进行仿真验证后发现仿真通过,且与预想仿真结果相同,上板实验后发现能够稳定地实现最初所预想要实现的功能。

本文介绍了对基于搭载FPGA芯片的开发板所实现的自动收货系统的模拟功能验证,为其实际应用做出了理论与仿真上的验证。且由于本文所设计的系統采用了模块化的设计思想,因此可以较为方便地对其功能进行扩展升级,比如在实际使用中出现错误时除了灯光警示外还可加入语音警示的功能。而核心控制部分则可根据实际需求进行灵活的修改,其适应性较强,可广泛应用于各类自动售货系统。

参考文献

[1]朱军.自动售货机的结构[J].信息与电脑,1995(10):12-13.

[2]杨文霞,孙青林.数字逻辑电路[M].北京:北京科学出版社,2007.

[3]黄伊楠,谢育.基于Modelsim的自动化逻辑验证平台设计[J].电子技术与软件工程,2015(7):70.

[4]吴继华,王诚.Verilog HDL设计与验证[M].北京:人民邮电出版社,2006.

[5]胥杭君,叶璐.浅谈模块化及其应用[J].科学与财富,2015(13):110-111.

[6]张松,李筠.FPGA的模块化设计方法[J].电子测量与仪器学报,2014,28(5):560-565.

猜你喜欢
模块化
模块化自主水下机器人开发与应用
基于模块化控制系统在一体化教学中的应用
模块化住宅
ACP100模块化小型堆研发进展
从模块化中得到的二氧化碳
模块化VS大型工厂