长安大学数字电路课程设计 八位二进制数加法器 - 副本

合集下载

8位加法器设计

8位加法器设计

目录第1章概述 (1)第2章设计总体思路 (3)第3章单元电路设计 (5)3.1 八位二进制加法器 (5)3.2 译码显示电路 (8)第4章波形仿真结果分析 (11)第5章安装调试步骤 (12)第6章故障分析与改进 (13)第7章心得体会 (14)参考文献 (15)附录:整体电路图 (16)第1章概述随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。

随着技术市场与人才市场对EDA的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。

因此学好EDA技术对我们有很大的益处。

EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

VHDL系统优势:(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。

强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。

EDA实验六8位二进制全加法器的设计说明

EDA实验六8位二进制全加法器的设计说明

《电子设计自动化》实验报告实验六实验名称:8位二进制全加法器的设计专业及班级:姓名:学号:一、实验目的:1.掌握VHDL语言的基本结构。

2.掌握全加器原理,能进行多位加法器的设计。

3.掌握VHDL语言的基本描述语句特别是元件例化语句的使用方法。

二、实验内容设计并实现一个由两个4位二进制并行加法器级联而成的8位二进制并行加法器。

要求编写4位加法器的VHDL语言程序,顶层8位加法器的设计要求利用元件例化语句进行设计,并利用开发工具软件对其进行编译和仿真,最后通过实验开发系统对其进行硬件验证。

三、实验步骤〔附源代码及仿真结果图:1.根据4位二进制加法器的原理,利用VHDL语言的基本描述语句编写出4位加法器的VHDL语言程序。

--ADDER4B.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER4B ISPORT< C4: IN STD_LOGIC;A4: IN STD_LOGIC_VECTOR<3 DOWNTO 0>;B4: IN STD_LOGIC_VECTOR<3 DOWNTO 0>;S4: OUT STD_LOGIC_VECTOR<3 DOWNTO 0>;CO4: OUT STD_LOGIC>;END ENTITY ADDER4B;ARCHITECTURE ART OF ADDER4B ISSIGNAL S5:STD_LOGIC_VECTOR<4 DOWNTO 0>;SIGNAL A5,B5:STD_LOGIC_VECTOR<4 DOWNTO 0>;BEGINA5<='0'& A4;B5<='0'& B4;S5<=A5+B5+C4;S4<=S5<3 DOWNTO 0>;CO4<=S5<4>;END ARCHITECTURE ART;2.对所设计的4位二进制加法器的VHDL程序进行编译,然后对其进行仿真,初步验证程序设计的正确性。

8位二进制加法计算器

8位二进制加法计算器

一:本实验设计的是一个8为二进制加法计算器,其功能就是对两个八位的二进制数执行加法运算,并可以异步清零。

二:电路可划分为三部分:半加器、全加器和复位电路。

1、半加器:真值表a b so co0 0 0 00 1 1 01 0 1 01 1 0 1电路图2全加器:由半加器和或门组成电路图3复位电路:复位电路通过en控制,当en为‘1’时,执行加法运算,输出正确的值,当en为‘0’时,输输出及结果为全0.三:实验波形仿真和VHDL1、仿真图:2、VHDL代码1)半加器h_adder:library ieee;use ieee.std_logic_1164.all;entity h_adder isport (a,b :in std_logic;co,so :out std_logic);end entity h_adder;architecture fh1 of h_adder isbeginso <= not(a xor (not b));co <= a and b ; end architecture fh1;2)或门or2a:library ieee;use ieee.std_logic_1164.all;entity or2a isport (a,b :in std_logic;c: out std_logic);end entity or2a;architecture one of or2a isbeginc <= a or b ;end architecture one;3)全加器f_adder:library ieee;use ieee.std_logic_1164.all;entity f_adder isport (ain,bin,cin:in std_logic;cout,sum:out std_logic);end entity f_adder;architecture fd1 of f_adder iscomponent h_adderport (a,b :in std_logic;co,so :out std_logic);end component;component or2aport (a,b :in std_logic;c: out std_logic);end component;signal d,e,f: std_logic;beginu1: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 isport (a,b :in std_logic;c: out std_logic);end entity and2a;architecture one of and2a isbeginc <= a and b ;end architecture one;5)顶层设计文件library ieee;use ieee.std_logic_1164.all;entity zong isport (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 iscomponent h_adderport (a,b :in std_logic;co,so :out std_logic);end component;component f_adderport (ain,bin,cin:in std_logic;cout,sum:out std_logic);end component;component and2aport (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_logi c;beginu1: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;。

应用电子技术课设(八位二进制累加器)

应用电子技术课设(八位二进制累加器)

应用电子技术课程设计报告——八位二进制累加器院(系):机械工程与应用电子技术班级:学号:姓名:指导教师:完成日期:2012 年 4 月24 日,摘要随着社会的发展,在生活和生产中,我们经常要用到二进制累加问题,为了提高运算速度,更大的节约时间,所以我做了这个八位二进制累加器来进行二进制的累加,主要内容为加法器和寄存器及一些简易的电容电阻等器件,来实现八位二进制的累加问题,这样就可以把复杂的问题具体化,从而提高生产与学习效率,极大地节约时间。

关键词:二进制累加器目录一.课题名称……………………………………………………………二.主要功能(简要说明) ………………………………………………三.电路原理图…………………………………………………………四. 工作原理分析………………………………………………………1.电路组成…………………………………………………………2.单个元器件性能…………………………………………………五. 整体电路工作原理及EDA仿真和结果分析:……………………六. 元器件选择(元器件明细表和参考价格,电路成本估算)……七.电路的制作与实验测试……………………………………………1.电路排布…………………………………………………………2.电路焊接…………………………………………………………3.电路的检查及测试………………………………………………4.调试结果…………………………………………………………八.线路的改进意见:……………………………………………………九.思考题………………………………………………………………十.课程设计的收获和体会………………………………………………十一.参考文献……………………………………………………………一.课题名称:8位二进制累加器二.主要功能(简要说明):该电路将K3,K4设定的8位二进制数与74LS273中锁存的数相累加,并将结果通过发光二极管D1~D8显示出来。

实验二8位二进制加减可控计数器设计

实验二8位二进制加减可控计数器设计

实验二8进制加减可控计数器设计一、实验目的1.学习时序电路的设计,仿真和硬件测试,进一步熟悉VHDL设计技术。

2.学习使用SignalTap的使用方法。

3.学习用AS模式下对配置器件的编程。

二、实验内容1.参考书中4-22,设计一个异步清零和同步时钟使能的十进制加法计数器,在QuartusⅡ上进行编辑、编译、综合、适配、仿真。

给出其所有信号的时序仿真波形。

引脚锁定后进行编译、下载和硬件测试实验。

2.使用SignalTap II对此计数器进行实时测试,保存波形。

3.从设计中去除SignalTap II,要求全程编译后生成用于配置器件EPCS1编程的压缩POF文件,并使用ByteBlasterII,通过AS模式对实验板上的EPCS1进行编程,最后进行验证。

4.设计含有异步清零和同步时钟使能的8进制加减可控计数器。

并完成硬件测试。

一般加法计数器的设计参照书本例4-22。

异步清零表示只要清零信号有效,计数器输出为某个特定的值(比如00H),计数器使能表示只有该信号有效时,才开始计数,其他时候停止计数。

另外加减控制线来控制计数器是加还是减。

三、实验报告将实验原理、设计过程、编译仿真波形和分析结果写进实验报告。

四、实验步骤1.创建工程在D盘中新建一个文件夹D:\ cnt10,此文件夹用于存放整个工程。

打开Quartus II 7.2,在菜单中选择File—〉New Project Wizard 将会出现一个信息框,这个对话框介绍创建工程步骤,可以直接选Next,这时会出现如图1所示的对话框。

这里需输入的是欲创建工程的基本信息,三个输入栏中分别输入的是工程将被保存的路径及工程文件夹、工程的名称和顶层实体的名称。

建议工程名与顶层实体名称保持一致。

输入完毕我们就可以点击Next。

图1 新建工程基本信息对话框然后出现图2所示的添加工程文件对话框。

在这里需要做的是将已经写好的VHDL文件加入到工程中。

本次实验,可以直接点击Next,以后再添加VHDL 文件的工作。

8位二进制全加器设计实验报告

8位二进制全加器设计实验报告

EDA技术8位二进制全加器设计实验报告班级:学号:姓名:时间:2013-12-06目录方法一:自己写程序 (2)一、设计原理 (2)二、实验程序 (3)程序1:半加器描述 (3)程序2:一位二进制全加器设计顶层描述 (3)程序3:D触发器描述 (4)程序4:8位二进制加法器顶层描述 (4)三、编译及仿真结果 (9)方法二:使用LPM创立元件 (10)一、打开MegaWizard Plug-In Manager (10)二、按照提示,一步步完成全加器/全减器的创建 (10)三、创建成功,生成CMP文件 (10)四、调用CMP文件,例化元件,生成可以使用的元件。

(10)实验总结: (12)摘要我在本实验中用顶层设计思想,用半加器、全加器、D触发器例化出八位全加器,完成了八路加法器、寄存器/锁存器的设计,上升沿触发,使用了6个数码管,分别用于显示输入A,输入B和输出,输出结果也用红灯进行了显示,溢出用绿灯表示。

输入A用0~7号开关完成,输入B用10~17号开关完成,进位C 用8号开关完成。

实验要求完成八路全加器的设计,十六进制输出,上升沿触发,低电平复位,输入输出用数码管显示,用红灯显示输出,绿灯显示溢出。

方法一:自己写程序一、设计原理先写一个半加器,然后用两个半加器例化出一个全加器,再用八个全加器例化出一个八位全加器。

原理如图。

关于上升沿触发,使用D触发器和八位全加器进行例化,D触发器接同一个时钟。

最终完成上升沿触发的八位全加器的设计。

二、实验程序程序1:半加器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder ISPORT (A, B : IN STD_LOGIC;CO, SO : OUT STD_LOGIC );END ENTITY h_adder;ARCHITECTURE FH1 OF h_adder ISBEGINSO <= NOT (A XOR (NOT B));CO <= A AND B;END ARCHITECTURE FH1;程序2:一位二进制全加器设计顶层描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder ISPORT (AIN, BIN, CIN : IN STD_LOGIC;COUT, SUM : OUT STD_LOGIC );END ENTITY f_adder;ARCHITECTURE FD1 OF f_adder ISCOMPONENT h_adder ISPORT (A, B : IN STD_LOGIC;CO, SO : OUT STD_LOGIC );END COMPONENT;SIGNAL D, E, F : STD_LOGIC;3BEGINU1 : 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);COUT <= D OR F;END ARCHITECTURE FD1;程序3:D触发器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DEF1 ISPORT (CLK : IN STD_LOGIC;D : IN STD_LOGIC;Q : OUT STD_LOGIC);END;ARCHITECTURE bhv OF DEF1 ISSIGNAL Q1 :STD_LOGIC;BEGINPROCESS (CLK)BEGINIF CLK'EVENT AND CLK = '1'THEN Q1<=D;END IF;Q<=Q1;END PROCESS;END bhv;程序4:8位二进制加法器顶层描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY f_adder8 ISPORT ( AIN, BIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0);ASEGIN1,ASEGIN2, BSEGIN1,BSEGIN2 : BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0);CIN : IN STD_LOGIC;CLK : IN STD_LOGIC;SUM : BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);SEG1 : BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0);SEG2 : BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0);COUT : OUT STD_LOGIC );END f_adder8;ARCHITECTURE ONE OF f_adder8 ISCOMPONENT f_adder ISPORT (AIN, BIN, CIN : IN STD_LOGIC;COUT, SUM : OUT STD_LOGIC );END COMPONENT;COMPONENT DEF1 ISPORT (CLK : IN STD_LOGIC;D : IN STD_LOGIC;Q : OUT STD_LOGIC);END COMPONENT;SIGNAL C,C1, C2, C3,C4,C5,C6,C7: STD_LOGIC;SIGNAL a : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL b : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL s : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL ss : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL sss : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU1 : f_adder PORT MAP(AIN => a(0), BIN => b(0), CIN => CIN, SUM => s(0),COUT => C1);U2 : f_adder PORT MAP(AIN => a(1), BIN => b(1), CIN => C1, SUM => s(1),COUT => C2);U3 : f_adder PORT MAP(AIN => a(2), BIN => b(2), CIN => C2, SUM => s(2),COUT => C3);U4 : f_adder PORT MAP(AIN => a(3), BIN => b(3), CIN => C3, SUM => s(3),COUT => C4);U5 : f_adder PORT MAP(AIN => a(4), BIN => b(4), CIN => C4, SUM => s(4),COUT => C5);U6 : f_adder PORT MAP(AIN => a(5), BIN => b(5), CIN => C5, SUM => s(5),COUT => C6);U7 : f_adder PORT MAP(AIN => a(6), BIN => b(6), CIN => C6, SUM => s(6),COUT => C7);U8 : f_adder PORT MAP(AIN => a(7), BIN => b(7), CIN => C7, SUM => s(7),COUT => C);U9 : DEF1 PORT MAP(Q=>a(0),D=>AIN(0),CLK=>CLK);U10 : DEF1 PORT MAP(Q=>a(1),D=>AIN(1),CLK=>CLK);U11 : DEF1 PORT MAP(Q=>a(2),D=>AIN(2),CLK=>CLK);U12 : DEF1 PORT MAP(Q=>a(3),D=>AIN(3),CLK=>CLK);U13 : DEF1 PORT MAP(Q=>a(4),D=>AIN(4),CLK=>CLK);U14 : DEF1 PORT MAP(Q=>a(5),D=>AIN(5),CLK=>CLK);U15 : DEF1 PORT MAP(Q=>a(6),D=>AIN(6),CLK=>CLK);U16 : DEF1 PORT MAP(Q=>a(7),D=>AIN(7),CLK=>CLK);5U17 : DEF1 PORT MAP(Q=>b(0),D=>BIN(0),CLK=>CLK); U18 : DEF1 PORT MAP(Q=>b(1),D=>BIN(1),CLK=>CLK); U19 : DEF1 PORT MAP(Q=>b(2),D=>BIN(2),CLK=>CLK); U20 : DEF1 PORT MAP(Q=>b(3),D=>BIN(3),CLK=>CLK); U21 : DEF1 PORT MAP(Q=>b(4),D=>BIN(4),CLK=>CLK); U22 : DEF1 PORT MAP(Q=>b(5),D=>BIN(5),CLK=>CLK); U23 : DEF1 PORT MAP(Q=>b(6),D=>BIN(6),CLK=>CLK); U24 : DEF1 PORT MAP(Q=>b(7),D=>BIN(7),CLK=>CLK);U25 : DEF1 PORT MAP(Q=>SUM(0),D=>s(0),CLK=>CLK); U26 : DEF1 PORT MAP(Q=>SUM(1),D=>s(1),CLK=>CLK); U27 : DEF1 PORT MAP(Q=>SUM(2),D=>s(2),CLK=>CLK); U28 : DEF1 PORT MAP(Q=>SUM(3),D=>s(3),CLK=>CLK); U29 : DEF1 PORT MAP(Q=>SUM(4),D=>s(4),CLK=>CLK); U30 : DEF1 PORT MAP(Q=>SUM(5),D=>s(5),CLK=>CLK); U31 : DEF1 PORT MAP(Q=>SUM(6),D=>s(6),CLK=>CLK); U32 : DEF1 PORT MAP(Q=>SUM(7),D=>s(7),CLK=>CLK);U33 : DEF1 PORT MAP(Q=>COUT,D=>C,CLK=>CLK);PROCESS(CLK,AIN,BIN)VARIABLE sSeg1 : STD_LOGIC_VECTOR(7 DOWNTO 0);VARIABLE sSeg2 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINss(3 DOWNTO 0)<=SUM(3 DOWNTO 0);sss(3 DOWNTO 0)<=SUM(7 DOWNTO 4);sSeg1(7 DOWNTO 0):= AIN(7 DOWNTO 0);sSeg2(7 DOWNTO 0):= BIN(7 DOWNTO 0);CASE ss ISWHEN "0000" => SEG1 <= "";--0WHEN "0001" => SEG1 <= "";WHEN "0010" => SEG1 <="";WHEN "0011" => SEG1 <="";WHEN "0100" => SEG1 <="";WHEN "0101" => SEG1 <="";WHEN "0110" => SEG1 <="";WHEN "0111" => SEG1 <="";WHEN "1000" => SEG1 <="";WHEN "1001" => SEG1 <=""; --9WHEN "1010" => SEG1 <="";WHEN "1011" => SEG1 <="";WHEN "1100" => SEG1 <="";WHEN "1101" => SEG1 <="";WHEN "1110" => SEG1 <="";WHEN "1111" => SEG1 <="";WHEN OTHERS =>NULL;END CASE;CASE sss ISWHEN "0000" => SEG2 <= "";--0WHEN "0001" => SEG2 <= "";WHEN "0010" => SEG2 <="";WHEN "0011" => SEG2 <="";WHEN "0100" => SEG2 <="";WHEN "0101" => SEG2 <="";WHEN "0110" => SEG2 <="";WHEN "0111" => SEG2 <="";WHEN "1000" => SEG2 <="";WHEN "1001" => SEG2 <=""; --9WHEN "1010" => SEG2 <="";WHEN "1011" => SEG2 <="";WHEN "1100" => SEG2 <="";WHEN "1101" => SEG2 <="";WHEN "1110" => SEG2 <="";WHEN "1111" => SEG2 <="";WHEN OTHERS =>NULL;END CASE;CASE sSeg1(3 DOWNTO 0) ISWHEN "0000" => ASEGIN1 <= "";--0WHEN "0001" => ASEGIN1 <= "";WHEN "0010" => ASEGIN1 <="";WHEN "0011" => ASEGIN1 <="";WHEN "0100" => ASEGIN1 <="";WHEN "0101" => ASEGIN1 <="";WHEN "0110" => ASEGIN1 <="";WHEN "0111" => ASEGIN1<="";WHEN "1000" => ASEGIN1 <="";WHEN "1001" => ASEGIN1 <=""; --9WHEN "1010" => ASEGIN1 <="";WHEN "1011" => ASEGIN1 <="";WHEN "1100" => ASEGIN1 <="";WHEN "1101" => ASEGIN1 <="";WHEN "1110" => ASEGIN1 <="";WHEN "1111" => ASEGIN1 <="";WHEN OTHERS =>NULL;END CASE;7CASE sSeg1(7 DOWNTO 4) ISWHEN "0000" => ASEGIN2 <= "";--0 WHEN "0001" => ASEGIN2 <= "";WHEN "0010" => ASEGIN2 <="";WHEN "0011" => ASEGIN2 <="";WHEN "0100" => ASEGIN2 <="";WHEN "0101" => ASEGIN2 <="";WHEN "0110" => ASEGIN2 <="";WHEN "0111" => ASEGIN2<="";WHEN "1000" => ASEGIN2 <="";WHEN "1001" => ASEGIN2 <=""; --9 WHEN "1010" => ASEGIN2 <="";WHEN "1011" => ASEGIN2 <="";WHEN "1100" => ASEGIN2 <="";WHEN "1101" => ASEGIN2 <="";WHEN "1110" => ASEGIN2 <="";WHEN "1111" => ASEGIN2 <="";WHEN OTHERS =>NULL;END CASE;CASE sSeg2(3 DOWNTO 0) ISWHEN "0000" => BSEGIN1 <= "";--0 WHEN "0001" => BSEGIN1 <= "";WHEN "0010" => BSEGIN1 <="";WHEN "0011" => BSEGIN1 <="";WHEN "0100" => BSEGIN1 <="";WHEN "0101" => BSEGIN1 <="";WHEN "0110" => BSEGIN1 <="";WHEN "0111" => BSEGIN1<="";WHEN "1000" => BSEGIN1 <="";WHEN "1001" => BSEGIN1 <=""; --9 WHEN "1010" => BSEGIN1 <="";WHEN "1011" => BSEGIN1 <="";WHEN "1100" => BSEGIN1 <="";WHEN "1101" => BSEGIN1 <="";WHEN "1110" => BSEGIN1 <="";WHEN "1111" => BSEGIN1 <="";WHEN OTHERS =>NULL;END CASE;CASE sSeg2(7 DOWNTO 4) ISWHEN "0000" => BSEGIN2 <= "";--0 WHEN "0001" => BSEGIN2 <= "";WHEN "0010" => BSEGIN2 <="";WHEN "0011" => BSEGIN2 <="";WHEN "0100" => BSEGIN2 <="";WHEN "0101" => BSEGIN2 <="";WHEN "0110" => BSEGIN2 <="";WHEN "0111" => BSEGIN2<="";WHEN "1000" => BSEGIN2 <="";WHEN "1001" => BSEGIN2 <=""; --9WHEN "1010" => BSEGIN2 <="";WHEN "1011" => BSEGIN2 <="";WHEN "1100" => BSEGIN2 <="";WHEN "1101" => BSEGIN2 <="";WHEN "1110" => BSEGIN2 <="";WHEN "1111" => BSEGIN2 <="";WHEN OTHERS =>NULL;END CASE;END PROCESS;--U1 : f_adder PORT MAP(AIN => AIN(0), BIN => BIN(0), CIN => CIN, SUM => SUM(0), COUT => C1);--U2 : f_adder PORT MAP(AIN => AI N(1), BIN => BIN(1), CIN => C1, SUM => SUM(1), COUT => C2);--U3 : f_adder PORT MAP(AIN => AIN(2), BIN => BIN(2), CIN => C2, SUM => SUM(2), COUT => C3);--U4 : f_adder PORT MAP(AIN => AIN(3), BIN => BIN(3), CIN => C3, SUM => SUM(3), COUT => C4);--U5 : f_adder PORT MAP(AIN => AIN(4), BIN => BIN(4), CIN => C4, SUM => SUM(4), COUT => C5);--U6 : f_adder PORT MAP(AIN => AIN(5), BIN => BIN(5), CIN => C5, SUM => SUM(5), COUT => C6);--U7 : f_adder PORT MAP(AIN => AIN(6), BIN => BIN(6), CIN => C6, SUM => SUM(6), COUT => C7);--U8 : f_adder PORT MAP(AIN => AIN(7), BIN => BIN(7), CIN => C7, SUM => SUM(7), COUT => COUT);END ONE;三、编译及仿真结果程序波形仿真图9时间分析方法二:使用LPM创立元件一、打开MegaWizard Plug-In Manager二、按照提示,一步步完成全加器/全减器的创建三、创建成功,生成CMP文件四、调用CMP文件,例化元件,生成可以使用的元件。

8位二进制加减计数器

8位二进制加减计数器

题目三:设计一个8位二进制加/减计数器,并仿真验证其功能。

(2班1组)(要求:输入一个8位的矢量数值,在使能开关的控制下,可以实现自加或自减的循环计数)1、设计思路:根据设计题目可知我们所设计的是一个计数器,可知它必须有一个时钟信号,还需要有一个使能端en和一个置数端m。

当en为1并且m为1时,把m送给输出端,如果m=0,则开始计数;如果en=0时则保持不变。

同时还要有一个加减使能端k,功能为当k=1时实行加法计数,k=0时实行减法计数。

2、VHDL程序library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity cnt_8 isport (clk: in STD_LOGIC; --时钟输入端口k:in STD_LOGIC; --加减控制输入端口clr:in STD_LOGIC; --清零端口en:in STD_LOGIC; --使能控制端口m:in STD_LOGIC; --置数控制端口n:in STD_LOGIC_VECTOR (7 downto 0); --置数输入q: out STD_LOGIC_VECTOR (7 downto 0) --数值输出);end cnt_8;architecture cnt_8_arch of cnt_8 issignal qq:std_logic_vector(7 downto 0);beginprocess(clk,clr,k,n)beginif m='1' then qq<=n; --检测是否允许置数elsif clr='1' then --检测是否清零qq<="00000000";elsif clk'event and clk='1' then --检测时钟上升沿if en='1' then --允许计数if k='1' then --加法计数qq<=qq+'1';elseqq<=qq-'1'; --减法计数end if;end if;end if ;end process;process(qq)beginq<=qq; --将计数值向端口输出end process;end cnt_8_arch;3、仿真波形(图片)4、程序分析:在程序设计中,当置数控制端口fr为高电平时,允许为该计数器置初值,把置数端口yz的值附给计数器,即高电平时有效。

8位加法器设计程序过程

8位加法器设计程序过程

8位加法器设计程序过程八位加法器是一种组合逻辑电路,用于计算两个八位二进制数的和。

在设计过程中,需要确定输入和输出的位数、电路逻辑、输入输出关系等。

下面是一个八位加法器设计程序的详细过程。

1.确定输入和输出的位数:首先,我们需要明确八位加法器的输入和输出的位数。

在这个例子中,我们使用八位二进制数作为输入,并需要输出一个八位的和。

因此,输入和输出的位数均为8位。

2.确定输入和输出的表示形式:在计算机中,二进制数通常以补码形式进行表示。

因此,在这个例子中,我们将使用补码表示输入和输出。

3.分析电路逻辑:一个八位加法器由八位的全加器以及一个进位逻辑组成。

全加器用于计算两个相应位数相加的结果,而进位逻辑负责处理进位位。

因此,我们需要设计八个全加器和一个进位逻辑。

4.设计全加器电路:全加器是八位加法器的核心部分,用于计算两个位的和以及进位。

全加器的输入包括两个加数位和一个来自前一位的进位位。

输出包括和位以及进位位。

以下是一个典型的全加器电路:- 输入:A、B和C_in- 输出:Sum和C_out-逻辑表达式:Sum = A 异或 B 异或 C_inC_out = (A and B) 或 (C_in and (A 异或 B))设计八个这样的全加器电路,分别用于计算八个相应位数的和以及进位。

5.设计进位逻辑电路:进位逻辑电路负责处理来自各个位的进位。

具体来说,进位逻辑电路需要计算进位位以及进位到下一位的值。

以下是一个典型的进位逻辑电路:- 输入:C_in、C_0、C_1、C_2、C_3、C_4、C_5、C_6 和 C_7- 输出:C_out 和 C_next-逻辑表达式:C_out = C_7C_next = (C_6 and C_7) 或 (C_5 and (C_6 or C_7)) 或 (C_4 and (C_5 or (C_6 or C_7))) 或 ......(C_1 and (C_2 or (C_3 or (C_4 or (C_5 or (C_6 or C_7))))))其中,C_out代表从最高位传出的进位,C_next代表传递给下一位的进位。

八位二进制累加器的设计

八位二进制累加器的设计
①最坏的上升延时分析(V=5V,Cin=1,A=1,B 0->1)
输入电压V=5V时,当Cin=1,A=1,B由0->1变化时,用计算器中的delay函数测得此最坏下降延时(对于Sum来说,此时相当于最坏的上升延时)如图所示。由图可知,Sum最坏的上升延时为484.14ps;而Sum_layout最坏的上升延时。所以,版图仿真的最坏上升延时比原理图仿真的最坏延时小79.1ps。
图七Cin=1,A=1,B由0->1时功耗的波形
(2)最坏的下降延时分析
下面利用瞬态分析,测量Cin=0,A=0,B由1->0变化时的延时情况。如下图所示,是该情况下的输入输出波形。
图八Cin=0,A=0,B由1->0时,输入输出波形
用计算器中的delay函数测得此时的最坏上升延时(对于Sum来说,此时相当于最坏的下降延时)如图九所示。由图可知,最坏的下降延时为528.98ps
aபைடு நூலகம்组内并行,组间串行的进位链
b)组内并行,组间并行的进位链
它们的目的就是要进位信号的产生尽可能的快,因此产生了二重进位链或更高重进位链,显然进位速度的提高是以硬件设计的复杂化为代价来实现的。
(3)串行加法进位
串行加法进位从最低位进到最高位,即整个进位是分若干步骤进行的。
优点:具有器件少、成本低、电路结构简单的优点。缺点:运算速度慢。
正电平触发式触发器的状态在CP=1期间翻转,在CP=0期间保持不变。电平触发式触发器的缺点是存在空翻现象,通常只能用于数据锁存。
(2)主从触发器:
主从触发器由分别工作在时钟脉冲CP不同时段的主触发器和从触发器构成,通常只能在CP下降沿时刻状态发生翻转,而在CP其他时刻保持状态不变。它虽然克服了空翻,但对输入信号仍有限制。

