8位二进制加法计算器
串行进位加法器_延迟计算__概述说明

串行进位加法器延迟计算概述说明1. 引言1.1 概述串行进位加法器是一种常用的数字电路,用于实现两个二进制数的相加运算。
在计算机科学和电子工程领域中,加法器是基本的计算单元之一,因此对其性能的改进一直是研究的重点。
延迟计算则是指在某些情况下,为了减少开销、功耗或其他限制条件而将计算结果延迟到需要时再进行。
本文将结合串行进位加法器和延迟计算两个主题,探讨串行进位加法器在延迟计算中的作用以及其特点和应用范围。
1.2 文章结构本文共分为五个部分。
首先引言部分进行整体概述和结构说明。
接下来第二部分将介绍串行进位加法器的基本原理、构造方式以及优缺点。
第三部分将深入探讨延迟计算的定义、基本概念、应用场景以及实现方法与技术。
紧接着,在第四部分中,我们将重点关注串行进位加法器在延迟计算中的作用,并介绍其特点和应用范围。
最后,在结论部分中对全文进行总结,并提出未来研究方向的建议,以及对读者的启发和影响。
1.3 目的本文旨在阐述串行进位加法器和延迟计算的基本原理、应用以及相互关系。
通过分析串行进位加法器在延迟计算中的作用,我们可以更好地理解其特点和应用范围,并为未来的研究和发展提供一定的参考。
此外,本文还将探讨延迟计算在提高电路性能和优化资源利用方面的重要性,以期对读者有所启发。
2. 串行进位加法器:2.1 基本原理:串行进位加法器是一种基于二进制加法的电路设计,用于实现数字计算。
其基本原理是将两个二进制数逐位相加,并通过一系列的进位传递来实现进位的计算和累积。
在每一位上,串行进位加法器通过输入的两个数字和之前的进位信息来生成该位的结果和产生下一位的进位。
2.2 构造方式:串行进位加法器可以使用多种不同的逻辑门电路实现,常见的包括使用门电路(AND、OR、XOR等)、触发器以及多路选择器等元件。
其中一个常用的构造方式是Ripple Carry Adder(RCA)与D型触发器结合,通过级联多个全加器单元来实现。
2.3 优缺点:串行进位加法器相比并行运算方式具有以下优点:首先,由于其简单的电路结构,在硬件设计上较为容易实现;其次,它能够按顺序处理数字,并且只需要一个时钟周期进行运算。
(完整word版)计算器的设计

目录1。
设计要求 (2)2.设计方案与论证 (2)2.1总体设计思路 (2)2。
2总体方案 (2)3.设计原理及电路图 (4)3.1硬件设计 (4)3。
2软件设计 (11)3。
3 算术运算程序设计 (12)3。
4 显示程序设计 (13)4。
器件清单 (14)5.器件识别与检测 (15)6。
控制系统实现(软件编程与调试) (16)6。
1 硬件调试 (17)6.2 软件调试 (17)6。
3软件编程 (18)7。
设计心得 (28)8。
参考文献 (29)1。
设计要求要求计算器能实现加减乘除四种运算,具体如下:1.加法:四位整数加法,计算结果若超过四位则显示计算错误2.减法:四位整数减法,计算结果若小于零则显示计算错误3.乘法:多位整数乘法,计算结果若超过四位则显示计算错误4.除法:整数除法5.有清除功能设计要求:分别对键盘输入检测模块;LCD显示模块;算术运算模块;错误处理及提示模块进行设计,keil与protues仿真分析其设计结果。
2。
设计方案与论证2。
1总体设计思路:本计算器是以MCS-51系列8051单片机为核心构成的简易计算器系统。
该系统通过单片机控制,实现对4*4键盘扫描进行实时的按键检测,并把检测数据存储下来。
整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入数码管动态显示。
整个系统可分为三个主要功能模块:功能模块一,实时键盘扫描;功能模块二,数据转换为了数码管显示;功能模块三,数码管动态显示。
2.2总体方案:根据功能和指示要求,本系统选用以MCS—51单片机为主控机.通过扩展必要的外围接口电路,实现对计算器的设计。
具体设计如下:1、由于要设计的是简单的计算器,可以进行四则运算,为了得到教好的显示效果,采用LCD 显示数据和结果。
2、另外键盘包括数字键(0—9)、符号键(+、—、*、/)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算机键盘.3、执行程序:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、—、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果.4、错误提示:当单片机执行程序中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算器得到的结果大于计算器的显示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD上提示错误.①由于要设计的是简单的计算器,可以进行四则运算,对数字的大小范围要求不高故我们采用可以进行四位数字的运算,选用8 个LED 数码管显示数据和结果。
windows计算器功能键

