您的位置 首页 汽车

根据VHDL+FPGA的主动售货机操控模块的规划与完成

EDA技术是以计算机为工具完成数字系统的逻辑综合、布局布线和设计仿真等工作。电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系统处理,最后得到设计结果,并且修改设计方案如同修改软件一样方便

EDA技能是以核算机为东西完结数字体系的逻辑归纳、布局布线和规划仿真等作业。电路规划者只需要完结对体系功用的描绘,就能够由核算机软件进行体系处理,最终得到规划成果,而且修正规划计划好像修正软件相同便利。使用EDA东西能够极大地进步规划功率。

  使用硬件描绘言语编程来表明逻辑器材及体系硬件的功用和行为,是EDA规划办法的一个重要特征。VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描绘言语)是硬件描绘言语的一种,对体系硬件的描绘功用很强而语法又比较简单。VHDL具有强壮的行为描绘才能,规划者能够不明白硬件的结构,只需集中精力进行电子体系的规划和功用优化;具有便利的逻辑仿真与调试功用,在规划前期就能查验体系的功用,便利地比较各种计划的可行性及其好坏。现在,VHDL作为IEEE的工业规范硬件描绘言语,得到很多EDA公司的支撑,在电子工程范畴已经成为事实上通用硬件描绘言语。

  本文选用VHDL作为东西描绘了主动售货机操控模块的逻辑操控电路,并在FPGA上完结。该主动售货机能够依据投入硬币额度,按预订的要求在投入硬币大于规定值时送出饮料并找零。

  规划计划

  本文所规划的简易主动售货机可出售矿泉水,假定每瓶1.5元。设两个投币孔,别离接纳1元和5角两种硬币,两个输出口,别离输出购买的产品和找零。假定每次只能投入一枚1元或5角硬币,投入1元5角硬币后机器主动给出一瓶矿泉水;投入2元硬币后,在给出一瓶矿泉水的一起找回一枚5角的硬币。别的设置一复位按钮,当复位按钮按下时,主动售货机回到初始状况。

  开发软件选用功用强壮的Altera公司的最新可编程逻辑器材开发东西Quartus II 8.0,完结芯片选用Altera公司FLEX10K系列的EPF10K10LC84-4;首先在核算机上完结程序规划、编译及时序仿真,然后将经过验证的规划文件下载到挑选的可编程逻辑器材中,并在电子规划主动化试验体系中进行硬件模仿和测验。

  状况机VHDL程序规划

  有限状况机FSM(Finite State Machine)及其规划技能是有用数字体系规划中完结高功率、高牢靠逻辑操控的重要途径。传统的状况机规划办法需进行繁琐的状况分配、制作状况表、简化次态方程等,而使用VHDL能够防止这些烦琐的进程,直接使用状况转化图进行状况机的描绘。此外,与VHDL的其他描绘方法比较,状况机的VHDL表述丰厚多样,程序层次分明,结构明晰,易读易懂;在排错、修正和模块移植方面也有其独特的特色。

  状况机有摩尔(Moore)型和米立(Mealy)型两种。Moore型状况机的输出信号只与当时状况有关;Mealy型状况机的输出信号不只与当时状况有关,还与输入信号有关。结合本文规划,因为输出仅与状况有关,选用了Moore型状况机规划主动售货机操控模块,状况转化图如图1所示。

图1 主动售货机状况转化图

  1)状况界说:S0表明初态,S1表明投入5角硬币,S2表明投入1元硬币,S3表明投入1元5角硬币,S4表明投入2元硬币。

  2)输入信号:取投币信号为输入逻辑变量,用两位的矢量state_inputs表明。state_inputs(0)表明投入1元硬币,state_inputs(1)表明投入5角硬币。输入信号为1表明投入硬币,输入信号为0表明未投入硬币。

  3)输出信号:给出矿泉水和找零为两个输出变量,用两位的矢量comb_outputs表明。comb_outputs(0)表明输出货品,comb_outputs(1)表明找5角零钱。输出信号为1表明输出货品或找零,输出信号为0表明不输出货品或不找零。

