(完整word版)EDA计算器设计大作业

合集下载

eda大作业

eda大作业

e d a大作业本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March班级 021291学号 02129057EDA实验报告学院电子工程学院专业电子信息工程学生姓名 02129057导师姓名纠博交通控制器一.设计目标设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别是70、5和75秒。

当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。

当特殊运行状态结束后,管理系统恢复原来的状态,继续正常运行。

二.设计思路与实施方案1.设计目标思路整理①在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其中一方向(东西方向)是绿灯、黄灯、红灯;另一方向(南北方向)是红灯、绿灯、黄灯。

②设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是70s、5s和75s。

③当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。

当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。

2.原理分析本系统主要由分频器,计数器,控制器,倒计时显示器等电路组成。

分频器将晶振送来的50MHZ信号变为1HZ时钟信号;计数器实现总共150秒的计数,它也是交通控制系统的一个大循环;控制器控制系统的状态转移和红黄绿灯的信号输出;倒计时显示电路实现75秒,70秒及5秒的倒计时和显示功能。

整个系统的工作时序受控制器控制,是系统的核心。

基于此,做出交通控制系统的转移图如下:其中,s0:A方向绿灯亮,B方向红灯亮,此状态持续70秒;S1:A方向黄灯亮,B方向红灯亮,此状态持续5秒;S2:A方向红灯亮,B方向绿灯亮,此状态持续70秒;S3:A方向红灯亮,B方向黄灯亮,此状态持续5秒;S4:紧急制动状态,A方向红灯亮,B方向红灯亮,当hold=‘0‘时进入这种状态。

EDA大作业

EDA大作业

EDA大作业信号发生器的设计要求:(1) 产生方波、三角波、锯齿波、正弦波(2)产生波形的模式可选(3)频率为10KHz设计方案:1.总体设计思路1.1 设计步骤此设计将按模块式实现,据设计要求,设计总共分四大步份完成:(1)产生波形(四种波形:方波、三角波、矩形波和锯齿波)信号;(3)频率为10KHZ幅度固定;1.2设计思想利用VHDL编程,依据基本数字电路模块原理进行整合。

系统各部分所需工作时钟信号由输入系统时钟信号得到。

总体设计框图如下图1所示:波形输出2. 方案论证2.1方案采用VHDL语言来编程,然后下载文件到FPGA来实现。

VHDL语言是电子设计领域的主流硬件描述语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大降低了硬件设计任务,提高了设计效率和可靠性,要比模拟电路快得多。

该方案是利用FPGA具有的静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,极大地提高了电子系统设计的灵活性和通用性,设计图如图2。

图2 FPGA总体设计图(需要修改) 通过FPGA软件扫描方式将波形数据读出传输给DAC0832(为8分辨率的D/A转换集成芯片)产生波形输出。

这种方法在软、硬件电路设计上都简单,且与我们的设计思路紧密结合。

㈠3硬件选择4软件设计4.1.1 波形产生模块本设计用VHDL语言根据傅立叶函数采集点进行扫描,分别产生正弦波、三角波和矩形波。

以下介绍各种常用周期信号的傅立叶函数展开式。

4.1.3正弦波(1)设计思想正弦波发生分为两个步骤,即正弦波幅值采样存储和正弦波波形的还原输出。

幅值采样是将一个周期正弦波进行64等分,如图3所示,将64个采样点进行量化处理,量化值=255*sin360/64(V),将64点量化值存入存储器ROM。

正弦波形的产生是通过循环反复将存储器中的64点采样值通过DAC0832进行还原输出,得到幅值正比于64点采样值的正弦波。

EDA四则运算大作业报告

EDA四则运算大作业报告

《电子设计自动化》课程设计题目: 2位十进制四则运算器电路院(系)信息科学与工程学院专业通信工程专业届别 2011级班级11通信工程B班学号 1115107007 姓名陈晓涛任课老师彭盛亮摘要本次课程设计的主要内容为采用VHDL硬件描述语言实现2位十进制数(0~99)的四则运算,在Quartus Ⅱ软件上实现仿真,并利用EDA 实验箱实现输入、计算、显示输出的功能。

整个系统由输入模块、计算模块、和输出显示模块三个部分组成。

输入模块由5个脉冲按键构成,其中4个为数字输入、1个为计算模式选择;计算模块分为加法器、减法器、乘法器和除法器;输出显示模块由8个数码管和4个LED灯构成,其中前4个数码管显示待运算数值,后4个数码管显示运算结果,计算模式由4个LED灯的亮灭标识。