八位二进制加法计数器设计

八位二进制加法计数器设计

八位二进制加法计数器设计目录一、设计目的和要求 (1)1.课程设计目的 (1)2.课程设计的基本要求 (1)3.课程设计类型 (1)二、仪器和设备 (1)三、设计过程 (1)1.设计内容和要求 (1)2.设计方法和开发步骤 (2)3.设计思路 (2)4.设计难点 (4)四、设计结果与分析 (4)1.思路问题以及测试结果失败分析 (4)2.程序简要说明 (5)五、心得体会 (11)六、参考文献 (12)一、设计目的和要求1.课程设计目的设计一个带进位的八位二进制加法计数器:要求在MAX+plusⅡ10.2软件的工作平台上用VHDL语言层次设计出一个带进位的八位二进制加法器,并通过编译及时序仿真检查设计结果。

2.课程设计的基本要求全加器与带进位输入8位加法器设计要求我们通过8位全加器的设计掌握层次化设计的方法,充分理解全加器的设计过程,掌握一位全加器的程序,熟悉MAX+plusⅡ10.2软件的文本和原理图输入方法设计简单组合电路。

课程设计过程中要求能实现同步和异步的八位二进制全加器的设计。

3.课程设计类型EDA课程设计二、仪器和设备PC机、MAX+plusⅡ10.2软件三、设计过程1.设计内容和要求方法一:1.原理图输入完成半加器和1位全加器的设计,并封装入库2.层次化设计,建立顶层文件,由8个1位全加器串联构成8位全加器3.每一层次均需进行编译、综合、适配及仿真方法二:1. 原理图输入完成一个四位全加器的设计2.层次化设计,建立顶层文件,由2个4位全加器串联构成8位全加器3.每一层次均需进行编译、综合、适配及仿真2.设计方法和开发步骤加法器是数字系统中的基本逻辑器件。