windows计算器用法.txt2011-02-26 12:12windows标准型计算器功能键使用说明Backspace 删除当前显示数字的最后一位CE 清除显示数字C 清除当前的计算MC 清除内存中的所有数字MR 重调用存内存中的数字。
该数字保留在内存中MS 将显示数字保存在内存中M+ 将显示的数字与内存中已有的任何数字相加,但不显示这些数字的和0 1 2 3 4 5 6 7 8 9 输入数字+/- 改变显示数字的符号. 插入小数点/ 除法* 乘法- 减法+ 加法sqrt 计算显示数字的平方根.% 按百分比的形式显示乘积结果。
输入一个数,单击“*”,输入第二个数,然后单击“%”。
例如,50 * 25%将显示为 12.5。
也可执行带百分数的运算。
输入一个数,单击运算符(“+”、“-”、“*”或“/”),输入第二个数,单击“%”,然后单击“=”。
例如,50 + 25%(指的是 50 的 25%)= 62.5。
1/x 计算显示数字的倒数= 对上两个数字执行任意运算。
若要重复上一次的运算,请再次单击“=”windows科学型计算器功能键使用说明十六进制四字(可显示16位数)双字8(可显示8位数)单字(可显示4位数)字节(可显示2位数)八进制(四种位宽显示方式切换)二进制(四种位宽显示方式切换)十进制角度弧度梯度三种显示方式切换弧度在十进制模式下将三角函数输入设置为弧度。
Inv 设置“sin”、“cos”、“tan”、“PI”、“x^y”、“x^2”、“x^3”、“ln”、“log”、“Ave”、“Sum”和“s”的反函数。
完成一次计算后自动关闭反函数功能。
In 计算自然对数(以 e 为底)。
若要计算 e 的 x 次方(其中 x 是当前数字),请使用“Inv”+“ln”。
日志计算常用对数(以 10 为底)。
若要计算 10 的 x 次方,请使用“Inv”+“log”。
Hyp 设置“sin”、“cos”和“tan”的双曲函数。
加法计算器电路

各数位的权是8的幂
4、十六进制
数码为:0—9、A—F;基数是16。 运算规律:逢十六进一,即:F+1=10。 十六进制数的权展开式: 如:(D8.A)2= 13×161 +8×160+10 ×16-1=(216.625)10
各数位的权是16的幂
返回
二、不同数制之间的转换 1、二进制数与八进制数的相互转换
Y0 I1 I 3 I 5 I 7
返回
I 1 I 2I 3 I 4 I 5 I 6 I 7 ≥1
逻辑电路图:
≥1
Y2
Y1
≥1
Y0
想一想
如何用与非门实现?
返回
(2)集成8线-3线优先编码器74LS148
I0 & G2 YS
I1 I2 I3 I4 I5 I6 I7
1 1 1 1 1 1 1 G1 1 1
返回
1、十进制
数码为:0—9;基数是10。 十进制数的权展开式: 运算规律:逢十进一,即:9+1=10。
103、102、101、100称为十进 制的权。各数位的权是10的 幂。
5× 103=5000 5× 102= 500
5× 101= 50
5×
5 5 5 5
100=
任意一个十进制数都可以 5 表示为各个数位上的数码 + 与其对应的权的乘积之和, =5555 称权展开式。
返回
[知识链接2] 编码器
实现编码功能的逻辑电路,称为编码器。编码器又分 为普通编码器和优先编码器两类。
1.二进制编码器
(1)三位二进制普通编码器 输入:I0~I7 8个高电平信号,
I0 I1 I2 I3 I4 I5 I6 I7
输出:3位二进制代码Y2Y1Y0。
数字电路 加法器