本计算器的输入采用了十位、个位分别输入的方法,方便了实际的操作,具有更好的实际应用意义。

同时模块化的设计方案,层次化的设计理念极大的简化了设计的复杂性、加快了设计速度,便于修改出现的错误和完善功能(增加模块实现),提高了效率。

目录第一章系统设计——————————————————————-------4一、设计要求————————————————————————————-----4二、系统设计方案——————————————————————————-----4 第二章单元电路设计————————————————————--------5一、加法单元————————————————————————————------5二、减法单元————————————————————————————------5三、乘法单元————————————————————————---———---—5四、除法单元———————————————————————————------—5 第三章软件设计——————————————————————-----—— 6一、输入模块——————————————————————————-------—-6二、计算模块——————————————————————————-----—---71、加法器——————————————————————————-----——72、减法器—————————————————————————-----———83、乘法器———————————————————————————-----—84、除法器———————————————————————————-----—9三、显示模块——————————————————————————----—-—-9 第四章系统测试————————————————————————-----10一、系统性能指标——————————————————————————---—10二、功能的测试方法、步骤—————————————————————---——10三、仪器设备名称、型号————————————————————---————10四、测试数据————————————————————————--—————10 第五章结论———————————————————————--—————11 参考文献—————————————————————————----——----11 附录——————————————————————————--———————11一、引脚分配图————————————————————---————--------11二、所用到的程序————————————————————————--———12第一章系统设计一、设计要求输入两个2位十进制数(0~99),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;可调用LPM_MULT 及LPM_DIVIDE 模块。

(完整word版)EDA计算器设计大作业

(完整word版)EDA计算器设计大作业

计算器设计专业:电子信息工程设计者:本文介绍了一个简单的计算器的设计,该设计采用了现场可编程逻辑器件FPGA设计,并基于VHDL 语言实现加减乘除功能,并用十进制显示在数码管上.系统由计算部分、输入部分、选择部分、输出部分组成,计算部分为加法器、减法器、乘法器和除法器组成.使用Altera公司的QuartusII开发软件进行功能仿真并给出仿真波形,并下载到试验箱,用实验箱上的按键开关模拟输入,用数码管显示十进制计算结果.通过外部按键可以完成四位二进制数的加、减、乘、除四种运算功能,其结果简单,易于实现.关键字:VHDL,计算器,QuartusII一.实验目的 (4)二、流程图 (5)三.顶层原理图 (5)四、各个模块 (7)(1)加法器模块 (7)1、封装元件 (7)2、加法器程序 (7)3、仿真结果 (8)(2)减法器模块 (9)1、封装元件 (9)2、减法器程序 (10)3、仿真结果 (11)4、硬件运行结果 (11)(3)乘法器模块 (12)1、封装元件 (12)2、乘法器的设计思想 (13)3、乘法器程序 (14)4、仿真结果 (14)5、硬件运行结果 (15)(4)除法器模块 (16)1、封装元件 (16)2、除法器设计思想 (16)3、除法器程序 (16)4、仿真结果 (17)5、硬件运行结果 (17)(5)8位除法器 (18)1、封装元件 (18)2、8位除法器设计思想 (19)3、8位除法器程序 (19)4、仿真结果 (22)(6)数码管七段译码电路 (22)1、封装元件 (22)2、共阴极七段显示码十六进制转换表 (23)3、七段译码器程序 (23)4、仿真结果 (24)(7)选择模块 (24)1、封装元件 (24)2、程序 (25)五、管脚锁定 (26)六、小结与收获 (26)一.实验目的1、熟悉QuartusII软件的相关操作,掌握数字电路设计的基本流程.2、介绍QuartusII 的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。

EDA大作业 课程设计 简易计算器

EDA大作业 课程设计 简易计算器

在掌握常用数字电路功能和原理的基础上,根据EDA技术课程所学知识,利用硬件描述语言Verilog HDL、EDA软件Quartus II和硬件平台Cyclone/Cyclone II FPGA进行电路系统的设计。

本次实验我完成的内容是简单计算器的设计,下面我简单的进行一下原理的阐述。

设计一个简单计算器,输入为8位二进制数,分别用两位数码管显示,输出的计算结果为16位二进制数,并用四位数码管显示,能够实现+、-、 *、/ 四种运算,其中除法的结果显示分为商和余数两部分,分别用两位数码管显示。