例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。

但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。

多位加法器的构成有两种方式:并行进位和串行进位方式。

并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。

8位加法器课程设计

8位加法器课程设计

8位加法器课程设计一、课程目标知识目标:1. 学生能理解8位加法器的基本原理,掌握加法器的电路构成及工作过程。

2. 学生能够运用所学的8位加法器知识,完成简单的数字信号加法运算。

3. 学生了解8位加法器在计算机硬件中的应用,理解其在数字系统中的重要性。

技能目标:1. 学生能够独立设计并搭建简单的8位加法器电路。

2. 学生能够运用所学的8位加法器知识,解决实际问题,如进行数字信号加法运算。

3. 学生能够通过实验和操作,掌握8位加法器的调试和优化方法。

情感态度价值观目标:1. 培养学生对电子技术和计算机硬件的兴趣,激发学生探索科学技术的热情。

2. 培养学生的团队合作意识,使学生学会在团队中互相协作,共同解决问题。

3. 培养学生的创新意识,鼓励学生勇于尝试新方法,探索新知识。

课程性质:本课程属于电子技术领域,以实验和实践为主,结合理论知识,培养学生的动手能力和实际操作技能。

学生特点:学生处于初中阶段,对电子技术和计算机硬件有一定的好奇心,具备基本的物理知识和数学运算能力。

