西工大数电课设简单计算器Word格式文档下载.docx
《西工大数电课设简单计算器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《西工大数电课设简单计算器Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。
i.课程设计目的
•••••••••••••••••••••••••
4
ii.设计任务与要求••••••••••••••••••••••••
iii.方案设计与论证
••••••••••••••••••••••••5
iv.单元电路设计与参数计算
••••••••••••••••7
v.遇到问题的解决方法••••••••••••••••••••
11
vi.结论与心得
•••••••••••••••••••••••••••
12
vii.参考文献•••••••••••••••••••••••••••••
14
题目:
简易两位数计算器
一、课程设计目的
1)巩固和加深所学电子技术课程与数字电路的基本知识,提高综合运用所学知识的能力。
2)培养学生根据课题需要选用参考书、查阅手册、图表和文献资料的能力,提高学生独立解决工程实际问题的能力。
3)通过设计方案的分析比较、设计计算、元件选绎及电路安装调试等环节.初步掌握单实用电路的工程设计方。
.
4)提高学生的动手能力.掌握常用仪器设备的正确使用方法,学会对简单实用电路的实验调试和对整机指标的测试方法。
5)了解与课题有关的电路以及元器件的工程技术规范,能按课程设计任务书的要求编写设计说明书,能正确反映设计和实验成果,能正确绘制电路图等。
6)初步掌握FPGA的使用,以及硬件描述语言的书写。
二、设计任务与要求
一)任务:
(1)显示学号.
(2)实现两位数的加减乘除运算.
二)设计要求:
1.显示学号
(1)用四位数码管显示.
(2)循环显示同组2人的学号后四位.
2.实现两位数的加减乘除运算
(1)通过键盘输入待运算值.
(2)采用数码管显示待运算值.
(3)通过VGA显示运算结果.
三、方案设计与论证
1.系统总体设计框图如下:
2.整个系统拆分为五部分构建:
(1).键盘输入—数码管显示部分:
外接键盘输入于数码管显示四个数字,前两位与后两位各表示一个两位数,同时输出数码管显示值(8位)以及键盘上+,-,×
,/对应的选择值。
(2).计算部分:
取输出的数码管显示值作为输入,对应转化为两个两位数(转化为8位二进制数),用键盘部分输出的选择值,对应选择两位数的二进制数加减乘除运算,其中除法运算所得包括商与余数,所得结果进行输出。
(3).VGA显示部分:
由于需要把计算所得结果显示在VGA显示屏上,则把计算结果作为VGA输入进行计算器运算结果的显示(最多可显示4位),其中除法时前两位表示商,后两位表示余数。
(4)学号数码管显示部分:
对50M时钟信号进行分频到肉眼所能观察到的频率,控制在数码管上循环显示两位小组成员的学号后四位。
(5)数码管显示数据选择部分:
由于学号显示跟键盘输入数字在数码管上显示都需要用到4位数码管,这时回发生冲突,所以要加入数据选择部分,设计数据选择控制开关进行两路数据选择,当需要显示循环的学号时控制学号显示部分输出数据输出到数码管,当需要显示所需计算两位数显示时,控制键盘输入—数码管显示部分输出数据到数码管。
3.数据流程
由键盘输出数据到数码管,或者由循环显示学号输出数据到数码管,计算器部分由键盘输入产生输出到数码管的数据作为运算输入,产生运算结果数据在VGA显示。
四、单元电路设计与参数计算
1.计算器模块:
计算器模块没有外界硬件,处于键盘输入-数码管显示模块与VGA显示模块之间,模块的中输入有le0,le1,le2,le3四组8位数据,sel为运算选择端,输出out0,ou1,out2,out3为4组16位数据,由输入是使共阳极数码管显示对应十进制数的数据,则在计算器模块中要进行转换,把能使数码管显示的十进制数的对应8位数据转成对应的8位二进制数,用选择语句使选择端sel选择运算类型,已经转化成二进制数的数据可以直接加减乘除,由于会有溢出运算输出加长为16位二进制数,除法时前八位为商,后八位为余数,在运算中,唯一区别在于除法,除法两位数(十进制)相除,商和余数都最多为两位数(十进制),所以使输出也为两个两位数(十进制)。
输出时out0,out1,out2,out3都是16为位的二进制数,是为了显示方便由运算所得的十六位二进制数对应表达的十进制数位数:
out0=out/16'
b0000001111101000;
//整除
out_db3=out%16'
//取余数
out1=out_db3/16'
b0000000001100100;
out_db4=out%16'
out2=out_db4/16'
b0000000000001010;
out3=out_db4%16'
其中进行的仿真如下:
输入的数据对应为十进制数是32与12,选择加法,所得结果是44,说明运算正确。
2.键盘输入—数码管显示模块:
模块中,clk为50M时钟信号,ps2k_clk是ps2时钟接口,ps2k_data是ps2接口数据接口,xuan为输出选择信号,有led类型的都是使数码管点亮的数据,两者对应是相同的,只是把它们分为两路便与控制计算器模块与点亮数码管。
通过ps2接口接入键盘时,按键按下与断开的过程会发送通码与断码,在模块中对ps2k_data进行处理会使得键盘按下一键后发送的相应的键码作为选择信号,按键0~9键码与数码管显示值相对应,+,-,×
,/键码与两位选择信号对应:
parameterseg0=8'
hc0,//数码管显示值
seg1=8'
hf9,
seg2=8'
ha4,
seg3=8'
hb0,
seg4=8'
h99,
seg5=8'
h92,
seg6=8'
h82,
seg7=8'
hf8,
seg8=8'
h80,
seg9=8'
h90,
sega=2'
b00,//加
segb=2'
b01,//减
segc=2'
b10,//乘
segd=2'
b11;
//除
然后按键按下对应进行输出。
3.VGA显示模块:
首先是取0~9对应的字模,控制显示范围,此模块中基于简单方便,取了32*16的显示,需要显示4位数字,则行中取8位为一位数字显示,由于输入时钟信号是25M,则把信号进行二分频,设置复位信号,out_db0~3,是用来选择对应的数字的,16位数中有效位数最多为4位,取后四位进行选择0~9对应的字模。
4.学号循环显示模块:
此模块紧需时钟信号输入作为循环学号所用,由于50M的时钟频率过高,需要进行分频,分频到肉眼所能辨别的频率,模块设计了一个两位数的四循环,对称取其中的两个时间点,对输出led1~4进行赋值,对应学号为多少,赋给输出的所对应的8位数码管显示值就是多少,得出循环显示的四位学号。
5.数码管显示选择模块:
由于两模块需用到数码管,会发生冲突在此加入sw开关,接开发板拨动开关sw9键进行选择,此模块相当于二选一数据选择器,把两组数据在选择端控制下选通其中一组数据。
6.顶层模块:
把相应的输入输出对接,得到整体的系统,经验证系统能成功完成所需功能。
五、遇到问题的解决方法
1.设计键盘输入—数码管显示模块时,在逐一按下键盘按键时数码管无法逐一显示相应数字,数码管显示的是4位一样的数字,最后发现问题出现在控制输出上,最后加入了一个6循环的语句,每输出一次i加一,对应输出了第一、二位数码管,运算选择,第三、四位数码管所需要的数据。
2.在VGA显示模块实现时,VGA显示屏一直无输出,查看了许多遍程序还是没发现有错误,纠结了许久,错误发生与输入时钟信号接入了50M时钟信号,而VGA所需要的时钟信号为25M,在对50M进行二分频后得出结果。
3.最后模块连接完成,引脚分配完成后,运行发生错误,关键处在k22引脚上,修改方案如下:
首先把按照这个把主动模式改成被动模式Assignment-->
DEVICE-->
DEVICE&
PinOptions...-->
Configuration-->
Configurationscheme:
PasiveSerial(canuseConfigurationDEVICE),然后再Assignment-->
dual-purposepin中把nCEO改成asregularI/O。
成功实现计算器运算。
六、结论与心得
这个简易两位数计算器系统由程序实现后,最终烧录进DE0开发板,同时外接VGA显示屏跟ps2键盘,进行了验证,能成功实现了两位数的简单加减乘除运算,可以说此课程设计获得了成功。
这次课程设计是人生的第一次课程设计,回顾起此次课程设计,虽然时间很短,但是可以学到很多很多的的东西,虽然后课堂上没有教授过verilogHDL与VHDL,但程程设计中需要,我们在短短的十天初步了解了这两种硬件描述语言,运用与实践中,写出了能够实现设计的代码,大大提高了自己的实际动手能力和独立思考的能力。
课程设计中遇到了不少的难题,在请教同学与老师的过程中让自己对这些问题有了更深刻的了解,同时独立处理遇到问题的过程中更是锻炼了自己处理难题的能力,当然在课程设计的过程中也会发现自己的不足,在以后的学习生活中更容易进步,通过这次课程设计,使我们了解熟悉了FPGA与对应描述语言工程的设计方法和步骤,而且在与同学讨论的同时也提高了团结合作的能力,同时培养了我们综合运用知识和独立展开实践创新的能力。
最后,规范化训练我们撰写研究实验报告,提高了书面表达能力。
这次的课程设计,为我们以后更复杂更困难的课程设计以及毕业设计做了铺垫,相信我们以后的课程设计与毕业设计会做的更好。
七、参考文献
[1]:
吴厚航.深入浅出玩转fpga[M].北京:
北京航天航空大学出版社.
[2]:
潘松,黄继业.EDA技术与VHDL(第三版)[M].北京:
清华大学出版社,2009年.
[3]:
王彦.基于FPGA的工程设计与应用[M].西安:
西安电子科技大学出版社,2007年.
[4]:
刘靳.Verilog程序设计与EDA[M].西安:
西安电子科技大学出版社,2012年.