简讲
思考题: 思考题: 利用MSI4位加法器设计实现8 二进制加/减法器. MSI4位加法器设计实现 利用MSI4位加法器设计实现8位二进制加/减法器.
BM
一位加/ 一位加/减法器
08计本(2) 08计本(2
讲解:第二小组
超前计算器
思考题: 思考题: 利用MSI4位加法器设计实现8 二进制加/减法器. MSI4位加法器设计实现 利用MSI4位加法器设计实现8位二进制加/减法器.
M
广东技术师范学院
数字电子技术基础——加法器 数字电子技术基础——加法器
08计本(2) 08计本(2
Bi
0 0 1 1 0 0 1 1
Ci-1
0 1 0 1 0 1 0 1
Si
0 1 1 0 1 0 0 1
Ci
0 0 0 1 0 1 1 1
本位: Si = A i ⊕ Bi ⊕ Ci 1
进位:Ci = A i Bi + (A i ⊕ Bi )Ci 1
08计本(2) 08计本(2 讲解:第二小组
广东技术师范学院
压缩图
当M=0时,表示的是减法器 M=0时
广东技术师范学院
数字电子技术基础——加法器 数字电子技术基础——加法器
08计本(2) 08计本(2
讲解:第二小组
实现8位二进制加/减法器 实现8 二进制加/ ——波形图(加法)
广东技术师范学院
数字电子技术基础——加法器 数字电子技术基础——加法器
计本(2 计本(2)
S4 S3 S2 S1
=1
C4 A4A3A2A1 a4 a3 a2 a1
8位二进制加法计算器

---------------------------------------------------------------最新资料推荐------------------------------------------------------8位二进制加法计算器一:本实验设计的是一个 8 为二进制加法计算器,其功能就是对两个八位的二进制数执行加法运算,并可以异步清零。
二:电路可划分为三部分:半加器、全加器和复位电路。
1、半加器: 真值表 a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 电路图 2 全加器:由半加器和或门组成电路图 3 复位电路:复位电路通过 en 控制,当 en 为1时,执行加法运算,输出正确的值,当 en 为0时,输输出及结果为全 0. 三:实验波形仿真和 VHDL 1、仿真图:2、 VHDL 代码 1)半加器 h_adder:library ieee; use ieee.std_logic_1164.all; entity h_adder is port (a,b :in std_logic; co,so :out std_logic); end entity h_adder; architecture fh1 of h_adder is begin so = not(a xor (not b));co = a and b ; end architecture fh1; 2)或门 or2a:library ieee; use ieee.std_logic_1164.all; entity or2a is1 / 4port (a,b :in std_logic; c: out std_logic); end entity or2a; architecture one of or2a is begin c = a or b ;end architecture one; 3)全加器 f_adder:library ieee; use ieee.std_logic_1164.all; entity f_adderis port (ain,bin,cin:in std_logic; cout,sum:outstd_logic); end entity f_adder; architecture fd1 off_adder is component h_adder port (a,b :in std_logic; co,so :out std_logic); end component; component or2a port (a,b :in std_logic; c: out std_logic); end component; signal d,e,f: std_logic; begin u1:h_adder portmap(a=ain,b=bin,co=d,so=e); u2:h_adder portmap(a=e,b=cin,co=f,so=sum); u3: or2a portmap(a=d,b=f,c=cout); end architecture fd1; 4)与门 and2a:library ieee; use ieee.std_logic_1164.all; entity and2a is port (a,b :in std_logic; c: out std_logic); end entity and2a; architecture one of and2a is begin c = a andb ; end architecture one; 5)顶层设计文件 library ieee; use ieee.std_logic_1164.all; entity zong is port(a1,a2,a3,a4,a5,a6,a7,a8,b1,b2,b3,b4,b5,b6,b7,b8,en :instd_logic;solution1,solution2,solution3,solution4,solution5,solution6,solution7,solution8,solution9 :out std_logic ); end entity---------------------------------------------------------------最新资料推荐------------------------------------------------------zong; architecture fh1 of zong is component h_adder port(a,b :in std_logic; co,so :out std_logic); end component; component f_adder port (ain,bin,cin:in std_logic; cout,sum:out std_logic); end component; component and2a port(a,b :in std_logic; c: out std_logic); end component; signale2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18,e19,e20,e21,e22,e23,e24 :std_logic; begin u1:and2a portmap(a=en,b=a1,c=e2); u2:and2a port map(a=en,b=a2,c=e3);u3:and2a port map(a=en,b=a3,c=e4); u4:and2a portmap(a=en,b=a4,c=e5); u5:and2a port map(a=en,b=a5,c=e6);u6:and2a port map(a=en,b=a6,c=e7); u7:and2a portmap(a=en,b=a7,c=e8); u8:and2a port map(a=en,b=a8,c=e9);u9:and2a port map(a=en,b=b1,c=e10); u10:and2a portmap(a=en,b=b2,c=e11); u11:and2a port map(a=en,b=b3,c=e12);u12:and2a port map(a=en,b=b4,c=e13); u13:and2a portmap(a=en,b=b5,c=e14); u14:and2a port map(a=en,b=b6,c=e15);u15:and2a port map(a=en,b=b7,c=e16); u16:and2a portmap(a=en,b=b8,c=e17); u17:h_adder portmap(a=e2,b=e10,co=e18,so=solution1); u18:f_adder portmap(ain=e3,bin=e11,cin=e18,cout=e19,sum=solution2);3 / 4u19:f_adder port map(ain=e4,bin=e12,cin=e19,cout=e20,sum=solution3);u20:f_adder port map(ain=e5,bin=e13,cin=e20,cout=e21,sum=solution4);u21:f_adder port map(ain=e6,bin=e14,cin=e21,cout=e22,sum=solution5);u22:f_adder port map(ain=e7,bin=e15,cin=e22,cout=e23,sum=solution6);u23:f_adder port map(ain=e8,bin=e16,cin=e23,cout=e24,sum=solution7);u24:f_adder port map(ain=e9,bin=e17,cin=e24,cout=solution9,sum=solution8); end architecture fh1;。
计算器有关按键说明大全.pdf