教学要求:教师需结合学生的实际情况,注重理论与实践相结合,鼓励学生动手实践,提高学生的实际操作能力。

同时,关注学生的个体差异,给予不同层次的学生适当的指导和帮助,确保课程目标的达成。

通过分解课程目标为具体的学习成果,便于后续的教学设计和评估。

二、教学内容1. 引入8位加法器的概念,讲解加法器的基本原理和电路构成,使学生理解数字加法运算的实现过程。

教学内容关联教材章节:第二章第三节《加法器的设计与应用》2. 详细介绍8位加法器的电路图,分析各部分元件的作用及相互关系,指导学生搭建简单的8位加法器电路。

教学内容关联教材章节:第二章第四节《8位加法器的电路分析与搭建》3. 通过实验和操作,让学生掌握8位加法器的调试和优化方法,提高电路的稳定性和运算速度。

教学内容关联教材章节:第二章第五节《8位加法器的调试与优化》4. 结合实例,讲解8位加法器在计算机硬件中的应用,使学生了解其在数字系统中的重要性。

实验三 八位并行二进制全加器的设计

实验三 八位并行二进制全加器的设计

实验三八位并行二进制全加器设计1.全加器程序:ibrary ieee;use ieee.std_logic_1164.all;entity cnt4 isport(ain,bin,cin :in std_logic;cout,sum:out std_logic);end entity cnt4;architecture one of cnt4 isbegincout<=((ain xor bin) and cin) or (ain and bin);sum<=(ain xor bin) xor cin ;end architecture one;2.八位并行二进制全加器程序:library ieee;use ieee.std_logic_1164.all;entity fa1 isport(ain,bin,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q:in std_logic;aout,bout,jout,dout,eout,fout,gout,hout,kout:out std_logic); end entity fa1;architecture one of fa1 iscomponent cnt4port(a,b,cin :in std_logic;cout,sum:out std_logic);end component;signal r,s,t,u,v,w,x:std_logic;beginu1:cnt4 port map (a=>ain,b=>bin,cin=>c,sum=>aout,cout=>r); u2:cnt4 port map (a=>d,b=>e,cin=>r,sum=>bout,cout=>s);u3:cnt4 port map (a=>f,b=>g,cin=>s,sum=>jout,cout=>t);u4:cnt4 port map (a=>h,b=>i,cin=>t,sum=>dout,cout=>u);u5:cnt4 port map (a=>j,b=>k,cin=>u,sum=>eout,cout=>v);u6:cnt4 port map (a=>l,b=>m,cin=>v,sum=>fout,cout=>w);u7:cnt4 port map (a=>n,b=>o,cin=>w,sum=>gout,cout=>x);u8:cnt4 port map (a=>p,b=>q,cin=>x,sum=>hout,cout=>kout); end architecture one;三.仿真图形及分析图形分析:1、全加器实现三位数的相加器,其中一位来自低位的进位;2、八位并行二进制全加器使用七个例化语句完成。

