简单计算器eda设计最终打印版(共14页)

上传人:des****85 文档编号:215695088 上传时间:2021-11-26 格式:DOC 页数:14 大小:367.50KB
返回 下载 相关 举报
简单计算器eda设计最终打印版(共14页)_第1页
第1页 / 共14页
简单计算器eda设计最终打印版(共14页)_第2页
第2页 / 共14页
简单计算器eda设计最终打印版(共14页)_第3页
第3页 / 共14页
简单计算器eda设计最终打印版(共14页)_第4页
第4页 / 共14页
简单计算器eda设计最终打印版(共14页)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《简单计算器eda设计最终打印版(共14页)》由会员分享,可在线阅读,更多相关《简单计算器eda设计最终打印版(共14页)(14页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上目 录第一章 设计原理1.1 课程设计依据在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,利用硬件描述语言Verilog HDL、EDA软件Quartus II和硬件平台Cyclone/Cyclone II FPGA进行电路系统的设计。1.2 课程设计内容及原理设计一个简单计算器,采用简单4*4计算器键盘,输入2位十进制数进行+、-、 *、/ 四种运算,输入数据分别用两位数码管显示,输出用四位数码管显示4位10进制数,其中除法的结果显示分为商和余数两部分,要求采用时序逻辑设计实现计算器功能。为了完成要求的效果显示,我先设计了一个简单的四则运算器,为了

2、使其结果能清楚的看到,所以计算器模块和一个7段数码管模块连接。实验要求,输入分别用两位数码管显示,输出用四位数码管显示,所以用一个38译码器和数码管连接,通过开关控制,形成动态显示。从左向右,依次是第一位数码管显示a的高四位,第二位数码管显示a的低四位;第三位数码管显示b的高四位,第四位数码管显示b的低四位;第五位数码管到第八位数码管显示输出的结果。通过改变时钟,使其看起来像同时显示在数码管上。1.3 课程设计要求1、 要求每个同学独立完成设计任务。2、 课程设计说明书封面格式要求见天津城市建设学院课程设计教学规范附表1。3、 课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、

3、规范。4、 测试要求:根据题目的特点,采用相应的时序仿真或者在实验系统上观察结果。5、 课程设计说明书要求:l 说明题目的设计原理和思路、采用方法及设计流程。l 系统框图、Verilog语言设计程序或原理图。l 对各子模块的功能以及各子模块之间的关系做较详细的描述。l 详细说明调试方法和调试过程。l 说明测试结果:仿真时序图和结果显示图,并对其进行说明和分析专心-专注-专业第二章 设计流程2.1设计流程图设计流程如下图,分别用两个数码管表示二位十进制数,用一个case语句表示输入数值采用哪种运算方式,分别用00,01,10,11表示加、减、乘、除。首先对运算符号进行选择,然后再在各自模块进行计

4、算,用38译码器选择从哪个数码管输出。图1 硬件设计流程图图2 输出结果A. B的软件流程图2.2 LED灯接线部分显示7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。设计7段译码器,输出信号LED7S的7位分别接如图一数码管的7个段,高位在左,低位在右。例如当LED7S输出为“”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管

5、显示“5”。注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段dp。LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。A、静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5840根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。故实际应用时必须增加*驱动器进行驱动,增加了硬体电

6、路的复杂性。B、动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数

7、码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。第三章 模块连接3.1 四选一多路器3.1.1多路器程序设计通过对四选一多路器设计,对计算器的运算符“+”,“-”,“*”,“/”进行选择程序如下:module jsq(a,b,c,out,out1,out2);input7:0a,b;input1:0c;output15:0out;output7:0out1,out2;reg 15:0out;reg

8、7:0out1,out2;always(a,b,c,out)case(c)2b00:beginout1=0;out2=0;out=a+b;end2b01:beginout1=0;out2=0;out=a-b;end2b10:beginout1=0;out2=0;out=a*b;end2b11:beginout1=a/b;out2=a%b;out=out1,out2;enddefault:;endcaseendmodule3.1.2四选一多路器仿真图在软件Quartus II中输入程序,进行仿真四选一多路器仿真图如下:图3 四选一多路器仿真图3.1.3四选一多路器仿真波形分析如图3所示为计四选一

9、多路器的实序仿真图,当输入a为1、b为1、c为00时输出out为2即1+1=2;当输入a=5,b=4,c=01时输出out=1.即5-4=1,当输入a=9,b=6,c=10时输出out=54,即9*6=54,当输入a=12,b=8,c=11时输出out1=1,out2=4,即商为12/8=1,余数为12%8=4.经此验证分析证明此计算器计算准确无误。模块设计成功。3.2 7段数码管显示3.2.1数码管程序设计程序如下:module DECS7S (A, LED7S);input 3:0 A;output 6:0 LED7S;reg 6:0 LED7S;always (A)begin case(

10、A)4b0000: LED7S=7b;4b0001: LED7S = 7b ; 4b0010: LED7S = 7b; 4b0011: LED7S = 7b; 4b0100: LED7S = 7b ; 4b0101: LED7S = 7b; 4b0110: LED7S = 7b ;4b0111: LED7S = 7b ;4b1000: LED7S = 7b ; 4b1001: LED7S = 7b ; 4b1010: LED7S = 7b ; 4b1011: LED7S = 7b ;4b1100: LED7S = 7b ;4b1101: LED7S = 7b ; 4b1110: LED7S =

11、 7b ;4b1111: LED7S = 7b ;endcase endendmodule3.2.2数码管仿真图在Quartus II中输入程序,进行波形仿真。数码管仿真图如下图所示:图4 数码管仿真图3.2.2数码管仿真图分析如图4所示为数码管显示器的时序仿真波形,当输入为2时七段数码管中abcdefg的高低电平分别为即abcdg点亮显示数字2,当输入为4时七段数码管对应显示即abcdef被点亮显示数字4.经验证其他数字显示均正确,七段数码管显示器模块设计仿真成功3.3 循环扫描模块3.3.1循环扫描程序程序如下:module xhsm(clk,rst,count,Dout);input c

12、lk,rst;output6:0Dout;output2:0count;reg6:0Dout;reg2:0count;reg6:0LED7S1,LED7S2,LED7S3,LED7S4,LED7S5,LED7S6,LED7S7,LED7S8;always(posedge clk or negedge rst)beginif(!rst)count=3b000;else if(count=3b111)count=3b000;elsecount=count+3b001;endalways(posedge clk)begincase(count)3b000: Dout=LED7S1;3b001: Do

13、ut=LED7S2;3b010: Dout=LED7S3;3b011: Dout=LED7S4;3b100: Dout=LED7S5;3b101: Dout=LED7S6;3b110: Dout=LED7S7;3b111: Dout=LED7S8;endcaseendendmodule3.3.2循环扫描仿真图在软件Quartus II中输入程序,对程序进行仿真。循环扫描仿真图如下图所示:图5 循环扫描仿真图3.3.3 循环扫描模块分析如图5所示为循环扫描时序仿真波形,该模块是一个循环扫描计数器,在时钟和复位信号的控制下,从000111循环计数分别控制八个数码管循环点亮,由于时钟的频率比较快,大

14、于人眼的分辨率,所以显示出八个数码管同时点亮,即同时显示计算器的输入、输出。3.4 简易计算器总体程序设计3.4.1简单计算器程序设计程序如下:module jsq9(a,b,c,Dout,count,clk,rst);input7:0a,b;input clk,rst;input1:0c;output6:0Dout;output 2:0count;reg6:0Dout;reg2:0count;reg15:0out;reg6:0 LED7S1,LED7S2,LED7S3,LED7S4,LED7S5,LED7S6,LED7S7,LED7S8;DECL7S u1(.A(a7:4),.LED7S(LED7S1);DECL7S u2(.A(a3:0),.LED7S(LED7S2);DECL7S u3(.A(b7:4),.LED7S(LED7S3);DECL7S u4(.A(b3:0),.LED7S(LED7S4);DECL7S

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号