为了完成要求的效果显示,我先设计了一个简单的四则运算器,为了使其结果能清楚的看到,所以计算器模块和一个7段数码管模块连接。

实验要求,输入分别用两位数码管显示,输出用四位数码管显示,所以用一个3—8译码器和数码管连接,通过开关控制,形成动态显示。

从左向右,依次是第一位数码管显示a的高四位,第二位数码管显示a的低四位;第三位数码管显示b的高四位,第四位数码管显示b的低四位;第五位数码管到第八位数码管显示输出的结果。

通过改变时钟,使其看起来像同时显示在数码管上。

设计流程如下图,分别用两个数码管表示八位二进制数,用一个case 语句表示输入数值采用哪种运算方式,分别用00,01,10,11表示加,减,乘,除。

用3—8译码器选择从哪个数码管输出。

硬件流程图输出结果 A. B 的显示软件流程图LED 灯接线部分显示:中心控制 复位编码 数码管输出输入A 输入B 运算选择C 输出out L E D 8 L E D 7 L E D 6 L E D 5 L E D 4 L E D 3 L E D 2 L E D 1第三章程序简单计算器的程序如下:module jsq9(a,b,c,Dout,count,clk,rst);input[7:0]a,b;input clk,rst;input[1:0]c;output[6:0]Dout;output [2:0]count;reg[6:0]Dout;reg[2:0]count;reg[15:0]out;reg[6:0] LED7S1,LED7S2,LED7S3,LED7S4, LED7S5,LED7S6,LED7S7,LED7S8; DECL7S u1(.A(a[7:4]) , .LED7S(LED7S1));DECL7S u2(.A(a[3:0]) , .LED7S(LED7S2));DECL7S u3(.A(b[7:4]) , .LED7S(LED7S3));DECL7S u4(.A(b[3:0]) , .LED7S(LED7S4));DECL7S u5(.A(out[15:12]) , .LED7S(LED7S5));DECL7S u6(.A(out[11:8]) , .LED7S(LED7S6));DECL7S u7(.A(out[7:4]) , .LED7S(LED7S7));DECL7S u8(.A(out[3:0]) , .LED7S(LED7S8));reg[7:0]out1,out2;always@(a,b,c,Dout,count,clk,rst)case(c)2'b00:out=a+b;2'b01:out=a-b;2'b10:out=a*b;2'b11:beginout1=a/b;out2=a%b;out={out1,out2};enddefault:;endcasealways@(posedge clk or negedge rst)beginif(!rst)count<=3'b000;else if(count==3'b111)count<=3'b000;elsecount<=count+3'b001;endalways@(posedge clk)begincase(count)3'b000: Dout<=LED7S1;3'b001:Dout<=LED7S2;3'b010:Dout<=LED7S3;3'b011:Dout<=LED7S4;3'b100: Dout<=LED7S5;3'b101:Dout<=LED7S6;3'b110:Dout<=LED7S7;3'b111:Dout<=LED7S8;endcaseendendmodulemodule DECL7S (A, LED7S);input [3:0] A;output [6:0] LED7S;reg [6:0] LED7S;always @(A)begincase(A)4'b0000 : LED7S<=7'b0111111; 4'b0001: LED7S <= 7'b0000110 ; 4'b0010: LED7S <= 7'b1011011; 4'b0011: LED7S <= 7'b1001111; 4'b0100: LED7S <= 7'b1100110 ; 4'b0101: LED7S <= 7'b1101101; 4'b0110: LED7S <= 7'b1111101 ; 4'b0111: LED7S <= 7'b0000111 ; 4'b1000: LED7S <= 7'b1111111 ; 4'b1001: LED7S <= 7'b1101111 ; 4'b1010: LED7S <= 7'b1110111 ; 4'b1011: LED7S <= 7'b1111100 ; 4'b1100: LED7S <= 7'b0111001 ;4'b1101: LED7S <= 7'b1011110 ; 4'b1110: LED7S <= 7'b1111001 ; 4'b1111: LED7S <= 7'b1110001 ; endcaseendendmodule第四章模块连接在本程序中,共由三个模块组成,第一个模块是一个四选一多路器其仿真图为:第二个模块是7段数码管显示程序如下module DECL7S (A, LED7S);input [3:0] A;output [6:0] LED7S;reg [6:0] LED7S;always @(A)begincase(A)4'b0000 : LED7S<=7'b0111111;4'b0001: LED7S <= 7'b0000110 ;4'b0010: LED7S <= 7'b1011011;4'b0011: LED7S <= 7'b1001111;4'b0100: LED7S <= 7'b1100110 ;4'b0101: LED7S <= 7'b1101101;4'b0110: LED7S <= 7'b1111101 ;4'b0111: LED7S <= 7'b0000111 ;4'b1000: LED7S <= 7'b1111111 ;4'b1001: LED7S <= 7'b1101111 ;4'b1010: LED7S <= 7'b1110111 ;4'b1011: LED7S <= 7'b1111100 ;4'b1100: LED7S <= 7'b0111001 ;4'b1101: LED7S <= 7'b1011110 ;4'b1110: LED7S <= 7'b1111001 ;4'b1111: LED7S <= 7'b1110001 ;endcaseendendmodule仿真图如下:把这个两个模块用一个3—8译码器进行连接,使其达到实验的要求。