实验二 8位加法器的设计

实验二  8位加法器的设计

实验二八位加法器的设计一、实验目的1、掌握QUARTUSII设计工具进行电子设计的基本流程。

2、了解可编程器件设计的全过程。

二、实验内容设计并调试一个由两个4位二进制并行加法器级联而成的8位二进制加法器,并进行硬件验证。

三、实验条件QUARTUSII软件,GW48试验箱,计算机。

四、实验设计(1)系统的原理框图(2)VHDL源程序--四位加法器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_arith.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADD4 ISPORT(C4: IN STD_LOGIC;A4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);B4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);S4: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO4: OUT STD_LOGIC);END ENTITY ADD4;ARCHITECTURE ART OF ADD4 ISSIGNAL S5: STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL A5,B5: STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINA5<='0'&A4;B5<='0'&B4;S5<=A5+B5+C4;S4<=S5(3 DOWNTO 0);CO4<=S5(4);END ARCHITECTURE ART;--顶层文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADD8 ISPORT(C8: IN STD_LOGIC;A8: IN STD_LOGIC_VECTOR(7 DOWNTO 0);B8: IN STD_LOGIC_VECTOR(7 DOWNTO 0);S8: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);CO8: OUT STD_LOGIC);END ENTITY ADD8;ARCHITECTURE ART1 OF ADD8 ISCOMPONENT ADD4 ISPORT(C4: IN STD_LOGIC;A4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);B4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);S4: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO4: OUT STD_LOGIC);END COMPONENT;SIGNAL S1,S3,AH4,BH4,AL4,BL4 :STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL S2:STD_LOGIC;BEGINAL4<=A8(3 DOWNTO 0);BL4<=B8(3 DOWNTO 0);AH4<=A8(7 DOWNTO 4);BH4<=B8(7 DOWNTO 4);U1:ADD4 PORT MAP(C8,AL4,BL4,S1,S2);U2:ADD4 PORT MAP(S2,AH4,BH4,S3,CO8);S8<=S3&S1;END ARCHITECTURE ART1;(3)管脚锁定实验设备:CW48系统;试验芯片:EP1C6/12Q240;试验模式:NO.1;五、实验结果及总结(1)系统仿真情况(2)硬件验证情况A8 19 19 CC CC B8 2C 2C F1 F1 C8 0 1 0 1S8 45 46 BD BECO8 0 0 1 1。