计算器有关按键说明大全一、基本按键ON 开机OFF 关机AC 总清,清除所有存储和显示数值(又:CA, All ClearC 清除所有显示和当前运算、归零(又:CLR、Esc,英文名Clear注:以上又有组成组合键的情况为ON/OFF、ON/AC、ON/CCE 清除输入,清除当前输入数据中最后一个不正确的输入数据并显示“0”,可重新更正输入(英文名Clear Error或Clear Entry?清除光标前一字符(又:←、Backspace、BS、DEL(delete) INS 改写模式,从当前位置插入(英文名insertREPLAY 指令状态移动方向,上下查记录,左右移动当前表达式中光标(一般此键上有成十字排列的方向标识:▲▼??SHIFT 转换,上档选择(又: 2ndF、2nd、2nd(第二功能选择,Second Function)、ALT,按键设定为与其同色的功能ALPHA 阿尔法,字母,按键设定为与其同色的功能MODE 方式、模式,用于模式切换(不同的计算器有所不同,常用的见下表:选择键英文名含义选择键英文名含义COMP computer 常规运算BASE DEC base 基数计算标准差COMPLEX complex 复数计算SD standarddeviationREG regression 回归计算MATRIX matrix 矩阵计算SCI scientific 科学STAT 统计计算GRAPH graph 图表、曲线TABLE 函数表格EQN equation 方程式、等式VECTOR 向量计算对于数值计数法有:Norm(normal)标准计数法Fix(fixed)固定小数点Eng(engineering)工程计数法Sci(scientific)科学计数法Inv 反、倒置,用于使用其它有关按键的相反功能,多用于电子计算器。
如ln键变为e x键,sin键变为sin-1键,lsh键变为rsh键等EXP 以科学记数法输入数字,即表示以10为底的方幂(又:EE,英文名Exponent说明:科学记数法:将一个数字表示成a×10的n次幂的形式,其中1≤|a|<10,n表示整数,这种记数方法叫科学记数法。
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译码器进行连接,使其达到实验的要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一:本实验设计的是一个8为二进制加法计算器,其功能就是对两个八位的二进制数执行加法运算,并可以异步清零。
二:电路可划分为三部分:半加器、全加器和复位电路。
1、半加器:
真值表
a b so co
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
电路图
2全加器:由半加器和或门组成
电路图
3复位电路:
复位电路通过en控制,当en为‘1’时,执行加法运算,输出正确的值,当en为‘0’时,输输出及结果为全0.
三:实验波形仿真和VHDL
1、仿真图:
2、VHDL代码
1)半加器h_adder:
library ieee;
use ieee.std_logic_1164.all;
entity h_adder is
port (a,b :in std_logic;
co,so :out std_logic);
end entity h_adder;
architecture fh1 of h_adder is
begin
so <= not(a xor (not b));co <= a and b ; end architecture fh1;
2)或门or2a:
library ieee;
use ieee.std_logic_1164.all;
entity or2a is
port (a,b :in std_logic;
c: out std_logic);
end entity or2a;
architecture one of or2a is
begin
c <= a or b ;
end architecture one;
3)全加器f_adder:
library ieee;
use ieee.std_logic_1164.all;
entity f_adder is
port (ain,bin,cin:in std_logic;
cout,sum:out std_logic);
end entity f_adder;
architecture fd1 of f_adder is
component h_adder
port (a,b :in std_logic;
co,so :out std_logic);
end component;
component or2a
port (a,b :in std_logic;
c: out std_logic);
end component;
signal d,e,f: std_logic;
begin
u1:h_adder port map(a=>ain,b=>bin,co=>d,so=>e);
u2:h_adder port map(a=>e,b=>cin,co=>f,so=>sum);
u3: or2a port map(a=>d,b=>f,c=>cout);
end architecture fd1;
4)与门and2a:
library ieee;
use ieee.std_logic_1164.all;
entity and2a is
port (a,b :in std_logic;
c: out std_logic);
end entity and2a;
architecture one of and2a is
begin
c <= a an
d b ;
end architecture one;
5)顶层设计文件
library ieee;
use ieee.std_logic_1164.all;
entity zong is
port (a1,a2,a3,a4,a5,a6,a7,a8,b1,b2,b3,b4,b5,b6,b7,b8,en :in std_logic;
solution1,solution2,solution3,solution4,solution5,solution6,solution7,solution8,solution9 :out std_logic );
end entity zong;
architecture fh1 of zong is
component h_adder
port (a,b :in std_logic;
co,so :out std_logic);
end component;
component f_adder
port (ain,bin,cin:in std_logic;
cout,sum:out std_logic);
end component;
component and2a
port (a,b :in std_logic;
c: out std_logic);
end component;
signal
e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18,e19,e20,e21,e22,e23,e24 :std_logi c;
begin
u1:and2a port map(a=>en,b=>a1,c=>e2);
u2:and2a port map(a=>en,b=>a2,c=>e3);
u3:and2a port map(a=>en,b=>a3,c=>e4);
u4:and2a port map(a=>en,b=>a4,c=>e5);
u5:and2a port map(a=>en,b=>a5,c=>e6);
u6:and2a port map(a=>en,b=>a6,c=>e7);
u7:and2a port map(a=>en,b=>a7,c=>e8);
u8:and2a port map(a=>en,b=>a8,c=>e9);
u9:and2a port map(a=>en,b=>b1,c=>e10);
u10:and2a port map(a=>en,b=>b2,c=>e11);
u11:and2a port map(a=>en,b=>b3,c=>e12);
u12:and2a port map(a=>en,b=>b4,c=>e13);
u13:and2a port map(a=>en,b=>b5,c=>e14);
u14:and2a port map(a=>en,b=>b6,c=>e15);
u15:and2a port map(a=>en,b=>b7,c=>e16);
u16:and2a port map(a=>en,b=>b8,c=>e17);
u17:h_adder port map(a=>e2,b=>e10,co=>e18,so=>solution1);
u18:f_adder port map(ain=>e3,bin=>e11,cin=>e18,cout=>e19,sum=>solution2);
u19:f_adder port map(ain=>e4,bin=>e12,cin=>e19,cout=>e20,sum=>solution3);
u20:f_adder port map(ain=>e5,bin=>e13,cin=>e20,cout=>e21,sum=>solution4);
u21:f_adder port map(ain=>e6,bin=>e14,cin=>e21,cout=>e22,sum=>solution5);
u22:f_adder port map(ain=>e7,bin=>e15,cin=>e22,cout=>e23,sum=>solution6);
u23:f_adder port map(ain=>e8,bin=>e16,cin=>e23,cout=>e24,sum=>solution7);
u24:f_adder port map(ain=>e9,bin=>e17,cin=>e24,cout=>solution9,sum=>solution8);
end architecture fh1;。