eda实验报告5计数器设计

eda实验报告5计数器设计

EDA实验5 计数器设计一、实验目的计数器是实验中最为经常使用的时序电路模块之一,本实验的要紧目的是把握利用HDL描述计数器类型模块的大体方式。

二、实验仪器1.EDA开发软件一套2.微机一台3.实验开发系统一台三、实验说明计数器是数字电路系统中最大体的功能模块之一,设计时能够采纳原理图或HD语言完成。

下载验证时的计数时钟可选用持续或单脉冲,并用数码管显示计数值。

四、实验要求1.设计一个带有计数许诺输入端、复位输入端和进位输出端的十进制计数器。

2.编制仿真测试文件,并进行功能仿真。

3.下载并验证计数器功能。

4.为上述设计成立元件符号。

五、实验进程LIBRARY IEEE;USE counter ISPORT (CLK,RST,EN : IN STD_LOGIC;CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC );END counter;ARCHITECTURE behave OF counter ISBEGINPROCESS(CLK, RST, EN)VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINIF RST ='1' THEN CQI := (OTHERS => '0');ELSIF CLK'EVENT AND CLK = '1' THENIF EN = '1' THENIF CQI < "1001" THEN CQI := CQI + 1;ELSE CQI :=(OTHERS => '0' );END IF;END IF;END IF;IF CQI = "1001" THEN COUT <= '1' ;ELSE COUT <= '0' ;END IF;CQ <= CQI; END PROCESS;END behave;2.实验结果。

EDA大作业 简易计算器

EDA大作业 简易计算器

EDA大作业简易计算器目录EDA大作业简易计算器 (1)目的 (2)任务 (2)内容及步骤 (3)实验设计及实现过程 (3)设计一个1位全加器 (3)设计四位全加器 (4)(1)设计四位加法器 (5)(2)设计可进行加减运算的四位全加器 (6)(3)实现四位全加器的原码输出 (7)设计四位乘法器 (10)(1)设计八位加法器 (10)(2)设计四位乘法器 (11)(3)将乘积结果转化为十进制数 (13)构成简易计算器 (15)下载到实验箱上验证功能 (17)小结与收获 (18)目的1、学习面向可编程器件的FPGA的简单数字系统的设计流程;2、掌握EDA软件Quartus II的原理图输入方式,以及硬件描述语言描述方式;3、熟悉实验装置——实验箱。

任务在可编程逻辑器件上实现一个简易计算器,可以进行4位二进制数的加法和乘法运算,其中被加(乘)数取值范围0~15,加(乘)数取值范围-15~15。

要求用原理图的输入方式及硬件描述语言的结构描述方式完成。

用实验箱上的按键开关模拟输入,用数码管显示十进制计算结果。

内容及步骤1、设计一个1位全加器。

运用波形仿真检查功能正确后,将其封装成1位全加器模块。

2、以1中已封装的1位全加器模块为基础设计一个4位全加器并将其封装成模块,要求:(1) 加数为正时,实现两个4位二进制数与来自低位进位的加法运算,输出显示和及高位进位。

(2) 加数为负时,实现两个4位二进制数的减法运算,输出显示差的原码和正负数标志。

3、以全加器为基础设计一个4位乘法器并封装成乘法器模块,输出显示乘积和正负数标志。