依据图1所示的状况转化图,用VHDL中的CASE_WHEN结构和IF_THEN_ELSE句子完结操控功用,源程序如下:

  LIBRARY IEEE; –库和程序包的使用说明

  USE IEEE.STD_LOG%&&&&&%_1164.ALL;

  ENTITY sellmachine IS –实体界说

  PORT(clk,reset: IN std_logic;

  state_inputs:IN std_logic_vector(0 TO 1);

  comb_outputs:OUT std_logic_vector(0 TO 1));

  END sellmachine;

  ARCHITECTURE state OF sellmachine IS –结构体

  TYPE fsm_st IS (S0,S1,S2,S3,S4); –状况枚举类型界说

  SIGNAL current_state,next_state:fsm_st; –状况信号的界说

  BEGIN

  reg:PROCESS(reset,clk) –时序进程

  BEGIN

  IF reset=‘1’ THEN current_state《=S0; –异步复位

  ELSIF rising_edge(clk) THEN

  current_state《=next_state; –状况转化

  END IF;

  END PROCESS;

  corn:PROCESS(current_state,state_inputs) –组合进程

  BEGIN

  CASE current_state IS

  WHEN S0=》comb_outputs《=“00”; –现态S0

  IF state_inputs《=“00” THEN next_state《=S0; –输入不同,次态不同

  ELSIF state_inputs《=“01” THEN next_state《=S1;

  ELSIF state_inputs《=“10” THEN next_state《=S2;

  END IF;

  WHEN S1=》comb_outputs《=“00”; –现态S1

  IF state_inputs《=“00” THEN next_state《=S1; –输入不同,次态不同

  ELSIF state_inputs《=“01” THEN next_state《=S2;

  ELSIF state_inputs《=“10” THEN next_state《=S3;

  END IF;

  WHEN S2=》comb_outputs《=“00”; –现态S2

  IF state_inputs《=“00” THEN next_state《=S2; –输入不同,次态不同

  ELSIF state_inputs《=“01” THEN next_state《=S3;

  ELSIF state_inputs《=“10” THEN next_state《=S4;

  END IF;

  WHEN S3=》comb_outputs《=“10”; –现态S3

  IF state_inputs《=“00” THEN next_state《=S0; –输入不同,次态不同

  ELSIF state_inputs《=“01” THEN next_state《=S1;

  ELSIF state_inputs《=“10” THEN next_state《=S2;

  END IF;

  WHEN S4=》comb_outputs《=“11”; –现态S4

  IF state_inputs《=“00” THEN next_state《=S0; –输入不同,次态不同

  ELSIF state_inputs《=“01” THEN next_state《=S1;

  ELSIF state_inputs《=“10” THEN next_state《=S2;

  END IF;

  END CASE;

  END PROCESS;

  END state;

  编译、仿真及FPGA完结

  在Altera公司的可编程逻辑器材集成开发渠道Quartus II 8.0下完结程序的修正、编译并进行时序仿真。

  1)编译:编译是EDA规划中的中心环节。软件将对规划输入文件进行逻辑化简、归纳和优化, 适当地用一片或多片器材进行适配,最终发生编程用的编程文件。首要包含规划编译和查看、逻辑优化和归纳、适配和切割、布局和布线、生成编程数据文件等进程。主动售货机操控模块VHDL文件编译陈述如图2所示。

图2 编译陈述

  陈述中给出了进行编译的时刻、选用的开发软件的版别、顶层规划实体名、选用器材的系列和类型、时序剖析状况、占用资源状况及引脚使用状况等信息。

  2)时序仿真:编译后对体系和各模块进行时序仿真,剖析其时序联系,估量规划的功用及查看和消除竞赛冒险对错常有必要的。仿真前,先使用波形修正器树立波形文件,仿真成果将会生成陈述文件和输出信号波形,从中便能够观察到各个节点的信号改变。若发现过错,则回来规划输入中修正规划逻辑。主动售货机操控模块仿真波形如图3所示。

图3 时序仿真波形

  3) FPGA完结:将编译阶段生成的编程数据文件经过Quartus II 下载到芯片EPF10K10LC84-4中,并在电子规划主动化试验体系中进行测验得到了正确的成果。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/195808.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部