8位加法器设计课程设计

8位加法器设计课程设计

8位加法器设计课程设计一、课程目标知识目标:1. 学生能理解8位加法器的原理与功能,掌握其基本组成结构。

2. 学生能运用所学知识,设计并搭建一个简单的8位加法器电路。

3. 学生了解二进制加法运算的规则,以及与8位加法器的联系。

技能目标:1. 学生通过动手实践,提高电路搭建和调试的能力。

2. 学生培养运用电子元件解决问题的能力,提高创新意识和实际操作技能。

情感态度价值观目标:1. 学生对电子技术产生兴趣,增强学习积极性。

2. 学生在团队协作中培养沟通能力,学会分享和互助。

3. 学生通过课程学习,认识到科技发展对国家和社会的重要性,树立正确的价值观。

课程性质:本课程属于电子技术领域,以实践操作为主,理论讲解为辅。

学生特点:八年级学生对电子元件有一定了解,具备基本电路知识,好奇心强,喜欢动手实践。

教学要求:结合学生特点,注重实践与理论相结合,引导学生在实践中探索、发现、解决问题,提高学生的综合素质。

将课程目标分解为具体的学习成果,以便在教学设计和评估过程中,关注学生知识、技能和情感态度价值观的全面发展。

二、教学内容1. 8位加法器原理讲解:介绍8位加法器的基本原理、功能及其在计算机系统中的应用。

- 相关章节:课本第三章第二节《加法器原理及其应用》2. 二进制加法运算规则:回顾二进制数的加法运算规则,分析进位产生的原因及处理方法。

- 相关章节:课本第二章第三节《二进制数的运算》3. 8位加法器电路设计:讲解8位加法器电路的组成,引导学生学会设计简单的8位加法器电路。

- 相关章节:课本第三章第三节《加法器电路设计》4. 实践操作:学生分组进行8位加法器电路搭建与调试,培养实际操作能力。

- 相关章节:课本第三章实验部分《加法器电路实验》5. 教学内容安排与进度:- 第一课时:8位加法器原理讲解、二进制加法运算规则回顾- 第二课时:8位加法器电路设计、实践操作指导- 第三课时:学生分组进行电路搭建与调试,教师巡回指导教学内容注重科学性和系统性,结合课本章节内容,确保学生在掌握理论知识的基础上,提高实践操作能力。

8位加减发器设计概述

8位加减发器设计概述

8位加减发器设计前两天刚帮朋位友做了一个数字电路里的8位加减发器,感触颇深啊!一个简单的8位加减发器都做了好久,而且……•简单说一下题目:熟悉计算机的加、减法运算的原理和硬件电路的实现,掌握带符号加减法的溢出方法判断和硬件电路的实现方法。

1、输入数据为原码,其中高1位为符号位,低7位为数据位,运算结果需要转换为原码表示。

2、具有进位信号输入,输出能力,溢出判断能力。

3、通过功能选择控制信号M选择运算功能,M =0,加法运算,M=1,进行减法运算。

4、用数码管显示两个输入数据和运算结果。

用发光二极管显示溢出与否,绿灯表示未溢出,红灯表示溢出。