4、以2、3中生成的器件模块为基础构成一个简易计算器,实现如下图功能。

根据S的输入,分别完成Y=A+B或Y=A×B。

5、下载到实验箱上验证功能。

实验设计及实现过程设计一个1位全加器电路图如下:其中A1、B1分别为两个加数,C1为来自低位的进位,S为输出的全加和,C01为向高位的进位。

EDA大作业1

EDA大作业1

EDA大作业1 3位二进制运算器及其数码管扫描显示电路一、目的1. 学习面向可编程器件(FPGA)的简单数字系统的设计流程。

2. 熟练掌握EDA设计软件Quartus II的原理图输入方式和层次化设计模式。

3.熟悉实验装置——实验板,掌握板上外设的工作原理。

二、预习任务按照以下任务要求完成电子版预习报告。

验收后和终结报告合并一起提交。

1. 根据实验任务中的步骤提示,写出要用到的电路模块及其功能。

2. 阅读附录了解FPGA实验板提供的外设资源,并掌握其工作原理。

三、实验任务在可编程逻辑器件上实现一个运算器,可以进行3位二进制数(无符号数)的加减运算。

要求用原理图的输入方式完成。

用实验板上的按键和拨码开关模拟输入,用数码管和发光二极管显示运算结果。

具体内容及步骤如下:1. 用门电路设计一个1位二进制全加器。

运用波形仿真检查功能正确后,将其封装成1位全加器模块。

2. 以1中已封装的1位全加器模块为基础实现一个3位二进制全加器,并仿真检查功能正确与否。

3. 以2中的3位全加器模块为基础实现一个3位二进制运算器,可以完成运算S=M±N。

其中当减法运算结果为负数时,输出显示差的原码和负数标志。

可将运算结果和负数标志下载至发光二极管显示验证。

4. 设计一个4位数码管的扫描显示电路。

(1)将运算器的两个运算数和运算结果根据拨码开关DIP1、DIP2的状态,在4位数码管上轮流显示,如表1所示。

(提示:可以选用库中的译码器7448或自行设计译码器)(2)负数标志在发光二极管显示。

拨码开关与数码管实物图,见图1。

表1 拨码开关与数码管状态表图1a 拨码开关图1b 4位扫描数码管5. 下载到实验板上验证功能。

外设与FPGA的连接引脚见《FPGA实验板说明书》。

四、验收步骤请同学们首先按以下步骤自查:1. 3位二进制全加器的顶层原理图和仿真2. 运算器的顶层原理图和仿真3. 运算器下载及功能演示4. 运算器及数码管扫描显示电路的顶层原理图和仿真5. 运算器及数码管扫描显示电路下载及功能演示整个project下载实现全部功能后,才能开始验收。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算器设计专业:电子信息工程设计者:摘要本文介绍了一个简单的计算器的设计,该设计采用了现场可编程逻辑器件FPGA设计,并基于VHDL语言实现加减乘除功能,并用十进制显示在数码管上。

系统由计算部分、输入部分、选择部分、输出部分组成,计算部分为加法器、减法器、乘法器和除法器组成。

使用Altera公司的QuartusII开发软件进行功能仿真并给出仿真波形,并下载到试验箱,用实验箱上的按键开关模拟输入,用数码管显示十进制计算结果。

通过外部按键可以完成四位二进制数的加、减、乘、除四种运算功能,其结果简单,易于实现。

关键字:VHDL,计算器,QuartusII目录一.实验目的 (4)二、流程图 (4)三.顶层原理图 (5)四、各个模块 (6)(1)加法器模块 (6)1、封装元件 (6)2、加法器程序 (7)3、仿真结果 (7)(2)减法器模块 (8)1、封装元件 (8)2、减法器程序 (9)3、仿真结果 (10)4、硬件运行结果 (11)(3)乘法器模块 (12)1、封装元件 (12)2、乘法器的设计思想 (12)3、乘法器程序 (13)4、仿真结果 (14)5、硬件运行结果 (14)(4)除法器模块 (15)1、封装元件 (15)2、除法器设计思想 (15)3、除法器程序 (16)4、仿真结果 (16)5、硬件运行结果 (17)(5)8位除法器 (18)1、封装元件 (18)2、8位除法器设计思想 (18)3、8位除法器程序 (19)4、仿真结果 (21)(6)数码管七段译码电路 (22)1、封装元件 (22)2、共阴极七段显示码十六进制转换表 (22)3、七段译码器程序 (23)4、仿真结果 (23)(7)选择模块 (24)1、封装元件 (24)2、程序 (25)五、管脚锁定 (25)六、小结与收获 (26)一.实验目的1、熟悉QuartusII 软件的相关操作,掌握数字电路设计的基本流程。

