3.四位加法器实例
4位全加器
四位全加器的VHDL实现通信0704 王学申0120703490117一、设计要求:采用QuartusII或Max+PlusII集成开发环境,利用VHDL硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。
二、设计分析加法器是数字系统中的基本逻辑器件。
多位加法器的构成有两种方式:并行进位和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。
通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。
实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0).三、加法器的分类(一)半加器能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。
或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。
图1为半加器的方框图。
图2为半加器原理图。
其中:A、B分别为被加数与加数,作为电路的输入端;S为两数相加产生的本位和,它和两数相加产生的向高位的进位C一起作为电路的输出。
图1 半加器图2 半加器原理图根据二进制数相加的原则,得到半加器的真值表如表1所列。
信号输入信号输出A B S C0 0 0 00 1 1 01 0 1 01 1 0 1表1 半加器的真值表由真值表可分别写出和数S,进位数C的逻辑函数表达式为:(1) C=AB (2)由此可见,式(1)是一个异或逻辑关系,可用一个异或门来实现;式(2)可用一个与门实现。
仿真结果如图3所示:图3 半加器仿真图(二)全加器除本位两个数相加外,还要加上从低位来的进位数,称为全加器。
图4为全加器的方框图。
图5全加器原理图。
被加数A i、加数B i从低位向本位进位C i-1作为电路的输入,全加和S i与向高位的进位C i作为电路的输出。
能实现全加运算功能的电路称为全加电路。
四位加法器实验报告
四位加法器实验报告1.实验目的:掌握组合逻辑电路的基本分析与设计方法;理解半加器和全加器的工作原理并掌握利用全加器构成不同字长加法器的各种方法;学习元件例化的方式进行硬件电路设计;学会利用软件仿真实现对数字电路的逻辑功能进行验证和分析。
2.实验仪器:数字逻辑实验箱3.实验内容:A. 设计实现逐次进位加法器,进行软件仿真并在实验平台上测试。
B. 设计实现超前进位加法器,进行软件仿真并在实验平台上测试。
C.使用VHDL自带加法运算实现一个4位全加器。
4.实验代码:A. 逐次进位加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity FDFA is#定义串行加法器总体接口port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;S:out std_logic_vector(3 downto 0);Co:out std_logic);end entity;architecture struct of FDFA iscomponent fadder is#基于一位全加器port(a,b,ci:in std_logic;s,co:out std_logic);end component fadder;signal c0,c1,c2:std_logic;beginU0:fadder port map(A(0),B(0),Ci,S(0),c0);U1:fadder port map(A(1),B(1),c0,S(1),c1);U2:fadder port map(A(2),B(2),c1,S(2),c2);U3:fadder port map(A(3),B(3),c2,S(3),Co);end architecture struct;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fadder is #定义一位全加器port(a,b,ci:in std_logic;s,co:out std_logic);end entity;architecture func of fadder isbeginco<=(a and b) or (ci and ( a xor b));s<=a xor b xor ci;end architecture func;B. 超前进位加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity LAC is#定义超前进位加法器总体接口port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;Co:out std_logic;S:out std_logic_vector(3 downto 0));end entity;architecture struct of LAC issignal wirep, wireg:std_logic_vector(3 downto 0);signal wirec:std_logic_vector(2 downto 0);component fadder is#基于一位全加器port(Ai,Bi:in std_logic;c:in std_logic;si:out std_logic;pi:out std_logic;gi:out std_logic);end component fadder;component Ker is#Ker总理进位传递信号P与进位产生信号G,以及进位信号C port(ci:in std_logic;P:in std_logic_vector(3 downto 0);G:in std_logic_vector(3 downto 0);C:out std_logic_vector(3 downto 0));end component Ker;beginU0:fadder port map(Ai=>A(0),Bi=>B(0),c=>Ci,si=>S(0),pi=>wirep(0),gi=>wireg(0));U1:fadder port map(Ai=>A(1),Bi=>B(1),c=>wirec(0),si=>S(1),pi=>wirep(1),gi=>wireg(1));U2:fadder port map(Ai=>A(2),Bi=>B(2),c=>wirec(1),si=>S(2),pi=>wirep(2),gi=>wireg(2));U3:fadder port map(Ai=>A(3),Bi=>B(3),c=>wirec(2),si=>S(3),pi=>wirep(3),gi=>wireg(3));L:Ker port map(ci=>Ci,P(0)=>wirep(0),P(1)=>wirep(1),P(2)=>wirep(2),P(3)=>wirep(3),G(0)=>wireg(0),G(1)=>wireg(1),G(2)=>w ireg(2),G(3)=>wireg(3),C(0)=>wirec(0),C(1)=>wirec(1),C(2)=>wirec(2),C(3)=>Co);end architecture struct;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fadder is #定义一位全加器port(Ai,Bi:in std_logic;c:in std_logic;si:out std_logic;pi:out std_logic;gi:out std_logic);end entity;architecture func of fadder isbeginpi<=Ai xor Bi;gi<=Ai and Bi;si<=Ai xor Bi xor c;end architecture func;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Ker is#定义Ker port(ci:in std_logic;P:in std_logic_vector(3 downto 0);G:in std_logic_vector(3 downto 0);C:out std_logic_vector(3 downto 0));architecture func of Ker isbeginC(0)<=G(0) or ( P(0) and ci );C(1)<=G(1) or ( P(1) and G(0) ) or ( P(1) and P(0) and ci );C(2)<=G(2) or ( P(2) and G(1) ) or ( P(2) and P(1) and G(0) ) or ( P(2) and P(1) and P(0) and ci );C(3)<=G(3) or ( P(3) and G(2) ) or ( P(3) and P(2) and G(1) ) or ( P(3) and P(2) and P(1) and G(0) ) or ( P(3) and P(2) and P(1) and P(0) and ci );end architecture func;C. VHDL自带加法运算实现4位全加器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity VHDLAD is#定义VHDL自带加法运算实现4位全加器总体接口,如果加和比原来和少,则会进位port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;Co:out std_logic;S:out std_logic_vector(3 downto 0));end VHDLAD;architecture bhv of VHDLAD issignal D:std_logic_vector(3 downto 0);beginprocess(A,B,Ci,D)beginD <= A + B;if(Ci = '1') thenD <= D + 1;end if;if(D >= A) thenS <= D;Co <= '0';elseS <= D;Co <= '1';end if;end process;end bhv;5.软件仿真结果说明下面图片每幅有14条信号线,从上到下依次为A的低位到高位(共4条)、B的低位到高位(共4条)、输入的进位信号、和的低位到高位(共4条)、输出进位信号。
实验一 4位全加器的设计(1)
实验一4位全加器的设计一、实验目的:1 熟悉QuartusⅡ与ModelSim的使用;2 学会使用文本输入方式和原理图输入方式进行工程设计;3 分别使用行为和结构化描述方法进行四位全加器的设计;4 理解RTL视图和Technology Map视图的区别;5 掌握简单的testbench文件的编写。
二、实验原理:一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。
三、实验内容:1.QuartusII软件的熟悉熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本第4章的内容,重点掌握层次化的设计方法。
2.设计1位全加器原理图设计的原理图如下所示:VHDL源程序如下(行为描述):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f_add_bev is(A : in std_logic;B : in std_logic;CIN : in std_logic;S : out std_logic;CO : out std_logic);end entity;architecture bev of f_add_bev isbegin(CO,S)<=('0',A)+('0',B)+('0',CIN);end bev;VHDL源程序如下(行为描述)的RTL与technology map视图VHDL源程序如下(数据流描述):library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity f_add_fl is(A : in std_logic;B : in std_logic;CIN : in std_logic;S : OUT std_logic;CO : out std_logic);end entity;architecture fl of f_add_fl isbeginS<=A XOR B XOR CIN;CO<=((A XOR B)AND CIN)OR(A AND B);end fl;VHDL源程序如下(数据流描述)的RTL与technology map视图:VHDL源程序如下(结构化描述):library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity f_add_con isport(A : in std_logic;B : in std_logic;CIN : in std_logic;S : OUT std_logic;CO : out std_logic );end entity;architecture con of f_add_con is COMPONENT hadd_vhdPORT(a : IN STD_LOGIC;b : IN STD_LOGIC;co : OUT STD_LOGIC;s : OUT STD_LOGIC );END COMPONENT;SIGNAL S1:STD_LOGIC;SIGNAL CO1:STD_LOGIC;SIGNAL CO2:STD_LOGIC;beginh_add1 : hadd_vhdport map(a => a,B => B,S => S1,CO => CO1);h_add2 : hadd_vhdport map(a => S1,B => CIN,S => S,CO => CO2);CO<=CO1 OR CO2;end con;VHDL源程序如下(结构化描述)的RTL与technology map视图:Testbench文件源程序如下:LIBRARY cycloneiii ;LIBRARY ieee ;USE cycloneiii.cycloneiii_components.all ;USE ieee.std_logic_1164.all ;ENTITY f_add_fl_tb ISEND ;ARCHITECTURE f_add_fl_tb_arch OF f_add_fl_tb ISSIGNAL A : STD_LOGIC :='0';SIGNAL CO : STD_LOGIC ;SIGNAL CIN : STD_LOGIC :='0'; SIGNAL B : STD_LOGIC :='0'; SIGNAL S : STD_LOGIC ;COMPONENT f_add_flPORT (A : in STD_LOGIC ;CO : buffer STD_LOGIC ;CIN : in STD_LOGIC ;B : in STD_LOGIC ;S : buffer STD_LOGIC );END COMPONENT ;BEGINDUT : f_add_flPORT MAP (A => A ,CO => CO ,CIN => CIN ,B => B ,S => S ) ;A<=NOT A AFTER 0.25US;B<=NOT B AFTER 0.5US;CIN<=NOT CIN AFTER 1US;END ;功能仿真波形如下:时序仿真波形如下:3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器作为电路单元,设计4位全加器。
4位并行加法器代码
4位并行加法器代码【1】介绍4位并行加法器的背景和意义在计算机科学领域,数字电路设计是基础知识。
其中,4位并行加法器是一种重要的组合逻辑电路,它在计算机系统中有着广泛的应用。
它的主要作用是对两个4位二进制数进行并行加法运算,为更高位的计算提供基础。
了解4位并行加法器的原理和代码实现,有助于我们深入理解数字电路的工作机制。
【2】分析4位并行加法器的算法原理4位并行加法器的原理可以分为两部分:部分和全加。
首先,对两个4位二进制数进行部分加法,即对每一位进行加法运算,并考虑进位。
然后,将部分加法的结果进行全加,处理进位问题。
在这个过程中,我们需要注意以下几点:1.相同位数的两数进行加法运算,不需要考虑进位。
2.当进行部分加法时,若某一位的和大于等于2,则需要进位。
3.全加时,需要将进位加到下一位的运算中。
【3】编写4位并行加法器的代码实现根据上述原理,我们可以编写4位并行加法器的代码。
以Verilog为例,代码如下:```verilogmodule four_bit_parallel_adder(input [3:0] A, B, input clk, output [3:0] SUM, output CARRY);reg [3:0] temp_sum;reg [3:0] carry;always @(posedge clk) begincarry = 4"b0;temp_sum = 4"b0;for (int i = 0; i < 4; i = i + 1) beginif (A[i] == 1 && B[i] == 1) begintemp_sum[i] = 1;carry = 1;end else begintemp_sum[i] = A[i] || B[i] || carry;carry = carry;endendSUM = temp_sum;endendmodule```【4】代码解释与分析上述代码首先定义了一个4位并行加法器的模块,输入为两个4位二进制数A和B,以及时钟信号clk。
4位加法器实验报告
硬件描述语言实验题目:四位全加器学院数学与计算机学院学科门类xxxxxxxxxx专业xxxxxxxxxx学号姓名x指导教师xxxx20xx年x 月xx日1、实验目的:练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言行为描述的编写方法。
2、实验环境:PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。
3、实验要求:设计一个四位加法器,其引脚及其功能如下表。
4、实验步骤:(1)用RTL描述方式描述4位加法器①RTL描述方式是一种明确规定寄存器描述的方法,它要求在描述时要么采用寄存器硬件的一一对应的直接描述,要么采用寄存器之间的功能描述。
RTL描述方式可以进行逻辑综合,这是其他描述方式所不具备的特点。
②编辑代码这种描述方法详细描述了加法器的计算过程,即写出了每一位的计算和进位方法。
模块内部(构造体说明部分)需要定义三个连接线,定义语句为:signal c0,c1,c2 : std_logic代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(a,b:in std_logic_vector(3 downto 0);ci:in std_logic;s:out std_logic_vector(3 downto 0);co:out std_logic);end entity;architecture rtl of adder4 issignal c0,c1,c2:std_logic;s(0) <= a (0) xor b(0) xor ci;c0<= (a(0) and b(0)) or (a(0) and ci) or (b(0) and ci);s(1) <= a (1) xor b(1) xor c0;c1<= (a(1) and b(1)) or (a(1) and c0) or (b(1) and c0);s(2) <= a (2) xor b(2) xor c1;c2<= (a(2) and b(2)) or (a(2) and c1) or (b(2) and c1);s(3) <= a (3) xor b(3) xor c2;co<= (a(3) and b(3)) or (a(3) and c2) or (b(3) and c2);end architecture rtl;③仿真结果(2)用行为描述方式描述4位加法器①行为描述是对系统数学模型的描述,其抽象程度比寄存器传输描述方式和结构描述方式更高。
verilog的15个经典设计实例
begin b=a; c=b; end endmodule
【例 5.11】模为 60 的 BCD 码加法计数器
module count60(qout,cout,data,load,cin,reset,clk);
【例 5.6】用 fork-join 并行块产生信号波形
`timescale 10ns/1ns module wave2; reg wave; parameter cycle=5; initial
fork wave=0;
#(cycle) wave=1; #(2*cycle) wave=0; #(3*cycle) wave=1; #(4*cycle) wave=0; #(5*cycle) wave=1; #(6*cycle) $finish; join initial $monitor($time,,,"wave=%b",wave); endmodule
else
out<=out+1;
end
endmodule
//同步复位 //计数
【例 3.3】4 位全加器的仿真程序
`timescale 1ns/1ns `include "adder4.v" module adder_tp; reg[3:0] a,b; reg cin; wire[3:0] sum; wire cout; integer i,j;
output[7:0] qout;
output cout;
input[7:0] data;
input load,cin,clk,reset;
四位加法器设计
《EDA》课程设计题目四位加法器设计学号姓名班级指导老师2011 年 1 2月 30 日目录一、设计目的与任务二、设计要求与设计环境三、4位加法器设计实现过程四、设计结果五、设计心得体会六、参考资料设计目的与任务1.设计目的《EDA课程设计》(注:EDA即电子设计自动化,Electronics Design Automation)是继《模拟电子技术基础》、《数字电子技术基础》、《电子技术基础实验》课程后,电气类、自控类和机械工程类等专业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一个部分,其目的和任务是通过一周的时间,让学生掌握EDA 的基本方法,熟悉一种EDA软件(MAXPLUS2),并能利用EDA软件设计一个电子技术综合问题,并在实验板上成功下载,为以后进行工程实际问题的研究打下设计基础。
2设计任务以Altera公司的MAX+plusⅡ或Quartus7.2为工具软件,采用原理图输入法设计一个4位的加法器,该四位加法器由以下三个步骤完成:(1)采用原理图输入法设计半加器h_adder,生成元件符号,并仿真验证设计结果;(2)采用层次化原理图输入法设计1位全加器f_adder,生成元件符号,并仿真验证设计结果;(3)在1位全加器的基础上,设计4位加法器。
设计要求与设计环境1设计要求1)通过课程设计使学生能熟练掌握一种EDA软件(MAX+plusⅡ或Quartus7.2)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。
2)通过课程设计使学生能利用EDA软件(MAX+plusⅡ或Quartus7.2)进行至少一个电子技术综合问题的设计(内容可由老师指定或自由选择),设计输入可采用图形输入法或VHDL硬件描述语言输入法。
3)通过课程设计使学生初步具有分析、寻找和排除电子电路中常见故障的能力。
4)通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。
4位并行加法器
4位并行加法器
图1(a)是一个4位并行加法器的框图。
A3A2A1A0和B3B2B1B0分别为被加数和加数,CI为由低位来的进位,F3F2F1F0为和数,CO为向高位的进位。
图1 4位加法器
例1 试采用4位加法器实现1位余3码到1位8421BCD码的装化。
图2 例1的逻辑图
例2 试用4位加法器构成1位8421BCD码加法器。
图中的修正信号产生电路产生修正信号C。
由加6修正原则,可得
C = CO3 + CF>9,
CO3 是4位加法器产生的进位信号,CF>9 表示和数大于9的情况,CF>9 的卡诺图如图3(a)所示,由此得
CF>9 = F3F2 + F3F1
从而 C = CO3 + F3F2 + F3F1
图3(d)是1位的8321BCD码加法器的逻辑图。
图3 例2逻辑图导出过程
图4是用2个4位加法器模块构成8位加法器的逻辑图。
图4 8位加法器。
四位加法器
硬件描述语言及应用课程设计报告书姓名班级学号指导教师师范学院新能源与电子工程学院题目:4位加法器的设计设计的目的和要求:一、设计目的:复习加法器的原理,掌握加法器的设计实现方法,设计实现数字系统设计中常用的4位加法器,在此基础上进一步熟悉MAX+PLUSⅡ或Quartus II软件的使用方法,熟练掌握EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。
二、设计要求:1、模块与程序名必须为add+班级+学号+改名首字母。
如4班23号王宝宝,模块名:add423wbb,存盘时程序名必须是add423wbb.v。
2、输入端口分别为a、b、cin,a和b为被加数,位长四位,cin为低位进位,位长一位。
输出端口分别为sum、cout,sum为a与b相加后的和,位长四位,cout为向高位的进位,位长一位。
3、仿真时间时长为1微秒,点菜单View→Fit in Window。
仿真结束截图需反映整个仿真时间段情况。
4、菜单Options→Grid Size设置为100ns。
5、输入端口a、b设置波形时需把菜单Options→Snap to Grid前打勾,数据可分开设,右键点vote→Ungroup。
分开设完再点击enter group合并,再进行数据调整。
cin的波形设一两个变化即可,仿真结果要求输出的cout必须有段为“1”。
6、所有输入端口的波形需要设置,输出端口的波形通过仿真得到波形。
图3-1 四位加法器管脚图加法器是能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号的加法电路。
其真值表如表所示:输入输出a b cin s cout0 0 0 0 00 1 0 1 01 0 0 1 01 1 0 0 10 0 1 1 00 1 1 0 11 0 1 0 11 1 1 1 1实验结果及分析程序设计:module add435yyf(sum,cout,a,b,cin);input[3:0]a,b;input cin;output[3:0]sum;output cout;assign{cout,sum}=a+b+cin;endmodule实验结果如下图所示:根据以上计算和由波形图得到的结果可分析得,上面的图可以看出对设计的全加器进行了2组数据的仿真,由于4位全加器最低位的进位为0,因此将cin置0,仿真的结果同所设计的硬件语言吻合,该设计是正确的。
4位全加器
实验一用原理图输入法设计4位全加器一、实验目的1)熟悉利用Quartus II 的原理图输入方法设计简单组合电路;2)掌握层次化设计的方法;3)并通过一个4位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
二、实验内容1)完成半加器、全加器和4位全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。
键1、键2、键3(PIO0/1/2)分别接ain、bin、cin;发光管D2、D1(PIO9/8)分别接sum和cout。
2)建立一个更高的层次的原理图设计,利用以上获得的1位全加器构成的4位全加器,并完成编译、综合、适配、仿真和硬件测试。
建议选择电路模式1(附图F-2):键2、键1输入4位加数:键4、键3输入4位被加数:数码6和数码5显示加和:D8显示进位cout。
三、实验仪器1)计算机及操作系统;2)QuartusII软件;3)编程电缆。
四、实验原理一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出 cout 与相邻的高位加法器的最低进位输入信号 cin 相接。
一个1位全加器可以参考教材介绍的方法来完成。
1位全加器示意图如图1所示。
其中,其中CI为输入进位位,CO为输出进位位,输入A和B分别为加数和被加数。
S为输出和,其功能可用布尔代数式表示为:图1 1位全加器i i i i o i i i ABCABC ABC ABC C ABCC B A C B A C B A S +++=+++= 五、实验步骤1、完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。
键1、键2、键3(PIO0/1/2)分别接ain 、bin 、cin ;发光管D2、D1(PIO9/8)分别接sum 和cout 。
2、建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成编译、综合、适配、仿真、和硬件测试。
用例化语句设计4位全加器
实验三用例化语句设计4位全加器一、实验性质:设计性实验二、实验目的:掌握例化语句的使用,使用程序文本和原理图结合方法设计电路。
三、实验内容:首先用原理图方法设计1位半加器,并将其封装成一个元件,然后在此基础上设计1位全加器的顶层文件,半加器作为子元件调用,然后将其封装成一个元件。
在用同样的方法设计一位全加器原件。
设计串行4位加法器的电路,调用1位全加器设计4位加法器的原理图。
仿真正确后进行器件选择和管脚配置,下载程序后验证所设计电路的功能。
实验步骤:首先用原理图方法设计一位全加器,将其封装成一个原件:2.在全加器加器原件基础上设计4位全加器的顶层文件全加器作为子元件调用:3.利用4位全加器的原理图进行仿真,仿真波形如下:4.管脚锁定,新建好工程文件,芯片选择Cyclone Ⅲ下面的EP3C55F484C8系列。
然后锁定引脚:选择Assignments → Assignments Editor命令。
分配FPGA芯片上的管脚。
5.实验管脚接线与编译文件下载,将编译产生的SOF格式配置文件下载进FPGA中:6.管脚接线与编程测试,按分配好的输入与输出的管脚在试验箱上接线,改变输入观察输出的变化:7.实验结果与总结①原理图仿真结果②硬件测试A0,A1,A2,A3,B0,B1,B2,B3接到电平开关L1,L2,L3,L4,L5,L6,L7,L8 的改变高低电平,输出则在七段数码管上显示;进位输出C会在进位时显示。
例如:A3,A2A1,A0输入“1001”,B3,B2,B1,B0输入“1001”,则在数码管显示“2”,进位C 的发光二极管的灯亮起。
③实验当中遇到的困难实验时,由于输入管脚有10个,但是电平开关只有9个,起初是让余下的输入管脚处于悬空状态,但是改变输入的时候,输出结果始终不变,然后饿哦们将悬空的管脚接到试验箱的其他地方,测试成功。
4位二进制全加器的设计
4位二进制全加器的设计摘要加法器是产生数的和的装置。
加数和被加数为输入,和数与进位为输出的装置为半加器。
若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。
常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。
在电子学中,加法器是一种数位电路,其可进行数字的加法计算。
在现代的电脑中,加法器存在于算术逻辑单元(ALU)之中。
加法器可以用来表示各种数值,如:BCD、加三码,主要的加法器是以二进制作运算。
多位加法器的构成有两种方式:并行进位和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运行速度快;串行进位方式是将全加器级联构成多位加法器。
通常,并行加法器比串行加法器的资源占用差距也会越来越大。
我们采用4位二进制并行加法器作为折中选择,所选加法器为4位二进制先行进位的74LS283,它从C0到C4输出的传输延迟很短,只用了几级逻辑来形成和及进位输出,由其构成4位二进制全加器,并用proteus进行仿真。
关键字全加器,四位二进制,迭代电路,并行进位,74LS283,proteus仿真总电路设计一、硬件电路的设计该4位二进制全加器以74LS283(图1)为核心,采用先行进位方式,极大地提高了电路运行速度,下面是对4位全加器电路设计的具体分析。
图11)全加器(full-adder )全加器是一种由被加数、加数和来自低位的进位数三者相加的运算器。
基本功能是实现二进制加法。
全加器的功能表输入输出输入输出逻辑表达式:CIB A S ⊕⊕==AB'CI'+A'BCI'+A'B'CI+ABCI()AB CI B A CO ++=其中,如果输入有奇数个1,则S 为1;如果输入有2个或2个以上的1,则CO=1。
实现全加器等式的门级电路图如图2所示,逻辑符号如图3所示.图2图32)四位二级制加法器 a) 串行进位加法器四位二进制加法器为4个全加器的级联,每个处理一位。
硬件描述语言实验报告——四位加法器
硬件描述语言实验:四位加法器实验——实验报告姓名:学号:班级:时间:实验名称:四位加法器实验实验目的:进一步练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言基本设计实体的编写方法。
实验环境:PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。
设计要求:设计一个四位加法器,实体名称为“adder4”,其引脚与功能分别如下表。
adder4:adder4_2:adder4_3:附:其中adder4_3中的实验要求应用一位全加器按如下电路图通过结构描述方式构造四位加法器。
实验步骤:①建立工程:首先新建一个工程名为“adder4”的文件夹,其次在Quartrus II中新建同名的的工程,最后新建一个VHDL file的空白页面。
②编辑代码:adder4:设置三个信号变量:signal c0,c1,c2 : std_logic;使s的每一位都为a、b对应位上以及低进位的异或:(每一位都类似一位全加器,如0+1=1,0与1取异或结果也是1)s(0) <= a(0) xor b(0) xor ci;使信号变量代表的中间低进位为a、b以及低进位两两取并再取或:(如若低进位ci=0,a、b都等于1,a+b=1+1=0,进位是1,则1与1取并为1,1与0取并为0,1与0取并为0,1、0、0取或为1,及得到进位结果也是1)c0 <= (a(0) and b(0)) or (a(0) and ci) or (b(0) and ci);……同上,高进位取a、b最高位之和的进位即可:co <= (a(3) and b(3)) or (a(3) and c2) or (b(3) and c2);举例:ci=0,a=0101(=5),b=1001(=9),s=1110(=14),从最低位看起,,s(0)=0xor1xor1=0,c0=(0and 1) or(0and1)or(1and 1)=1,以此类推,即可得到s的值adder4_2:在文件头部位添加库,才可使用“+”:use ieee.std_logic_unsigned.all;adder4_3:③编译及修改错误:(sart compilation,若有错误则查看错误信息,不懂的意思可以在百度翻译中翻译得到,然后修改对应位置的错误代码)④建立仿真波形并仿真:⑤根据仿真结果分析设计是否正确:设置好a、b、ci的波形后,点击start simulation 按钮生成完整的结果波形图,并进行分析,看与编辑的硬件所对应的情况是否符合。
四位并行加法器实验报告
安徽大学计科院《计算机组成原理》课程设计实验设计报告设计题目:四位并行加法器设计班级:08软件二班小组成员:黄德宏(E20814116)胡从建(E20814110)指导老师:周勇完成日期:2011-3-15一.任务概述1.1设计题目概述:四位并行加法器采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。
超前进位产生电路是根据各位进位的形成条件来实现的。
它不需要依靠低位进位来到后在进行高位进位,而是根据各位输入同时产生进位,改变了进位逐位传送的方式,明显提高了加法器的工作速度。
1.2设计任务:通过小组合作讨论,利用MuxPlus2软件设计画出四位并行加法器原理图,在实验箱上连线,实现4位二进制数相加并得到正确的结果.1.3设计目的:○1掌握MaxPlus2软件的使用方法,并以此为工具进行设计电路原理图.○2了解加法器的工作原理,掌握超前进位产生电路的设计方法.○3正确将电路原理图下载到试验箱中.○4正确通过实验箱连线实现4位二进制数的相加并得到正确结果.○5增强小组协作的能力以及对知识探求的兴趣。
○6完成设计实验报告.1.4设计思路:加法器是计算机的基本运算部件之一。
若不考虑进位输入,两数码Xn,Yn相加称为半加,如下图为半加其功能表:(b)半加器逻辑图(c)用异或门实现半加器将Xn Yn以及进位输入Cn-1相加称为全价,其功能表如下图:a.(全加器功能表)(b)全加器的逻辑图(c)全加器的全加和Fn也可用异或门表示由功能表可得全加和Fn和进位输出Cn表达式:F n=X n Y n C n-1+ X n Y n C n-1+ X n Y n C n-1+ X n Y n C n-1C n= X n Y n C n-1+ X n n C n-1+n Y n C n-1+ X n Y n C n-1F n还可以用两个半加器来形成:F n=X n○+Y n○+C n-1如此,将n个全加器相连可得n位加法器,如图:但加法时间较长,只是因为其位间进位使串行的传送的,本位全加和Fi必须等低位进位Ci-1来到后才能进行,加法时间与位数有关,只有改变进位逐位传送,才能提高加法器的工作速度。
4 位加法器原理图设计
实验二 4 位加法器原理图设计一、实验目的1、进一步掌握 Quartus Ⅱ原理图输入设计法。
2、通过4位加法器的设计,掌握原理图输入法中的层次化设计。
二、实验原理So=a xor b; co=a and b;图 2-1 半加器原理图图 2-2 1位全加器原理图图 2-3 4 位加法器原理图4 位加法器(如图 2-3)是以 1 位全加器作为基本硬件,由 4 个 1 位全加器串行构成,1位全加器又可以由两个1位的半加器和一个或门连接而成(如图 2-2),而1位半加器可以由若干门电路组成(如图 2-1)。
三、实验内容本次实验使用 Altera FPGA 的开发工具 Quartus Ⅱ,利用原理图输入设计方法设计一个 4位加法器,取实验板上的 8 位按键的高 4 位与低 4 位分别作为 4 位加数与被加数,其中 8 个 LED 取 5 位作为结果输出,LED2~LED5 作为 4 位相加之和的输出结果,LED1作为两数高 4 位相加的进位 (LED 亮,表示低电平“0”, LED 灭,表示高电平“1”)四、实验步骤1、打开QUARTUS II软件,新建一个工程adder4bit。
2、建完工程之后,再新建一个Block Diagram/Schematic File。
在原理图编辑窗口绘制如图 2-1 的半加器原理图。
点击 File ->Save,将已设计好的图文件取名为:h_adder,并存在此目录内。
3、将 h_adder 设置成顶层实体。
在诸多文件打开的状态下,选中 h_adder.bdf为当前文件。
点击 Project → Set as Top-Level Entity。
4、编译。
如果发现有错,排除错误后再次编译。
直到编译通过就可以进行波形仿真了。
5、时序仿真。
建立波形文件,设置波形参量,再保存(注意: QuartusⅡ在波形仿真时,只支持一个与工程名同名的波形文件,所以在对多个文件进行波形仿真时,对波形文件都取工程名进行保存,后缀名为.vwf;若确实想保留多个波形文件,则可以分别命名,想对哪个波形文件进行仿真时,点击Processing->simulation Tool,在Simulation input中输入待仿真的波形文件即可,如图2-4所示) ,最后运行波形仿真。
实验二:用一位全加器设计一个四位的加法器
实验二:用一位全加器设计一个四位的加法器1.实验目的熟悉软件MAX+plusII掌握E D A实验仪的使用方法2.实验内容a.利用一位全加器设计一个四位的加法器b.利用MAX+plusⅡ软件,对下图所示的逻辑图进行编译和仿真,并选择器件进行定时分析。
3.实验过程a)建立项目文件夹,取名为s_a d d e rb)输入设计项目和存盘(附上原理图)(1)在原理图编辑窗口中插入4个一位全加器。
(2)再将它们联接成一个四位的加法器。
(3)输入两个4位的二进制数,输出一个4位的和,一位进位。
(4)A3A2A1A0+B3B2B1B0=S3S2S1S0进位C4(5)为了使输入输出的线减少,可以使用总线加标号的画法。
(6)单条线间的联接也可以用标号联接,减少走线的长度,使图面简洁明了。
c)将设计项目设置成工程文件d)选择目标器件并编译首先选择最后实现本项设计的目标器件;其次对工程文件进行编译,综合和适配等操作,最后消去Q u a r t u s,完成编译。
e)时序仿真(附波形图)首先建立波形文件,输入信号点,其次设置波形参量,设定访真时间,加上输入信号,文件存盘,运行访真器件,观察分析加法访真波形,打开时序分析器,精确测量加法器输入和输出波形间的延长量f)引脚锁定加法器选用结构图1, 引脚对应情况实验板位置加法器信号通用目标器件引脚名目标器件EP1K30TC144引脚号键4 a0 PIO12 26键4 a1 PIO13 27键4 a2 PIO14 28键4 a3 PIO15 29键3 b0 PIO8 20键3 b1 PIO9 21键3 b2 PIO10 22键3 b3 PIO11 23数码管8 s0 PIO28 68数码管8 s1 PIO29 69数码管8 s2 PIO30 70数码管8 s3 PIO31 72发光二级管D8 c4 PIO39 86g)编译并编程下载,硬件测试逻辑功能加法器输入输出键1(a[3..0]) 键2(b[3..0]) c4 S[3..0]低低低低低高低高高低低高高高高低4.实验结果(分析电路功能)5.遇到问题及解决方法(1)在连接原理图的时候,会遗漏某些字母或是忘记连接某些线,造成实验无法运行。
四位加法器——精选推荐
四位加法器电⼦设计技术课程设计四位加法器姓名:罗鹏学号:09325215专业:电⼦信息⼯程班级:093252指导教师:黄河2012年11⽉8⽇⽬录⼀、设计⽬的 (3)⼆、设计要求 (3)三、设计过程 (4)1.原理图的设计 (4)2.程序的设计 (5)3.功能仿真设计⽂件 (8)四、设计体会 (10)附录:A 参考⽂献 (11)附录:B 评分表 (12)⼀、设计⽬的1.学习实⽤EDA设计软件QuartusⅡ,了解电路描述、综合、模拟过程。
2.学习VHDL程序中数据对象、数据类型、顺序语句、并⾏语句的综合使⽤,了解VHDL程序的基本结构。
3.掌握使⽤EDA⼯具设计数字系统的设计思路和设计⽅法。
学习VHDL基本逻辑电路的综合设计应⽤。
⼆、设计内容设计并调试好⼀个由4个1位全加器级连构成的,本级的近位输出作为下⼀集的近位输⼊。
三、设计过程1、原理图的设计打开QuartusⅡ,单击file,选择new ,选择BlockDiagram/Schematic类型。
在原理图编辑界⾯中,元件选择对话框的符号名“Symbol Name”栏⽬内直接输⼊xor,或者在“Symbol Files”栏⽬中,⽤⿏标双击“xor”元件名,即可得到异或门的元件符号。
⽤上述同样的⽅法也可以得到与门及输⼊端和输出端的元件符号。
⽤⿏标双击输⼊或输出元件中原来的名称,使其变⿊后就可以进⾏名称修改,⽤这种⽅法把输⼊端的名称分别更改为“in3,in4,in5”,把两个输出端的名称分别更改为“led3”和“led4”,然后按照图1所⽰的⼀位加法器逻辑电路的连接⽅式,⽤⿏标将相应的输⼊端和输出端及电路内部连线连接好,并以“xxx.bdf”(注意后缀是.bdf)为⽂件名,存在⾃⼰建⽴的⼯程⽬录D:\xxx内。
进⾏存盘操作时,系统在弹出的存盘操作对话框中,⾃动保留了上⼀次存盘时的⽂件名和⽂件⽬录,不要随意单击“OK”按钮结束存盘,⼀定要填⼊正确的⽂件名并选择正确的⼯程⽬录后,才能单击“OK”按钮存盘,这是上机实验时最容易忽略和出错的地⽅。
四位加法器及3线-8线译码器设计
《EDA》课程设计题目四位加法器及3线-8线译码器设计学号姓名班级指导老师2012 年 03月 01日摘要微电子技术,即大规模集成电路加工技术的进步是现代数字电子技术发展的基础。
而现代电子技术的核心是EDA(Electronic Design Automation)技术。
EDA技术就是依靠功能强大的电子计算机,在EDA 工具平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编辑、化简、分割、综合、优化、仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC芯片中,实现既定的电子电路设计功能。
EDA工具软件主要包括设计输入编辑器、仿真器、HDL综合器、适配器(或布局布线器)及下载器5个模块。
而本次课设则分两部分,一是以Altera公司的Quartus7.2为工具软件,采用原理图输入法设计一个4位的加法器;二是通过上机实验掌握Verilog HDL文本输入语言和设计法,学习用Verilog HDL语言设计3线-8线译码器的方法。
目录一、概述1.目的与要求 (04)2.设计环境 (05)二、4位加法器设计实现过程1. 半加器的设计 (07)2. 1位全加器的设计 (13)3. 4位加法器的设计 (16)4、3线—8线译码器的设计 (18)三、收获与心得体会一、概述1目的与要求1.1 设计目的:通过对4位加法器的设计,以及3线—8线译码器的文本编辑,切实掌握Quartus7.2软件及Verilog HDL语言的使用方法。
1.2 要求1.以Altera公司的Quartus7.2为工具软件,采用原理图输入法设计一个4位的加法器,该四位加法器由以下三个步骤完成:(1)采用原理图输入法设计半加器h_adder,生成元件符号,并仿真验证设计结果;(2)采用层次化原理图输入法设计1位全加器f_adder,生成元件符号,并仿真验证设计结果;(3)在1位全加器的基础上,设计4位加法器。