0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA学习系列:21. 自动售货机的设计

FPGA学习交流 来源:互联网 作者:佚名 2018-06-20 10:41 次阅读

设计背景:

我们从开始学习FPGA。到现在也慢慢的学到了血多的东西,那么我们就应该慢慢的去学习深一点的东西,我就给大家分享一个自动售货机的简单历程,帮助大家理解和学习我们的FPGA,为以后的学习做一个铺垫。

设计原理:

设计要求:一听饮料需要2.5美元,规定只能投入一美元,0.5美元的硬币

设计架构图:

image.png

设计代码:

设计模块

0modulesell(clk,rst_n,one_dole,half_dole,des

1 inputclk;

2 inputrst_n;

3 inputone_dole; //输入1美元

4 inputhalf_dole; //输入0.5美元

5

6 outputregdescense; //是否买到的标志

7 outputreg[2:0]back_money;//找回的钱

8

9 parameters0 =2'b00,s1 =2'b01,s2 =2'b10

10

11 reg[1:0]state;

12 reg[4:0]money;

13

14 reg[1:0]state_x;

//状态机两段式表示

15 always@(posedgeclk ornegedgerst_n)

16 if(!rst_n)

17 begin

18 state_x <=s0;

19 end

20 else

21 begin

22 state_x <=state;

23 end

24

25 always@(posedgeclk ornegedgerst_n)

26 if(!rst_n)

27 begin

28 money <=5'b0;

29 state <=s0;

30 end

31 else

32 begin

33 case(state)

34 s0:begin

35 //判断投入的钱是多少

36 if(one_dole)

37 begin

38 money <=money

39 state <=s1;

40 end

41 elseif(half_dole)

42 begin

43 money <=money

44 state <=s1;

45 end

46 else

47 begin

48 state <=s0;

49 money <=money

50 end

51 end

52 //判断和商品的价格是否一样

53 s1:begin

54 if(money <25)

55 begin

56 state <=s0;

57 end

58 else

59 begin

60 state <=s0;

61 money <=5'b0;

62 end

63 end

64 endcase

65 end

66

67 reg[1:0]state_s;

68 always@(posedgeclk ornegedgerst_n )

69 if(!rst_n)

70 begin

71 descense <=1'b0;

72 back_money <=3'b0;

73 state_s <=s0;

74 end

75 else

76 begin

77 case(state_s)

78 s0:begin

79 if(money <25)

80 begin

81 back_money <=

82 descense <=1'

83 end

84 else

85 //找回的钱和买到的标志

86 begin

87 back_money <=

88 descense <=1'

89 state_s <=s1;

90 end

91 end

92 s1:begin

93 descense <=1'b0;

94 state_s <=s0;

95 end

96 endcase

97 end

98endmodule

测试模块

0`timescale1ns/1ps //时间精度

1

2modulesell_tb();

3

4 //定义我们的端口

5 regclk;

6 regrst_n;

7 regone_dole;

8 reghalf_dole;

9

10 wiredescense;

11 wire[2:0]back_money;

12

13 initialbegin

14 clk =1'b1;

15 rst_n =1'b0;

16 one_dole =1'b0;

17 half_dole =1'b0;

18 #200.1rst_n =1'b1;

19

20 //模拟蔬输入的钱数

21

22 #200 one_dole =1'b1;

23 #20 one_dole =1'b0;

24

25 #200 one_dole =1'b1;

26 #20 one_dole =1'b0;

27

28 #200 one_dole =1'b1;

29 #20 one_dole =1'b0;

30

31 #1000.1

32 #200 half_dole =1'b1;

33 #20 half_dole =1'b0;

34

35 #200 one_dole =1'b1;

36 #20 one_dole =1'b0;

37

38 #200 one_dole =1'b1;

39 #20 one_dole =1'b0;

40

41 #1000$stop; //停止仿真

42 end

43

44 always#10clk =~clk;

45

46 sell sell_dut( //例化端口

47 .clk(clk),

48 .rst_n(rst_n),

49 .one_dole(one_dole),

50 .half_dole(half_dole),

51 .descense(descense),

52 .back_money(back_money)

53 );

54endmodule

仿真图:

image.png

我们从仿真中可以看到当我们的钱数投够的时候,就给一个买到的标志位,如果投的超过商品的价格,那么我们就给一个买的标志位,然后找回我们投的多的钱。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21664

    浏览量

    601685
收藏 人收藏

    评论

    相关推荐

    FPGA设计实例】自动售货机VHDL程序与仿真

    本帖最后由 eehome 于 2013-1-5 09:56 编辑 自动售货机VHDL程序与仿真(1)自动售货机VHDL程序如下:--文件名:pl_auto1.vhd。--功能:货
    发表于 03-05 15:03

    至芯昭哥带你学FPGA之_100天之旅_自动售货机设计

    本文属于本人原创,和大家一起学习FPGA,交流FPGA,希望大家多多支持。今天内容自动售货机设计,详细内容看以下文件,文档为设计文档,pro
    发表于 09-20 14:40

    无线远程对自动售货机的管理

    现在很多支付商家都在推举1分钱购买自动售货机的饮料,那么这些自动售货机是怎么普及过来的呢? 随时随地可见的自动
    发表于 07-26 09:06

    被无线远程控制管理的自动售货机

    现在很多支付商家都在推举1分钱购买自动售货机的饮料,那么这些自动售货机是怎么普及过来的呢? 随时随地可见的自动
    发表于 07-28 09:23

    4G无线工业路由器自动售货机的应用

    方案需求自动售货机的应用日渐广泛,如城市街头、酒店、机场、居民社区、娱乐公共场所、办公大楼、商场、学校等场所,便捷式的服务和管理渐渐深入工作生活。自动售货机的管理逐步趋于无线管理方式,
    发表于 11-29 23:47

    嵌入式自动售货机能实现什么功能?

    我们知道,智能设备的根本在于嵌入式系统的开发应用(嵌入式系统开发流程),随着电子技术不断的发展,很多智能化设备逐步取代了人工劳动,自动售货机就是其中一种基于嵌入式系统的智能化设备(什么是嵌入式系统
    发表于 04-17 08:14

    基于80C51单片机的自动售货机设计

    自动售货机自动化技术在人们生活中的重要应用。随着人们生活质量的不断提高,对自动售货机的性能要求越来越高。
    发表于 12-02 07:30

    自动售货机短信报警系统

    关键词 ZWG-03A 智能短信设备、自动售货机、短信报警摘 要 本文介绍 ZWG-03A 在自动售货机短信报警系统中的应用
    发表于 11-04 11:18 86次下载

    基于FPGA自动售货机主控制系统的设计

    从总体上介绍了自动售货机主控制系统的组成和功能,讨论了自动售货机工作原理,详细阐述了主控制系统FPGA的软、硬件设计及其主要控制模块的仿真实
    发表于 11-30 17:27 184次下载

    基于VHDL的自动售货机控制模块FPGA实现

    本文采用VHDL作为工具描述了自动售货机控制模块的逻辑控制电路,并在FPGA上实现。该自动售货机能够根据投入硬币额度,按预定的要求在投入硬币
    发表于 01-14 10:10 3431次阅读
    基于VHDL的<b class='flag-5'>自动</b><b class='flag-5'>售货机</b>控制模块<b class='flag-5'>FPGA</b>实现

    智能自动售货机售货

    英特尔打造核心技术智能自动售货机售货 .
    发表于 12-28 18:09 0次下载

    C语言教程之模拟自动售货机

    C语言教程之模拟自动售货机,很好的C语言资料,快来学习吧。
    发表于 04-25 09:38 0次下载

    使用FPGA实现自动售货机的VHDL程序与仿真资料

    本文档的主要内容详细介绍的是使用FPGA实现自动售货机的VHDL程序与仿真资料。
    发表于 12-21 17:10 24次下载
    使用<b class='flag-5'>FPGA</b>实现<b class='flag-5'>自动</b><b class='flag-5'>售货机</b>的VHDL程序与仿真资料

    自动售货机项目教程及文件下载

    自动售货机项目教程及文件下载
    发表于 05-06 11:12 0次下载

    自动售货机方案/设计/开发/项目

    厂商轻松实现角色转换。目前国内智能零售设备市场刚刚起步便已热火朝天,指数级的增长绝不只是梦想。目录一、自动售货机方案介绍二、自动售货机方案的优点三、
    发表于 11-10 12:50 47次下载
    <b class='flag-5'>自动</b><b class='flag-5'>售货机</b>方案/设计/开发/项目