欢迎来到天天文库
浏览记录
ID:36523786
大小:965.28 KB
页数:11页
时间:2019-05-11
《自动售饮料机设计和原理》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实例学习Robei芯片设计系列Copyright©Robei十.自动售饮料机1.实验目的了解自动售货机的工作流程以及各个工作状态,以及其test_bench,最后在Robei可视化仿真软件经行功能实现和仿真验证。2.实验原理自动售货机的信号定义:clk:时钟输入;reset:为系统复位信号;half_dollar:代表投入5角硬币;one_dollar:代表投入1元硬币;half_out:表示找零信号;dispense:表示机器售出一瓶饮料;collect:该信号用于提示投币者取走饮料。当reset=0时,售货机处于工作状态,此时连续往售货机中投硬币(可以是5毛也可以
2、是一元),投入最后一枚硬币时,如果之前投入的硬币总和为2.5元则可以取走一瓶饮料,如果少于2.5元则继续投币,如果为3元则显示可以取出一瓶饮料而且找零显示信号为高电平。投入硬币的总额自动售饮料机给出的信号<2.5元继续投币=2.5元可以取出一瓶饮料=3元可以取出一瓶饮料,并且找零3.实验内容3.1sell模块的设计1)新建一个模型命名为sell,类型为module,同时具备4输入3输出,每个引脚的属性和名称参照下图2-10-1经行对应的修改。图2-10-1sell引脚的属性实例学习Robei芯片设计系列Copyright©Robei图2-10-2sell界面图2)添加
3、代码。点击模型下方的Code添加代码。代码:parameteridle=0,half=1,one=2,one_half=3,two=4;reg[2:0]D;always@(posedgeclk)beginif(reset)begindispense=0;collect=0;half_out=0;D=idle;endcase(D)idle:if(half_dollar)D=half;elseif(one_dollar)D=one;half:if(half_dollar)D=one;elseif(one_dollar)D=one_half;one:if(half_doll
4、ar)D=one_half;elseif(one_dollar)D=two;one_half:实例学习Robei芯片设计系列Copyright©Robeiif(half_dollar)D=two;elseif(one_dollar)begindispense=1;collect=1;D=idle;endtwo:if(half_dollar)begindispense=1;collect=1;D=idle;endelseif(one_dollar)begindispense=1;collect=1;half_out=1;D=idle;endendcaseend3)保存模
5、型到一个文件夹(文件夹路径不能有空格和中文)中,运行并检查有无错误输出。3.2sell_test测试文件的设计1)新建一个4输入3输出的sell_test测试文件,记得将ModuleType设置为“testbench”,各个引脚配置如图2-10-3所示。图2-10-3sell_test引脚的属性2)另存为测试文件。将测试文件保存到上面创建的模型所在的文件夹下。实例学习Robei芯片设计系列Copyright©Robei3)加入模型。在Toolbox工具箱的Current栏里会出现模型,单击该模型并在sell_test上添加,并连接引脚,如下图2-10-4所示:图2-1
6、0-4sell_test工作界面4)输入激励。点击测试模块下方的“Code”,输入激励算法。激励代码在结束的时候要用$finish结束。测试代码:initialbeginone_dollar=0;half_dollar=0;reset=1;clk=0;#100reset=0;repeat(2)@(posedgeclk);#2one_dollar=1;repeat(1)@(posedgeclk);#2one_dollar=0;repeat(2)@(posedgeclk);#2one_dollar=1;repeat(1)@(posedgeclk);#2one_dollar
7、=0;repeat(2)@(posedgeclk);#2one_dollar=1;repeat(1)@(posedgeclk);#2one_dollar=0;#20reset=1;#100reset=0;repeat(2)@(posedgeclk);#2one_dollar=1;repeat(1)@(posedgeclk);#2one_dollar=0;实例学习Robei芯片设计系列Copyright©Robeirepeat(2)@(posedgeclk);#2one_dollar=1;repeat(1)@(posedgeclk);#2one_dol
此文档下载收益归作者所有