•要求1、在multisim上进行电路设计及仿真2、输入、输出数码显示正确,另外溢出指示正确3、结果验证,选择四组数据依次验证:结果为正不溢出、结果为负不溢出、结果正溢出和结果负溢出四种情况个人感觉刚读完题有点懵,没听过这位老的讲的课谁能看懂什么意思……每个人看到这个题的第一反应应该是分类,加法有几种情况,减法有几种情况,但是这种情况你就陷入了误区,这时候你应该问一下小伙伴学的课本,大概那个章节,重新学习一下(反正我是栽了跟头以后,要了他们的课本,看了几个例题就知道他们老师想干什么了):.这是好几天以前写的了,忘了思路了,下面把小伙伴的报告直接贴上摘要采用一款优秀的软件Multisim13作为设计平台,,对任意一个8位二进制并行加/减法运算电路的设计原理及构成方法作了详细的介绍,通过按键输入被减数和减数,并设置+、-号按键;允许减数大于被减数,负号可采用数码管或其他显示器件,并利用LED灯显示计算结果。

提出至少两种设计实现方案,并优选方案进行设计。

利用该软件能实现电子电路的快速设计和仿真,大大缩短了电子电路的设计开发周期。

本文以任意一个8位二进制并行加/减法运算电路的设计为例,详细介绍了基于Multisim13的数字电路加减法运算的设计与仿真。

【关键词】Multisiml3,寄存器,显示器,门元件,数字电路第1章概述1.1 课题分析目前人类社会已逐步实现了高度发达的信息化,各种电子产品不但在性能上不断增强,而且更新换代的频率也越来越快,实现这种进步的主要原因是生产制造技术和电子设计技术的发展,特别是以EDA为核心的电子设计技术得到了飞速发展。

8位二进制加法器

8位二进制加法器

《电子技术》课程设计报告题目学院(部)专业班级学生姓名学号月日至月日共周指导教师(签字)前言8位二进制加法器,它的功能主要是实现两个8位二进制数的相加,其结果的范围应该在00000000到111111110之间,即000到510之间。

加法器在实际应用中占据着十分重大的地位,从我们呱呱坠地起,到小学,到初中,到高中,到大学,到工作,等等。

我们能离开加法吗,不能!加法可以说是一切运算的基础,因此8位二进制加法器的设计是很有必要的。

那么我们如何设计一个8位二进制加法器呢?在实际应用中,我们通常输入的是十进制数,一个八位二进制数所对应的最大的十进制数是255,于是输入两个范围在000到255之间的数,首先通过二-十进制编码器将输入的三位十进制数的个位、十位、百位分别转换为8421BCD码,得到两个十二位字码,再通过加法器将它们相加,逢10进1,得到一个新的十二位字码,再用7447数字显示译码器将这个十二位字码还原到原来的三位十进制数。

最后输出的就是一个三位十进制数,其范围在000到510之间。

通过上述方法我们实现了八位二进制数的相加,从而达到了题目的要求。

为实现上述目的,我们需要查阅相关资料。

通过查阅,理解以及加以运用,我们认识到了收集资料的不易性,但同时也得到了不少收获,可以说是有苦有甜。

同时,虽然我们基本设计出了这个八位二进制加法器,但是不必可避免地会产生一些问题,比如说在连线上可能有更简便的途径,在元件的选用上可能还有其它更简便的方法,在控制上可能还不够精简,等等。

我们希望在以后的实践中能找出更好的方法,也希望能吸取这次设计中的不足,逐渐改善。

另外,在电子设计的过程中,与同组同学之间的合作配和是十分重要的。

我在此次设计中也充分认识到这一点的重要性,我相信这次的电子设计能够为我们将来的工作奠定一定的基础。

目录1.摘要 (1)2.关键字 (1)3.设计要求 (1)4.正文 (1)第一章.系统概述 (1)第二章.单元电路设计与分析 (4)①.控制电路 (4)②.编码电路 (5)③.加法电路 (6)④.译码电路 (10)⑤.输出电路 (11)第三章.系统综述、总体电路图 (11)第四章.结束语 (14)5.鸣谢 (15)6.元器件明细表,附图 (15)7.参考文献 (16)8.收获与体会,存在的问题等 (17)9.评语 (18)8位二进制加法器1.摘要:本次设计主要是如何实现8位二进制数的相加,即两个000到255之间的数相加,由于在实际中输入的往往是三位十进制数,因此,被加数和加数是两个三位十进制数,范围在000到255之间,通过六个二-十进制编码器(即74LS147)分别将加数和被加数的个位、十位、百位转换为8421BCD码,于是得到了两个12位字码,将它们接入三个四位超前进位并行加法器(即74LS283),其中原加数三位十进制数的个位转换得到的四位BCD码与被加数三位十进制数的个位转换得到的四位BCD码相加,串入到第一个74LS283的接线端,得到一个四位8421BCD码。

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

《数字逻辑》课程设计报告题目八位二进制加法器学院(部)信息工程学院专业计算机科学与技术班级学生姓名学号6 月23 日至6 月27 日共一周指导教师(签字)目录要求------------------------------------------------------------------ 3摘要----------------------------------------------- 3关键字----------------------------------------------- 4技术要求--------------------------------------------- 4一、系统综述------------------------------------------------------ 41、总体设计思想--------------------------------------- 42、总体设计方案及选择-------------------------------- 53、系统框图------------------------------------------ 64、工作原理------------------------------------------ 6二、单元电路设计------------------------------------------------ 71、三位十进制数的加法运算------------------------------------------ 72、八位二进制加法运算------------------------------------------------ 9三、系统综述------------------------------------------------------ 131、三位十进制数加法总设计图--------------------------- 132、八位二进制加法运算设计图-------------------------- 13 结束语--------------------------------------------------------------- 16参考文献------------------------------------------------------------ 16鸣谢------------------------------------------------------------------ 17元件一览表--------------------------------------------------------- 17收获与体会--------------------------------------------------------- 19八位二进制加法器摘要加法器是一种数位电路,其可进行数字的加法计算。

在现代的电脑中,加法器存在于算术逻辑单元(ALU)之中。

加法器可以用来表示各种数值,如:BCD、加三码,主要的加法器是以二进制作运算。

由于负数可用二的补数来表示,所以加减器也就不那么必要。

在不同的场合使用的加法器对其要求也不同,有的要求速度更快,有的要求面积更小。

常见的加法器有串行进位加法器、74LS283超前进位加法器等,因此可以通过选取合适的器件设计一个加法器。

本次设计主要是如何实现8位二进制数的相加,即两个000到255之间的数相加,由于在实际中输入的往往是三位十进制数,因此,被加数和加数是两个三位十进制数,范围在000到255之间.当输入十进制数的时候,8421BCD码编码器先开始工作,编码器先将十进制数转换成四位二进制数,输出的四位二进制数直接到达8421BCD码加法器的输入端,我们可以使用71LS185加法器构成的一位8421BCD码的加法器,8421BCD码是用4位二进制数表示1位十进制数,4位二进制数内部为二进制,8421BCD码之间是十进制,即逢十进一。

