用verilog语言设计简单计算器(共13页).docx
《用verilog语言设计简单计算器(共13页).docx》由会员分享,可在线阅读,更多相关《用verilog语言设计简单计算器(共13页).docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上目录第一章设计任务及要求11.1课程设计依据11.2课程设计内容11.3课程设计要求1第二章 设计思路12.1设计原理12.1.1计算器原理12.1.2数码管显示原理22.1.3 8位扫描原理22.2设计总体框图3第三章 设计源序及分析33.1计算器模块33.1.1计算器源程序33.1.2模块分析43.2数码管显示模块43.2.1数码管源程序43.2.2模块分析53.3循环扫描模块53.3.1循环扫描程序53.3.2模块分析63.4总程序63.4.1总体源程序63.4.2程序分析8第四章 序仿真结果及分析94.1计算器设计仿真及分析94.2数码管仿真图及分析94.3总
2、体仿真图10第五章 结果验证115.1实验结果及分析11第六章心得体会11第七章 参考文献12第一章设计任务及要求1.1课程设计依据在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,利用硬件描述语言Verilog HDL、EDA软件Quartus II和硬件平台Cyclone/Cyclone II FPGA进行电路系统的设计。1.2课程设计内容设计一个简单计算器,输入为8位二进制数,分别用两位数码管显示,输出的计算结果为16位二进制数,并用四位数码管显示,能够实现+、-、 *、/ 四种运算,其中除法的结果显示分为商和余数两部分,分别用两位数码管显示。1.3课程设计要求1、 要求
3、独立完成设计任务。2、 课程设计说明书封面格式要求见天津城市建设学院课程设计教学规范附表1。3、 课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。4、 测试要求:根据题目的特点,采用相应的时序仿真或者在实验系统上观察结果。5、 课程设计说明书要求:1) 说明题目的设计原理和思路、采用方法及设计流程。2) 系统框图、Verilog语言设计程序或原理图。3) 对各子模块的功能以及各子模块之间的关系做较详细的描述。4) 详细说明调试方法和调试过程。5) 说明测试结果:仿真时序图和结果显示图,并对其进行说明和分析。第二章 设计思路2.1设计原理2.1.1计算器原理 Verilo
4、g语言中可直接用运算符+、-、*、/、%来实现四则运算,系统会根据程序自动综合出相应的计算器。2.1.2数码管显示原理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”。注意,这里没有考虑表示小数点的发光管,如果要考虑,需要增加段h。图一 共阴数码管及其电路2.1.3 8位扫描原理图二所示的是8位数码扫描显示电路,其中每个数码管的7个段: g、f、e、d、c、b、a都分别连在一起,8个数码管分别由8个选通信号k1、k2、k8来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1、k2、k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的
6、数据,于是随着选通信号的扫变,就能实现扫描显示的目的。图二 8位数码驱动显示电路扫描电路通过可调时钟输出片选地址SEL2.0。由SEL2.0 通过3-8译码器决定了8位中的哪一位显示,SEL2.0变化的快慢决定了扫描频率f扫描的快慢。扫描频率大于人眼的分辨率时,呈现出八个数码管同时点亮。2.2设计总体框图计算模块输出模块输入模块扫描模块显示模块图三 设计总体框图第三章 设计源序及分析3.1计算器模块3.1.1计算器源程序mdule jsq(a,b,c,out);input7:0a,b;input1:0c;otput15:0out;reg 15:0outreg7:0out1,out2;alway
7、s(a,b,c,out)case(c)2b00:out=a+b;2b01:out=a-b;2b10:out=a*b;2b11:beginout1=a/b;out2=a%b;out=out1,out2;enddefault:;endcaseendmodule3.1.2模块分析该模块是本次设计的核心部分,用于实现四则运算,两位八位二进制数a、b作为待计算的输入,并输入两位二进制数c作为计算功能选择,00代表加法运算、01代表减法运算、10代表乘法运算、11代表除法运算。输出16位二进制数out位运算结果。并在总体设计中把输入、输出端接到数码管上。3.2数码管显示模块3.2.1数码管源程序modul
8、e DECL7S (A, LED7S);input 3:0 A;output 6:0 LED7S;reg 6:0 LED7S;always (A) begin case(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:
9、 LED7S = 7b ; 4b1011: LED7S = 7b ; 4b1100: LED7S = 7b ; 4b1101: LED7S = 7b ; 4b1110: LED7S = 7b ; 4b1111: LED7S = 7b ; endcase endendmodule3.2.2模块分析该模块是整个设计中的显示部分,是一个编码器组合逻辑设计,每个数码管可显示十六进制0至F,对应4位二进制数,因此输入端a、b分别用两个数码管显示,输出out用四个数码管显示,该设计中需要八个同样的数码管显示器,即。此模块将在总程序中被调用八次。3.3循环扫描模块3.3.1循环扫描程序modulexhsm(
10、clk,rst,count,Dout);inputclk,rst;output6:0Dout;output2:0count;reg6:0Dout;reg2:0count;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:Dout=LED7S2;3b010:Dout=LED7S3;3b011:Dou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- verilog 语言 设计 简单 计算器 13
限制150内