2、介绍QuartusII 的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。

3、了解VHDL 或原理图设计方法与定制IP 模块的思想。

4、掌握并行加法器,减法器乘法器以及除法器的设计思路及工作原理。

5、设计一个能完成加减乘除功能并以十进制显示结果的简单计算器。

二、流程图• 当输入为00时输出加法结果• 当输入为01时输出减法结果• 当输入为10时输出乘法结果• 当输入为11时输出除法结果 输入控制功能的数 选择模块 减法模块乘法模块 除法模块 加法模块显示结果十六进制转换成十进制三.顶层原理图创新:四个模块输出均为十六进制数,为了输出方便观察,设计了8位除法器,将输出变为十进制数显示在数码管上。

DATAIN[1..0]为输入控制端,通过试验箱上两个拨码开关控制输入。

A[3..0]和B[3..0]是两个四位二进制输入数,当DATAIN 为00时进行加法运算,当DATAIN 为01时进行减法运算,当DATA 为10时进行乘法运算,当DATA 为11是进行除法运算。

结果用十进制显示三个共阳静态LED 数码管上,除法的余数单独显示在右下角的七段驱动共阳数码管中的一个上。

乘法模块除法模块减法模块 加法模块控制模块 七段数码管 输出个位输出十位输出百位 三个八位除法器,把十六进制数转换为十进制显示除法余数四、各个模块(1)加法器模块1、封装元件当CLR 为‘1’时清零,输出为零当CLR 为‘0’时,输入两个四位二进制数,输出两个数之和,S[3..0]为和,S[4]为进位。

CLRA[3..0]B[3..0]S[7..0]ADDER4Binst62、加法器程序3、仿真结果当CLR为1时,输出为0;当CLR为0时,进行加法运算。

S[3..0]为相加后得到的和,S[7..4]为相加后的进位。

4、硬件运行结果从左到右,前三个数码管为结果,用十进制显示:第一个为百位,第二个为十位,第三个为个位。

第五个为加数,第六个为被加数。

(2)减法器模块1、封装元件CLR a[3..0] b[3..0]s[3..0]cosub4 inst1设计思想:减去一个数等于加上这个数的补码。

对减数求补码,再调用加法器当CLR为‘1’时清零,输出为零当CLR为‘0’时,a是四位二进制被减数,b时四位二进制减数。

S为相减的结果,co为借位,当co为0时代表a减b是整数,否则为负数或者0。

2、减法器程序3、仿真结果调用一个加法程序CLR为清零,当CLR为1时清零,输出为0;当CLR为0时进行减法运算,a、b为两个四位二进制输入,s为输出,当co为0时,代表s为正,当co为1时代表co为负,当被减数小于减数时,s为相减得到的结果的补码。

4、硬件运行结果从左到右,前三个数码管用十进制显示结果:第一个代表正负,为0时代表正,为1时代表负。

第五个为减数,第六个为被减数。

(3)乘法器模块1、封装元件当clr 为‘1’时输出为0当clr 为‘0’时,a 与b 相乘输出y2、乘法器的设计思想用并行相乘的方法。

通过开关和键盘,两组分别输入4bit 的数据进行乘法运算时,先求出部分积,即求得二进制数据的乘数和被乘数逐位相乘,之后运用二进制加法进行加和。

举例如下,10X9=90:• --10 × 9 = 90 • -- 1 0 1 0 • -- X 1 0 0 1 = • -- ------------- • -- 00001010• -- 00000000 --部分积clr a[3..0]b[3..0]y [7..0]multi4binst21•-- 00000000•- 01010000• ---------------------------- •-- 1011010 =90•这里加法的结果就是所求结果。

3、乘法器程序4、仿真结果clr为清零,当clr为1时进行乘法运算,a、b为两个四位二进制输入,y为十六进制输出。

5、硬件运行结果从左到右,前三个数码管用十进制显示结果:第一个为百位,第二个为十位,第三个为个位。

第五个为乘数,第六个为被乘数。

(4)除法器模块1、封装元件当clr 为‘1’时,输出为0。

