简单计算器EDA设计(共16页).doc
《简单计算器EDA设计(共16页).doc》由会员分享,可在线阅读,更多相关《简单计算器EDA设计(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上目 录第一章 设计原理1.1 课程设计依据在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,利用硬件描述语言Verilog HDL、EDA软件Quartus II和硬件平台Cyclone/Cyclone II FPGA进行电路系统的设计。1.2 课程设计内容及原理设计一个简单计算器,采用简单4*4计算器键盘,输入2位十进制数进行+、-、 *、/ 四种运算,输入数据分别用两位数码管显示,输出用四位数码管显示4位10进制数,其中除法的结果显示分为商和余数两部分,要求设计键盘扫描存储逻辑,采用时序逻辑和有限状态机设计实现计算器操作的顺序步骤。 1.3 课程设
2、计要求1、 要求每个同学独立完成设计任务。2、 课程设计说明书封面格式要求见天津城市建设学院课程设计教学规范附表1。3、 课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。4、 测试要求:根据题目的特点,采用相应的时序仿真或者在实验系统上观察结果。5、 课程设计说明书要求:1)说明题目的设计原理和思路、采用方法及设计流程。2)对各子模块的功能以及各子模块之间的关系作明确的描述。3)对实验和调试过程,仿真结果和时序图进行说明和分析。4)包含系统框图、电路原理图、HDL设计程序、仿真测试图。第二章 设计流程2.1设计流程图设计流程如下图,分别用两个数码管表示二位十进制数,用一
3、个case语句表示输入数值采用哪种运算方式,分别用00,01,10,11表示加、减、乘、除。首先对运算符号进行选择,然后再在各自模块进行计算,用38译码器选择从哪个数码管输出。图1 硬件设计流程图图2 输出结果A. B的软件流程图第三章 模块连接3.1 四选一多路器通过对四选一多路器设计,对计算器的运算符“+”,“-”,“*”,“/”进行选择图3 四选一多路器程序如下:module jsq(a,b,c,out,out1,out2);input7:0a,b;input1:0c;output15:0out;output7:0out1,out2;reg 15:0out;reg7:0out1,out2
4、;always(a,b,c,out) case(c) 2b00:begin out1=0; out2=0; out=a+b; end 2b01:begin out1=0; out2=0; out=a-b; end 2b10:begin out1=0; out2=0; out=a*b; end 2b11:begin out1=a/b; out2=a%b; out=out1,out2; end default:; endcaseendmodule3.2 7段数码管显示3.2.1 LED灯接线部分显示7段数码显示译码器原理:通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然
5、而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示(数码管可以显示0F),最方便的方法就是利用译码程序在FPGA/CPLD中来实现。EL-EDA-实验系统的显示采用8位八段共阴极数码管(高电平有效),所对应的接口序号为:8段驱动接口:a、b、c、d、e、f、g、Dp;作为7段译码器,输入为需要显示的数,输出信号LED7S的7位分别接如图4数码管的7个段,高位在左,低位在右。例如当LED7S输出为“”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。注意:这里没有考虑表示小数点
6、的发光管,如果要考虑,需要增加段h。图4 共阴数码管及其电路8位数码扫描显示原理:四位拨码开关产生8421BCD码,经译码电路后成为7段数码管(不包括小数点段位)的字形显示驱动信号(ag)。图5所示的是8位数码扫描显示电路,其中每个数码管的7个段: g、f、e、d、c、b、a都分别连在一起,8个数码管分别由8个选通信号k1、k2、k8来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1、k2、k8分别
7、被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。图5 8位数码驱动显示电路扫描电路通过可调时钟输出片选地址SEL2.0。由SEL2.0 通过3-8译码器的输出决定了8位中的哪一位显示,ag决定了显示什么字形。SEL2.0变化的快慢决定了扫描频率f扫描的快慢。3.2.2数码管程序设计数码管模块:图6 数码管模块程序如下:module DECS7S (A, LED7S);input 3:0 A;output 6:0 LED7S;reg 6:0 LED7S;always (A)begin case(A)4b0000: LED7
8、S=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 = 7b ;4b1111: L
9、ED7S = 7b ;endcase endEndmodule3.3 循环扫描模块循环扫描模块:图7 循环扫描模块程序如下:module xhsm(clk,rst,count,Dout);input clk,rst;output6:0Dout;output2:0count;reg6:0Dout;reg2:0count;reg6:0LED7S1,LED7S2,LED7S3,LED7S4,LED7S5,LED7S6,LED7S7,LED7S8;always(posedge clk or negedge rst) begin if(!rst) count=3b000; else if(count=3
10、b111) count=3b000; else count=count+3b001; end always(posedge clk) begin case(count) 3b000: Dout=LED7S1; 3b001: Dout=LED7S2; 3b010: Dout=LED7S3; 3b011: Dout=LED7S4; 3b100: Dout=LED7S5; 3b101: Dout=LED7S6; 3b110: Dout=LED7S7; 3b111: Dout=LED7S8; endcase endendmodule3.4 简易计算器总体程序设计程序如下:module jsq9(a,b
11、,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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 计算器 EDA 设计 16
限制150内