FPGA2实训报告.docx
- 文档编号:2833459
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:14
- 大小:115.52KB
FPGA2实训报告.docx
《FPGA2实训报告.docx》由会员分享,可在线阅读,更多相关《FPGA2实训报告.docx(14页珍藏版)》请在冰点文库上搜索。
FPGA2实训报告
桂林电子科技大学职业技术学院
FPGA应用实训报告
抢答器
学院(系):
电子信息工程系
专业:
电子信息工程技术
学号:
学生姓名:
指导教师:
目录
摘要...................................................................1
1引言...................................................................2
2方案论证...............................................................3
2.1设计任务与要求.....................................................3
2.2方案1.............................................................4
2.3方案2..............................................................4
3总体设计方案...........................................................4
3.1设计思想与框架图....................................................4
4.硬件设计..............................................................5
4.1抢答器的总体硬件结构及原理.........................................5
4.2硬件原理框图.......................................................5
5软件设计思想...........................................................7
5.1流程图.............................................................7
5.2获取键值程序框图.....................................................8
5.3程序分析...........................................................8
6结论....................................................................8
致谢.....................................................................9
参考文献.................................................................10
附件.....................................................................11
摘要
介绍了数码显示八路抢答器电路的组成、设计及功能,电路采用FPGA软件进行常用集成电路进行设计。
该抢答器除具有基本的抢答功能外,还具有定时、计时和报警功能。
主持人通过时间预设开关预设供抢答的时间,系统将完成自动倒计时。
若在规定的时间内有人抢答,则计时将自动停止;若在规定的时间内无人抢答,则系统中的蜂鸣器将发响,提示主持人本轮抢答无效,实现报警功能,倒计时未到而抢答则抢答无效。
通过课程设计提高和巩固了所学的专业知识,以及知识的综合应用和FPGA的编程技术。
关键词:
抢答器编码译码定时报警
1.引言
进入21世纪越来越来多的电子产品出现在人们的日常生活中,例如企业、学校和电视台等单位常举办各种智力竞赛,抢答记分器是必要设备。
过去在举行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。
人们于是开始寻求一种能不依人的主观意愿来判断的设备来规范比赛。
因此,为了克服这种现象的惯性发生人们利用各种资源和条件设计出很多的抢答器,从最初的简单抢答按钮,到后来的显示选手号的抢答器,再到现在的数显抢答器,其功能在一天的趋于完善不但可以用来倒计时抢答,还兼具报警,计分显示等等功能,有了这些更准确地仪器使得我们的竞赛变得更加精彩纷呈,也使比赛更突显其公平公正的原则。
今天随着科技的不断进步抢答器的制作也更加追求精益求精,人们摆脱了耗费很多元件仅来实现用指示灯和一些电路来实现简单的抢答功能,使第一个抢答的参赛者的编号能通过指示灯显示出来,避免不合理的现象发生。
2方案论证
2.1设计任务与要求
要求:
计数8人抢答器。
10个按键:
系统复位键、主判、8位选手。
抢答器工作:
主判按开始数码管显示9-0倒计时(选手抢答无效)倒计时
完后蜂鸣器“滴“一声选手可以抢答显示选手号数。
以此循环。
2.2方案1
利用C51单片机进行抢答器进行设计,电路主要由C51芯片,外围电路的按键.数码管,与非门组成,其特点是电路简单,可更改性适中,但是需要外接时钟脉冲,以及外接电源才可运行,单片机的ROM比较小,不能容纳过大的程序!
2.3方案2
利用FPGA芯片及在FPGA实验板上完成,主要设计过程基本在软件中完成,编写过程中可实时发现错误,可以随时下载更改验证。
特点是电路简单,不需要外接电路,可更改性强,可容纳更大的程序,功能性强,多样化!
综上所述,在学校尽量节约的条件,以及单片机C51与FPGA编程特点来看,选择FPGA方案2最容易方便实现!
3总体设计方案
3.1设计思想、框架图
4硬件设计
4.1抢答器的总体硬件结构及原理
基于FPGA的硬件结构主要由键盘输入、时钟频率、蜂鸣器、和LED显示和FPGA程序存储器五部分组成!
4.2硬件原理框图
图4.2.1硬件原理框图
显示模块
LED显示块是由发光二极管显示字段的显示器件。
在单片机应用系统中通常使用的是7段LED。
这种显示块共有共阴极与共阳极两种,本设计将采用共阳极。
共阳极LED显示块的发光二极管与阳极并接。
数码管显示块中共有8个发光二极管,其中7个发光二极管构成七笔字形“8”,1个发光二极管构成小数点。
7段显示块与FPGA接口非常容易。
只要将一个8位并行输出与显示块的发光二极管引脚相连即可。
8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如表5.1所示。
通常将控制发光二极管的8位字节数据称为段选码。
共阳极与共阴的段选码互为补数。
键盘模块
按键方式分为独立式和行列式两种,本设计采用行列式按键结构,是4×4键盘,本设计中只用了其中的10个按键。
行列式按键是指直接用I/O口线通过动态扫描构成的按键电路。
每个按键通过动态扫描需要八根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。
它的电路配置灵活,软件结构简单,占用的I/O资源少。
首先固定输出4行为高电平(接到电源),然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。
同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。
获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。
5软件设计思想
5.1流程图
如图所示电路包括主体电路和扩展电路两部分。
其中主体电路完成基本的抢答功能,即主持人按下控制开关后,当选手按动抢答键时,数码管显示选手编号,同时封锁输入电路,其他选手抢答无效。
扩展电路完成定时抢答的功能以及报警功能。
图2.2所示电路的工作过程是:
接通电源后,主持人将控制开关置于“清除”处,此时抢答器处于禁止状态,选手不能进行抢答,定时显示器显示设定的时间(10s),当主持人将控制开关置于“开始”时,扬声器发出声响,抢答器处于工作状态,同时定时器开始倒计时。
当选手在定时时间内按动抢答键时,电路要完成以下功能:
(1)优先编码电路判断抢答者的编号,并由锁存器进行锁存,然后通过译码显示电路在数码管上显示抢答者的编号;
(2)扬声器发出短暂声响;
(3)控制电路对其余输入编码进行封锁,禁止其他选手进行抢答;
(4)控制电路要使定时器停止工作,数码管上显示剩余的抢答时间,当选手将问题回答完毕,主持人操作控制开关进行系统清零,使系统回复到禁止工作状态,以便进行下一轮抢答。
当定时时间到,却没有选手抢答时,系统将报警,并封锁输入电路,禁止选手超时后抢答。
5.2获取键值程序框图
5.3程序分析(超过3页者,放在附录中分析)
6结论
本次电子课程设计实习将理论与实践有机地结合,既考查了我们对理论知识的掌握程度,由反映了实际动手能力,更主要的是考查了我们对知识的综合运用以及创新设计思维能力,为今后的发展提供了一次良好的学习环境。
针对课设题目八路抢答器,一开始还没有头绪,不会运用所学知识进行有效设计,但通过上网查阅各种类似的设计,去图书馆翻阅相关设计书籍,查阅所提供的芯片功能,确定基本设计方案,又通过仿真验证试验方案的可实行性,虽说比较烦杂但却对设计一个电路有了基本的经验。
同时也使自己认识到:
1、设计思路是整个设计的灵魂
拿下每个课题能有一个非常清晰的设计思路是至关重要的。
只有对课题的充分理解,对各种器件的熟练掌握,勾画出基本的设计图是成功的关键,,必须多花时间在设计上才能为后续工作提供更扎实的基础。
翻阅各种资料,上网查询填补所需知识的空白是必要的。
1、调试
调试工作是个精细工作。
在调试过程中,有些问题是芯片本身损坏引起的,也有些是因为焊接问题引起的等因此排查过程需要特别有耐心,通过对芯片功能的检验,对焊点的检查最后检查出问题所在。
当最后解决问题时,电路的正确是非常振奋,也很有成就感和满足感。
总之,在设计过程中学到了许多。
作为现代的大学生,如果仅停留在以往的层次上,是远远跟不上时代的步伐,也无法使自己立足在竞争如此激烈的社会里,通过此次实习,看到了自己的水平和差距,学要在今后的学习中又进一步的提高。
2012年6月5日
致谢
经过多次的修改和调试,实验总算成功了,感觉当初的汗水总算没白费,多次失败的烦躁烟消云散,几近崩溃的意志也迅速放松下来。
写这么一些代码就能实现你想要的功能,不得不让人感慨EDA的神奇以及立下学好EDA的誓言。
当然,在品味成功的喜悦时,我们还要思考实验的得与失。
以下是本次试验的心得:
在实验的开始阶段,我对所写的代码进行了波形仿真,发现波形仿真的结果是对的,而下到芯片去测试时,效果就不对了,经过多次修改,实验现象才逐步达到理想状态。
因此,我觉得我们学EDA不能完全以来波形仿真,而应多在试验箱上测试,那里才是真正检验程序对错的地方。
1、在连接各个模块的时候我明白了一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导致整个文件系统的编译出错。
总之,EDA作为前沿学科,对于我们电子信息工程专业的学生来说,学习EDA对我们知识面以及运用知识的能力的提高有很大的帮助。
相信自己学习的脚步不会停止!
感谢老师孜孜不倦的教诲。
相信在EDA学习过程中自己思维能力、学习能力、思考方式的提高,定会在以后的学习过程中给我带来很大的帮助。
参考文献
1.XX文库
2.王金明编著数字系统设计与VerilogHDL(第4板)
3.赵艳秋,冯晓伟,冯健.FPGA应用愈加广泛,行业演进呈现三大趋势[N].中国电子报,2008(08):
1-2.
3.夏宇闻.现代电子设计工具与IP核的重用[J].半导体技术,2001(11):
17-21.
李志强,杨波,孙涛,等.一种基于FPGA的面向网络应用的开发平台设计[J].山东科学,2010,23(5):
28-32.
4..陆佳华.零存整取NETFPGA开发指南[M].北京航空航天大学出版社.2009.
LRDGroup.NetFPGA官方网站开放源代码工程[EB/OL].[2010-7-18].fpga.org.
5.黄伟,罗新民.基于FPGA的高速数据采集系统接口设计[J].单片机与嵌入式系统应用,2006(04):
34-36.
6.刘小平,何云斌,量怀国.基于VerilogHDL的有限状态机设计与描述[J].计算机工程与设计,2008,4(29):
958-960.
7.何乃良.高速环境下的状态机设计和优化方法.[EB/OL].(2008-11-17)[2011-6-12]./UMLApplication/200811171.asp.
[17]孔超.基于FPGA面向典型应用的安全防护系统研究与设计[D].济南:
山东大学,2010.
8.McAULEYAJ,FRANCISP.FastRoutingTableLookupUsingCAMs[EB/OL].[2011-05-21].
9.林金,杨波.基于NetFPGA的网络流量采集器[J].济南大学学报(自然科学版),2011,25
(1):
6-10.
抢答器程序
`timescale1ns/1ps
ModuleResponder(clk,sm_out,main,seg_bit,start,res,
x1,x2,x3,x4,x5,x6);
inputclk;
inputstart,res;开始,复位按键
inputx1,x2,x3,x4,x5,x6;//选手输入按键
regclk_1hz;
regclk_1khz;
outputreg[6:
0]sm_out;
outputreg[3:
0]seg_bit;
outputregmain=0;//主裁判按键
regr=0;
regu=1;
reg[7:
0]times;
reg[20:
0]counter;
reg[30:
0]counter_1hz;
reg[7:
0]sm_h;
reg[7:
0]sm_l;
regw=0;
regd=0;
parameters0=0,s1=2'd1;
regstate;
initial
begin
state=0;counter=0;counter_1hz=0;sm_l=9;end
always@(posedgeclk)//数码管输出信号
begin
if(!
start)beginr<=1;d<=0;end//开始
if(!
res)begind<=1;end//复位
elseif(r)
beginif(counter_1hz==20_000_000)//2hz
begin
counter_1hz=0;clk_1hz=~clk_1hz;end
elsecounter_1hz=counter_1hz+1;
if(counter>=100000)
begin
counter<=0;clk_1khz=~clk_1khz;end
elsebegincounter<=counter+1;end
case(times)
0:
sm_out=7'b001_0000;
1:
sm_out=7'b000_0000;
2:
sm_out=7'b111_1000;
3:
sm_out=7'b000_0010;
4:
sm_out=7'b001_0010;
5:
sm_out=7'b001_1001;
6:
sm_out=7'b011_0000;
7:
sm_out=7'b010_0100;
8:
sm_out=7'b111_1001;
9:
sm_out=7'b100_0000;
default:
sm_out=7'b100_0000;
endcase
end
end
always@(posedgeclk_1hz)//0~9动态显示
begin
if(d)
beginsm_h<=0;w<=0;end
else
beginsm_h<=sm_h+1;
if(sm_h==9)main<=1;
elseif(sm_h>=10)
beginmain<=0;w<=1;end
end
end
always@(x1,x2,x3,x4,x5,x6,d)
beginif(d)beginsm_l<=9;u<=1;end
elseif(w&&u)
begincase({x1,x2,x3,x4,x5,x6})
6'b0111_11:
sm_l<=8;
6'b1011_11:
sm_l<=7;
6'b1101_11:
sm_l<=6;
6'b1110_11:
sm_l<=5;
6'b1111_01:
sm_l<=4;
6'b1111_10:
sm_l<=3;
default:
sm_l<=sm_l;
endcase
if(sm_l>0&&sm_l<9)
u<=0;
end
end
always@(posedgeclk_1khz)//选手键盘动态扫描
begin
case(state)
s0:
beginseg_bit=4'b1011;times<=sm_h;state=s1;end
s1:
beginseg_bit=4'b0111;times<=sm_l;state=s0;end
endcase
end
endmodule
各个引脚图
NET"clk"LOC=P9;
NET"key[0]"LOC=G11;
NET"key[1]"LOC=H10;
NET"key[2]"LOC=H11;
NET"key[3]"LOC=G12;
NET"key[4]"LOC=J10;
NET"key[5]"LOC=J11;
NET"key[6]"LOC=K11;
NET"key[7]"LOC=K15;
NET"key[0]"LOC=T11;
NET"key[1]"LOC=T10;
NET"key[2]"LOC=P10;
NET"key[3]"LOC=N10;
NET"key[4]"LOC=M10;
NET"key[5]"LOC=P9;
NET"key[6]"LOC=T9;
NET"res"LOC=K5;
NET"seg[0]"LOC=R13;
NET"seg[1]"LOC=P12;
NET"seg[2]"LOC=P11;
NET"seg[3]"LOC=N11;
NET"beeper"LOC=T2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA2 报告