而四位二进制加法器是按四位二进制数进行运算,即逢十六进一。

二者进位关系不同。

当四位二进制数加法器74LS283完成这个加法运算时,要用两片74LS283。

第一片完成加法运算,第二片完成修正运算。

8421BCD码加法器工作时,8421BCD码的加法运算为十进制运算,而当和数大于9时,8421BCD码就产生进位,而此时十六进制则不一定产生进位,因此需要对二进制和数进行修正,即加上6(0110),让其产生一个进位。

当和数小于等于9时,则不需要修正或者说加上0。

因此我们可以通过三个8421BCD码加法器的相连组成一个三位串行进位并行加法器,这样通过低位向高位产生进位进行十进制的加法运算,最后通过连接数码管显示所得的结果。

当输入二进制数的时候,两个串接的74LS283四位加法器进行加法运算,产生的八位二进制数通过集成芯片转换成三位十进制数,最后通过数码管显示。

关键词串行进位加法器 74LS283超前进位加法器八位二进制数八位二进制数转化技术要求1.八位二进制加数与被加数的输入2.三位数码管的输出3.三位十进制加数与被加数的输入一、系统综述1.总体设计思想本次设计的目的是实现两个八位二进制数的相加,那么我们如何实现呢?通常在实际中输入的是三位十进制数,而要求是八位二进制数,八位二进制数换算成三位十进制数最大为255,也就是说要输入两个000到255之间的数。

要实现它们的相加,我们想到了两种方案,下面我说一下这二种方案。

第一种,当输入两个三位十进制数时,由于在数字电路中运算所用到的是二进制数,因此我们必须首先将十进制数转换为二进制数,于是一个问题出现了,那就是,我们如何实现十进制数到二进制数的转换,通过查阅相关资料,我们发现二-十进制编码器(也叫8421BCD码编码器,在实际中通常指74LS147)可以实现从十进制数到二进制数的转换,于是我们通过二-十进制编码器来实现上述的转换。

由于二-十进制编码器可以实现一位十进制数到四位二进制数的转换,而题目中的是两个三位十进制数,因此我们就需要用到6个二-十进制编码器,分别将三位十进制数的个位、十位、百位转换为其各自对应的8421BCD码,于是我们得到了两个十二位的8421BCD码。

于是如何实现两个三位十进制数的相加这个问题就变成了如何实现两个十二位的8421BCD码相加这个新问题。

那么,如何实现呢?我们想到了加法器,常用的加法器74LS283能够实现四位二进制数的相加,于是我们就要将74LS283进行串联,实现十二位数的相加,但加法器74LS283的进位是逢16进1,而这两个十二位的8421BCD码相加时的进位是逢10进1,那么就要对加法器74LS283的二进制和数进行修正,即加上一个6(0110),让其产生一个进位。

于是把大于9的项画在卡诺图里,另外考虑到若相加产生进位,则同样出现大于9的情况。

综合考虑,得到修正和数的条件,用与非门和与门来实现,得到了一个新的加法器,它可以实现逢10进1这个条件。

将这两个十二位的8421BCD码分别接到三个新的加法器的输入端,得到一个新的十二位的8421BCD码。

由于结果要得到一个三位十进制数,因此再将这个十二位的8421BCD码通过三个7447七段显示译码器转换为一个三位十进制数,通过数码管将它显示出来,即为所求的结果。

第二种,当输入的不是三位十进制数而是八位二进制数时,我们如何实现它们的相加呢?我们知道,超前进位并行加法器74LS283可以实现四位二进制数的相加,于是,我们需要两个74LS283进行串联,这样我们就得到一个新的九位二进制数,其范围在000到510之间。

那么我们如何实现从九位二进制数到三位十进制数的转换呢?我们就想到了数码转换器,通过74185芯片来实现字码的转换。

这样,就得到了一个新的十二位8421BCD 码,再通过7447七段数码显示译码器来实现8421BCD码到三位十进制数的转换,最后通过数码管显示出来,得到的就是所要求的的八位二进制数的和。

第三种,通过上述两种思路,我们会要进一步想到,能不能同时实现八位二进制数和三位十进制数的相加呢?那么我们可以对上述的思路加以扩展,假设输入的是三位十进制数,我们可以设法将其转换为BCD码,再通过加法器输出。

这样,我们既可以输入三位十进制数,也可以输入八位二进制数。

那么三位十进制数如何转换为八位二进制数呢?我们想到了二-十进制编码器,一个二-十进制编码器可以实现一位十进制数到四位二进制数的转换,那么我们就可以将一个二-十进制编码器和一些与非门组成一个新的二-十进制编码器来实现这个三位十进制数的十位到8421BCD码的转换;同理,三位十进制数的百位也可以这样转换。

于是三位十进制数就转换到了八位二进制数,接着,我们就可以用第二种思路来实现八位二进制数的相加。

2.总体设计方案及选择通过这三种思路,经过分析验证,我们发现,。

在实践论证中我们发现,由于第一种思路所用的元件少,且个位、十位、百位各自对称,因此在连接上方便可行,不易出错。

同时由于原理清晰,一旦出现错误,我们可以尽快发现问题并加以改正。

在论证第二种思路时,我们发现,在使用译码器时,由于使用的是4线-16线译码器74LS154,因此它有16个出线端。

而我们要实现九位二进制数到十二位BCD码的转换,就要有512个出线端,也就是512除以16,即32个译码器。

由于所用到的译码器数量冗长,在连接上容易出错。

因此并不采纳。

同理,第三种思路也是如此。

3、系统框图8421BCD 编码器8421BCD 加法器数码管显示输出8421BCD 码输出和数图A 系统框图图B BCD 码加法器4、工作原理当输入十进制数的时候,8421BCD 码编码器先开始工作,编码器先将十进制数转换成四位二进制数,输出的四位二进制数直接到达8421BCD 码加法器的输入端,我们可以使用71LS185加法器构成的一位8421BCD 码的加法器,8421BCD 码是用4位二进制数表示1位十进制数,4位二进制数内部为二进制,8421BCD 码之间是十进制,即逢十进一。

而四位二进制加法器是按四位二进制数进行运算,即逢十六进一。

二者进位关系不同。

当四位二进制数加法器74LS283完成这个加法运算时,要用两片74LS283。

第一片完成加法运算,第二片完成修正运算。

8421BCD 码加法器工作时,8421BCD 码的加法运算为十进制运算,而当和数大于9时,8421BCD 码就产生进位,而此时十六进制则不一定产生进位,因此需要对二进制和数进行修正,即加上6(0110),让其产生一个进位。

当和数小于等于9时,则不需要修正或者说加上0。

相关文档
最新文档