当clr 为‘0’时,a 与b 相除输出s ,s 高四位为商,低四位为余2、除法器设计思想• f:=a; g:=b; e:=(others=>‘0’);--f 等于被除数,g 等于除数 • for i in 1 to 15 loop --e 为商 • if (f>=g) then f:=f-g; e:=e+1; • else exit; • end if; • end loop;• s(7 downto 4)<=e;s(3 downto 0)<=f;• 利用循环的思想设计除法器。

S 高四位为商,第四位为余数clr a[3..0]b[3..0]s[7..0]div isioninst23、除法器程序4、仿真结果当clr=‘1’时清零,当clr=‘0’时进行除法运算。

a、b为四位二进制数,a为被除数,b为除数,s高四位为商,s低四位为余数。

5、硬件运行结果从左到右,前三个数码管用十进制显示计算后的商,第一个为百位,第二个为十位,第三个为个位。

第五个数码管为除数,第六个数码管为被除数。

右下角一个数码管显示运算得到的余数。

(5)8位除法器1、封装元件作用:用于把十六进制显示的输出换成十进制显示。

方法:被除数除以10时,余数为个位;得到的商除以10,得到的余数为十位;得到的商再除以10,得到的余数为百位。

2、8位除法器设计思想• 利用移位减法原理设计除法器• 首先在被除数前面补7个零,赋值为Remain7,除数后面补7个零,赋值为diver7。

若Remain7 大于diver7,则 shang (7)为‘1’,Remain6<= Remain7 - diver7。

否则shang (7)为‘0’, Remain6<= Remain7 ;• Diver6等于diver7左移一位,后面补零。

再重复上一个步骤,得出shang (6),……直到得出shang (0)为止• Remain 是中间与diver 相减的得到的数,diver 保存除数移位后的数;beichu[7..0]chu[7..0]shang[7..0]yu[3..0]Divinst3说明:8位除法器不能用四位除法器那循环的方法,因为,如果用循环的方法,由于循环次数太多,在电脑上要运行半个小时以上,不能用。

3、8位除法器程序4、仿真结果(6)数码管七段译码电路1、封装元件作用:用于在一个七段共阳数码管显示除法器的余数。

2、共阴极七段显示码十六进制转换表十六进制码共阴极七段显示码 Num D 8 D 4 D 2 D 1 g f e d c b a 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 2 0 0 1 0 1 0 1 1 0 1 1 3 0 0 1 1 1 0 0 1 1 1 1 4 0 1 0 0 1 1 0 0 1 1 0 5 0 1 0 1 1 1 0 1 1 0 1 6 0 1 1 0 1 1 1 1 1 0 1 7 0 1 1 1 0 0 0 0 1 1 1 8 1 0 0 0 1 1 1 1 1 1 1 9 1 0 0 1 1 1 0 1 1 1 1 A 1 0 1 0 1 1 1 0 1 1 1 B 1 0 1 1 1 1 1 1 1 0 0 C 1 1 0 0 0 1 1 1 0 0 1 D 1 1 0 1 1 0 1 1 1 1 0 E 1 1 1 0 1 1 1 1 0 0 1 F11111111D[3..0]data_out[0..6]seg7inst123、七段译码器程序4、仿真结果(7)选择模块1、封装元件• 当Q 为“00”时进行加法运算 • 当Q 为“01”时进行减法运算 • 当Q 为“10”时进行乘法运算 • 当Q 为“11”时进行除法运算Q[1..0]input[31..0]output[7..0]output1[3..0]choose inst112、程序五、管脚锁定六、小结与收获回顾本次大作业完成的整个过程,觉得收获很多,主要有以下几个方面。

(1)通过整个过程的设计完成,锻炼了分析、解决问题的能力,熟练掌握了Quartus II的原理图输入方式,并对硬件描述语言有了初步的认识和运用,认识到Quartus II用于电路仿真的强大功能;(2)完成过程中,关于电路的设计,有多种不同的实现方法,经过和同学讨论,交流想法,尽量选择简单易行的方法,同时灵活运用各种逻辑门电路,锻炼了逻辑思维能力;(3)通过整个过程的完成,最终在实验箱上顺利得到了正确的结果,虽然只是一个简易的、功能很少的计算器,但毕竟是自己亲手操作完成的,觉得很有成就感,这也增加了我对数字电子技术的兴趣。

相关文档
最新文档