数字系统设计技术课程设计报告.docx

上传人:b****6 文档编号:11930433 上传时间:2023-06-03 格式:DOCX 页数:13 大小:145.02KB
下载 相关 举报
数字系统设计技术课程设计报告.docx_第1页
第1页 / 共13页
数字系统设计技术课程设计报告.docx_第2页
第2页 / 共13页
数字系统设计技术课程设计报告.docx_第3页
第3页 / 共13页
数字系统设计技术课程设计报告.docx_第4页
第4页 / 共13页
数字系统设计技术课程设计报告.docx_第5页
第5页 / 共13页
数字系统设计技术课程设计报告.docx_第6页
第6页 / 共13页
数字系统设计技术课程设计报告.docx_第7页
第7页 / 共13页
数字系统设计技术课程设计报告.docx_第8页
第8页 / 共13页
数字系统设计技术课程设计报告.docx_第9页
第9页 / 共13页
数字系统设计技术课程设计报告.docx_第10页
第10页 / 共13页
数字系统设计技术课程设计报告.docx_第11页
第11页 / 共13页
数字系统设计技术课程设计报告.docx_第12页
第12页 / 共13页
数字系统设计技术课程设计报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字系统设计技术课程设计报告.docx

《数字系统设计技术课程设计报告.docx》由会员分享,可在线阅读,更多相关《数字系统设计技术课程设计报告.docx(13页珍藏版)》请在冰点文库上搜索。

数字系统设计技术课程设计报告.docx

数字系统设计技术课程设计报告

深圳职业技术学院

ShenzhenPolytechnic

数字系统设计技术

课程设计

课题名称:

电子售货机

学院:

电子与通信工程学院

班级:

组员:

学号:

指导老师:

 

目录

一、设计方案1

1、功能简介1

2、开发测试环境选择1

二、售货机EDA程序设计1

1、定义端口与信号说明1

1.1输入端口1

1.2输出端口1

1.3信号2

2、状态模块说明2

2.1状态转换图2

2.2购买1元商品模块2

2.2购买5元商品模块3

2.3购买7元商品模块4

2.4顶层电路结构4

三、小结5

四、附录5

1、使用说明5

2、参考文献资料5

3、附表6

一、设计方案

1、功能简介

本文采用状态机的方法所设计的简易电子售货机可出售1元、5元、7元的商品,可接受1元、5元、10元的投币,可显示选择商品的价格,可找回购买后的余额。

若投币金额充足则自动给出对应的商品和自动找零,且在投币购买过程中若投币余额不足会发出警告。

在商品购买、找零完毕后,售货机会回到初始状态,顾客可进行下次购买。

另设有初始化按钮,按下之后售货机回到初始状态。

2、开发测试环境选择

开发和仿真软件选择了Altera公司的综合性PLD/FPGA开发软件QuartusII8.0,首先在QuartusII8.0下进行程序设计,编译通过后用QuartusII8.0进行功能仿真并检查对应的功能。

二、售货机EDA程序设计

1、定义端口与信号说明

1.1输入端口

reset:

异步复位端口,低电平有效;clk:

时钟信号端口,控制状态的转换;item1:

1元商品选择端口;item5:

5元商品选择端口;item7:

7元商品选择端口;ok:

商品选择确认端口;coin1:

1元投币信号端口;coin5:

5元投币信号端口;coin10:

10元投币信号端口。

1.2输出端口

zhaoqian:

退钱信号端口;jiage:

对应商品价格显示端口;get1:

1元商品输出端口:

get5:

5元商品输出端口;get7:

7元商品输出端口;warn:

投币金额不足提示窗口。

1.3信号

s0:

初始状态信号;rmb1:

购买1元商品模块信号;rmb5:

购买5元商品模块信号;rmb7:

购买7元商品模块信号;now_state:

当前信号保存变量;next_state:

下一时钟上升沿读取信号保存变量。

2、状态模块说明

2.1状态转换图

本程序状态机设计包含4个状态s0:

初始态;rmb1:

1元商品购买;rmb5:

5元商品购买;rmb7:

7元商品购买。

2.2购买1元商品模块

本模块处理当顾客选择1元商品后的处理,执行流程如下:

首先价格端口显示价格为1元,顾客在按下确认键,ok<=’1’后,若投币1元,则get1<=’1’给出1元商品、zhaoqian<=0退钱0元;若投币5元,则get1<=‘1’给出1元商品、zhaoqian<=4退钱4元;若投币10元,则get1<=‘1’给出1元商品、zhaoqian<=9退钱9元。

仿真结果见图1:

2.2购买5元商品模块

本模块处理当顾客选择5元商品后的处理,执行流程如下:

首先价格端口显示价格为5元,顾客在按下确认键,ok<=’1’后,若投币1元,则warn<=‘1’投币金额不足提示,zhaoqian<=1退钱1元;若投币5元,则get5<=‘1’给出5元商品、zhaoqian<=0退钱0元;若投币10元,则get5<=‘1’给出5元商品、zhaoqian<=5退钱5元;仿真结果见图2:

2.3购买7元商品模块

本模块处理当顾客选择7元商品后的处理,执行流程如下:

首先价格端口显示价格为7元,顾客在按下确认键,ok<=’1’后,若投币1元,则warn<=‘1’投币金额不足提示,zhaoqian<=1退钱1元;若投币5元,则gwarn<=‘1’投币金额不足提示、zhaoqian<=5退钱5元;若投币10元,则get7<=‘1’给出7元商品、zhaoqian<=3退钱7元;仿真结果见图3:

2.4顶层电路结构

将售货机的VHDL生成IC连接如图4:

三、小结

在学期期末,我们进行了FPGA的课程设计,按老师的要求我们组选择了电子售货机的项目,并用QuartusII8.0软件进行了程序的编写和仿真。

在设计的过程中我们小组遇到了很多的问题,在本次自动售货机我们采用状态机的方法进行设计,但我们自身对状态机的理解不够透彻导致在设计的过程中软件编译时的语法逻辑检测无法通过,比如Error(10028):

Can'tresolvemultipleconstantdriversfornet"next_state.s0"atshjv.vhd(44),在并行进程中对同一信号进行了多次赋值导致了并行信号冲突问题;Error:

Zero-timeoscillationinnode"|shouhuoji|Add0~22"attime10.0ns.Checkthedesignorvectorsourcefileforcombinationalloop,在功能仿真时出现了“死锁”问题,最后通过查找资料,改变设计思路的方式基本解决问题。

在设计过程中我们小组经历多次失败,程序也换了很多版本,通过努力最终基本达到任务要求,虽然编写的程序存在情况考虑不足等BUG,但我们也明白了这不仅仅在意的是结果,而更注重的是过程。

四、附录

1、使用说明

本程序仿真方法如下:

例如:

在建立好仿真文件后,在开始的信号周期内为复位端reset送低电平,若要购买1元商品则在下一个时钟周期中将item1、ok以及coin1、coin5或coin10置高,则程序会给出对应的jiage、zhaoqian的处理结果。

其他模块仿真方法同理。

2、参考文献资料

a.数字电路EDA设计/顾斌等编著.西安电子科技大学出版社,2004.2(2010.2重印)

b.FPGA/CPLD应用技术:

Verilog语言版/王静霞主编.北京电子工业出版社,2011.1

c.XX文库

 

3、附表

简易电子售货机源代码

libraryieee;

useieee.std_logic_1164.all;

entityshouhuojiis

port(reset,clk,item1,item5,item7,coin1,coin5,coin10,ok:

instd_logic;

zhaoqian:

outintegerrange0to10;jiage:

outintegerrange0to10;

get1,get5,get7,warn:

outstd_logic);

endshouhuoji;

architecturedataofshouhuojiis

typestateis(s0,rmb1,rmb5,rmb7);

signalnext_state,now_state:

state;

--signaltt:

integerrange0to50000000;

begin

--process(tt,clkk)--设定1s周期clk

--begin

--if(clkk'eventandclkk='1')thentt<=tt+1;

--if(tt=5)then

--tt<=0;clk<=notclk;

--endif;

--endprocess;

process(clk,reset)

begin

if(reset='0')then

now_state<=s0;

elsif(clk'eventandclk='1')then

now_state<=next_state;

endif;

endprocess;

process(now_state,item1,item5,item7,coin1,coin5,coin10,ok,display)

begin

casenow_stateis

whens0=>

get1<='0';

get5<='0';

get7<='0';

warn<='0';

jiage<=0;

zhaoqian<=0;

if(item1='1')then

next_state<=rmb1;jiage<=1;warn<='0';--1元购买模块

elsif(item5='1')then

next_state<=rmb5;jiage<=5;warn<='0';--5元购买模块

elsif(item7='1')then

next_state<=rmb7;jiage<=7;warn<='0';--7元购买模块

else

next_state<=s0;jiage<=0;warn<='0';

endif;

--------------------------------------------------------------rmb1

whenrmb1=>

get1<='0';

get5<='0';

get7<='0';

warn<='0';

if(ok='1')then

if(coin1='1')then

get1<='1';

get5<='0';

get7<='0';

warn<='0';

zhaoqian<=0;

next_state<=s0;

elsif(coin5='1')then

get1<='1';

get5<='0';

get7<='0';

warn<='0';

zhaoqian<=4;

next_state<=s0;

elsif(coin10='1')then

get1<='1';

get5<='0';

get7<='0';

warn<='0';

zhaoqian<=9;

next_state<=s0;

endif;

elsenext_state<=rmb1;

endif;

--------------------------------------------------rmb5

whenrmb5=>

get1<='0';

get5<='0';

get7<='0';

warn<='0';

if(ok='1')then

if(coin1='1')then

get1<='0';

get5<='0';

get7<='0';

warn<='1';

zhaoqian<=1;

next_state<=rmb5;

elsif(coin5='1')then

get1<='0';

get5<='1';

get7<='0';

warn<='0';

zhaoqian<=0;

next_state<=s0;

elsif(coin10='1')then

get1<='0';

get5<='1';

get7<='0';

warn<='0';

zhaoqian<=5;

next_state<=s0;

endif;

elsenext_state<=rmb5;

endif;

---------------------------------------------rmb7

whenrmb7=>

get1<='0';

get5<='0';

get7<='0';

warn<='0';

if(ok='1')then

if(coin1='1')then

get1<='0';

get5<='0';

get7<='0';

warn<='1';

zhaoqian<=1;

next_state<=rmb7;

elsif(coin5='1')then

get1<='0';

get5<='0';

get7<='0';

warn<='1';

zhaoqian<=5;

next_state<=rmb7;

elsif(coin10='1')then

get1<='0';

get5<='0';

get7<='1';

warn<='0';

zhaoqian<=3;

next_state<=s0;

endif;

elsenext_state<=rmb7;

endif;

endcase;

endprocess;

enddata;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2