实验2:4位加法器 实验报告

合集下载

全加器实验报告【范本模板】

全加器实验报告【范本模板】

4位全加器的设计实验报告
班级:通信12-2班学号:12090216 姓名:韦建萍
一、实验目的
熟悉利用Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个4位全加器的设计,掌握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。

二、实验原理
一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的最低进位输入信号cin 相接。

加法器举例说明:设M = 1101 ,N = 1110,CIN=0,则
1、半加器(设其名为h_adder)的电路:
2、全加器(设其名为f_adder)的电路:
三、实验内容和步骤
1、完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真;
半加器电路原理设计图如图:
半加器电路仿真图如图:
全加器电路原理设计图如图:
全加器电路仿真图如图:
2、建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成编
译、综合、适配、仿真。

4位全加器电路原理图如图:
4位全加器仿真图如图:
四、仿真分析及心得体会
仿真分析:
四位全加器S0为和位,C0为进位,当a0=1,b0=1时,S0=0,C0=1,就是和位为零,进位进1。

以此类推,当a1=1,b1=0,C0=1时,和位S0=0,进位C0=1。

实验体会:
通过这次实验让我学会了如何掌握利用EDA软件进行原理图输入方式的电子线路设计的详细流程,利用Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法。

实验2:4位加法器 实验报告

实验2:4位加法器 实验报告

EDA 技术基础实验报告实验项目名称:用原理图输入法设计4位加法器学院专业:信息学院电子专业姓名:学号:实验日期:20 实验成绩:实验评定标准:一、实验目的熟悉利用Quartus Ⅱ的原理图输入方法设计简单组合电路,掌握层次化设计的方法。

并通过一个4位全加器的设计把握利用EDA 软件进行原理图输入方式的电子线路设计的详细流程。

二、实验器材电脑一台Quartus Ⅱ软件三、实验内容与步骤1.在Quartus Ⅱ软件中建立工程,画图生成一个半加器的.bdf文件。

2.将此半加器文件设置成可调用的元件,使之成为一个元件符号存盘。

3.设计全加器顶层文件,以.bdf存盘。

4.将设计项目(.bdf文件)设置成工程和时序仿真。

5.截图保存波形文件图,及仿真结果。

6.将全加器原理图文件设置成符号元件,以供4位加法器的更高层设计。

7.按实验要求画出4位加法器原理图,建立其波形并仿真,截下仿真结果图。

四、实验电路图(程序)1.半加器电路原理图如下:半加器h_adder.bdf电路原理图(1)2.全加器电路原理图如下:全加器f_adder.bdf电路原理图(2)3.4位加法器four_adder.bdf电路原理图如下:4位加法器four_adder.bdf电路原理图(3)五、实验仿真结果及分析1. 全加器的仿真波形图如下:全加器波形仿真图(3)分析:ain, bin, cin 三段为输入,sum 为和,com 为进位,满足相关的逻辑表达式{sum =(ain ′bin ′cin ′+ain bin ′cin +ain ′bin cin +ain bin cin ′)‘com =(ain ′bin ′+bin ′cin ′+ain′cin′)′2. 4位全加器仿真波形图如下:分析:4位a[3..0]输入与4位b[3..0]输入以及来自cin 输入的数码相加得到4位输出s[3..0]和进位输出c,由图可见满足加法原理。

EDA 四位加法器 实验报告

EDA 四位加法器 实验报告

实验报告课程名称:EDA技术与VHDL实验题目:四位加法器设计班级学号:姓名:成绩:一、实验目的 ..................................................................................... - 1 -二、实验任务 ..................................................................................... - 1 -三、系统总体设计 ............................................................................. - 1 -四、VHDL程序设计......................................................................... - 1 -1. 用原理图输入方式设计半加器 ................................................ - 2 -2. 全加器的设计 ............................................................................ - 4 -3.4位全加器的设计 ....................................................................... - 5 -五、仿真 ............................................................................................... - 5 -六、仿真结果分析 ............................................................................... - 6 -一、实验目的熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个4位全加器的设计把握文本和原理图输入方式设计的详细流程。

4位加法器实验报告

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位加法器①行为描述是对系统数学模型的描述,其抽象程度比寄存器传输描述方式和结构描述方式更高。

实验二 加法器的设计与仿真实验报告

实验二 加法器的设计与仿真实验报告

实验二加法器的设计与仿真一、实验目的:实现加法器的设计与仿真。

二、实验内容1.用逻辑图和VHDL语言设计全加器;2.利用设计的全加器组成串行加法器;3.用逻辑图和VHDL语言设计并行加法器。

三、实验步骤。

(一)、全加器、串行加法器和并行加法器的逻辑图。

1.全加器:2.串行加法器:3.74283:4位先行进位全加器逻辑框图:逻辑图:(二)、全加器、串行加法器和并行加法器的VHDL。

1.全加器:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY work;ENTITY quanjiaqi ISPORT(X : IN STD_LOGIC;Y : IN STD_LOGIC;CIN : IN STD_LOGIC;S : OUT STD_LOGIC;COUT : OUT STD_LOGIC);END quanjiaqi;ARCHITECTURE bdf_type OF quanjiaqi ISSIGNAL SYNTHESIZED_WIRE_0 : STD_LOGIC;SIGNAL SYNTHESIZED_WIRE_1 : STD_LOGIC;SIGNAL SYNTHESIZED_WIRE_2 : STD_LOGIC;SIGNAL SYNTHESIZED_WIRE_3 : STD_LOGIC;BEGINSYNTHESIZED_WIRE_2 <= Y AND X;SYNTHESIZED_WIRE_1 <= CIN AND Y;SYNTHESIZED_WIRE_3 <= CIN AND X;SYNTHESIZED_WIRE_0 <= X XOR Y;S <= SYNTHESIZED_WIRE_0 XOR CIN;COUT <= SYNTHESIZED_WIRE_1 OR SYNTHESIZED_WIRE_2 OR SYNTHESIZED_WIRE_3; END bdf_type;2.串行加法器:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY work;ENTITY chuanxingjiafaqi ISPORT(x0 : IN STD_LOGIC;y0 : IN STD_LOGIC;cin : IN STD_LOGIC;x1 : IN STD_LOGIC;x2 : IN STD_LOGIC;y2 : IN STD_LOGIC;x3 : IN STD_LOGIC;y3 : IN STD_LOGIC;y1 : IN STD_LOGIC;s0 : OUT STD_LOGIC;s1 : OUT STD_LOGIC;s2 : OUT STD_LOGIC;s3 : OUT STD_LOGIC;cout : OUT STD_LOGIC);END chuanxingjiafaqi;ARCHITECTURE bdf_type OF chuanxingjiafaqi ISCOMPONENT quanjiaqiPORT(X : IN STD_LOGIC;Y : IN STD_LOGIC;CIN : IN STD_LOGIC;S : OUT STD_LOGIC;COUT : OUT STD_LOGIC);END COMPONENT;SIGNAL SYNTHESIZED_WIRE_0 : STD_LOGIC; SIGNAL SYNTHESIZED_WIRE_1 : STD_LOGIC; SIGNAL SYNTHESIZED_WIRE_2 : STD_LOGIC;BEGINb2v_inst : quanjiaqiPORT MAP(X => x0,Y => y0,CIN => cin,S => s0,COUT => SYNTHESIZED_WIRE_0); b2v_inst1 : quanjiaqiPORT MAP(X => x1,Y => y1,CIN => SYNTHESIZED_WIRE_0,S => s1,COUT => SYNTHESIZED_WIRE_1); b2v_inst2 : quanjiaqiPORT MAP(X => x2,Y => y2,CIN => SYNTHESIZED_WIRE_1,S => s2,COUT => SYNTHESIZED_WIRE_2); b2v_inst3 : quanjiaqiPORT MAP(X => x3,Y => y3,CIN => SYNTHESIZED_WIRE_2,S => s3,COUT => cout);END bdf_type;3.74283:4位先行进位全加器LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY work;ENTITY 74283_0 ISPORT(CIN : IN STD_LOGIC;A1 : IN STD_LOGIC;A2 : IN STD_LOGIC;B2 : IN STD_LOGIC;A3 : IN STD_LOGIC;A4 : IN STD_LOGIC;B4 : IN STD_LOGIC;B1 : IN STD_LOGIC;B3 : IN STD_LOGIC;SUM4 : OUT STD_LOGIC;COUT : OUT STD_LOGIC;SUM1 : OUT STD_LOGIC;SUM2 : OUT STD_LOGIC;SUM3 : OUT STD_LOGIC );END 74283_0;ARCHITECTURE bdf_type OF 74283_0 IS BEGIN-- instantiate macrofunctionb2v_inst : 74283PORT MAP(CIN => CIN,A1 => A1,A2 => A2,B2 => B2,A3 => A3,A4 => A4,B4 => B4,B1 => B1,B3 => B3,SUM4 => SUM4,COUT => COUT,SUM1 => SUM1,SUM2 => SUM2,SUM3 => SUM3);END bdf_type;四、实验仿真结果。

芯片设计实验报告

芯片设计实验报告

芯片设计实验报告芯片设计实验报告引言:芯片设计是现代电子工程中的重要环节,它涉及到电路设计、模拟与数字信号处理、逻辑设计等多个领域。

本实验旨在通过设计一个简单的数字逻辑电路芯片来加深对芯片设计流程的理解,并掌握相关工具的使用。

一、实验目标本实验的主要目标是设计一个4位加法器芯片,实现两个4位二进制数的相加。

通过这个实验,我们将学习到如何进行芯片设计的基本步骤,包括电路设计、逻辑门的选择与布局、电路模拟与验证等。

二、实验步骤1. 电路设计根据实验要求,我们需要设计一个4位加法器芯片。

首先,我们需要确定所需的逻辑门类型。

在这个实验中,我们选择使用AND门、OR门和XOR门。

然后,我们根据加法器的逻辑功能,设计出相应的电路图。

2. 逻辑门的选择与布局在芯片设计中,逻辑门的选择和布局非常重要。

我们需要根据电路的逻辑功能和性能要求,选择适当的逻辑门,并合理布局。

在这个实验中,我们选择使用CMOS逻辑门,并根据实验要求进行布局。

3. 电路模拟与验证在设计完成后,我们需要使用相应的电路模拟工具对设计进行验证。

通过模拟,我们可以检查电路的功能是否符合预期,并进行必要的调整。

在这个实验中,我们可以使用SPICE软件进行电路模拟。

4. 电路布线与布局在电路设计验证通过后,我们需要进行电路布线与布局。

这一步骤是将逻辑电路转化为物理电路的过程,需要考虑电路的布线规则、信号线的长度匹配等因素。

在这个实验中,我们可以使用EDA工具进行电路布线与布局。

5. 物理设计与制造在完成电路布线与布局后,我们需要进行物理设计与制造。

这一步骤是将电路布线转化为实际的芯片结构,并进行制造。

在这个实验中,我们可以使用CAD 工具进行物理设计与制造。

三、实验结果与分析通过以上的实验步骤,我们成功设计并制造了一个4位加法器芯片。

通过电路模拟与验证,我们确认了芯片的功能正常,并且满足了设计要求。

此外,我们还对芯片的性能进行了评估,包括功耗、速度等指标。

eda四位全加器实验报告

eda四位全加器实验报告

eda四位全加器实验报告EDA实验报告(四位全加器的实现)实验一四位全加器的实现一、实验目的1、掌握Quartus9.0图形编辑输入法2、掌握Quartus环境下文件的编译、仿真及下载方法3、了解VHDL语言的设计流程4、掌握quartus环境下VHDL的使用方法二、实验内容1、用图形/原理图法实现4位全加器。

2、用VHDL语言实现4位全加器,必须使用元件例化。

3、仿真并通过。

3、下载到实验板,并验收三、实验步骤1、图形编辑发设计4位加法器(1)新建图形文件,设计一位全加器,逻辑电路图如下图(图1-1)所示。

图1-1(2)将设计好的一位全加器进行例化,操作为file?Create/Update?Create symbol files for currentfile,完成此操作后会在元器件符号表里找到刚刚做好的一位全加器。

(3)再新建一个图形文件,用四个已经做好的一位全加器级联成一个四位全加器,其逻辑原理图如图1-2所示。

编辑好后保存文件,在文件列表里找到该文件,右键?Set as Top-level Entity,将其设置为顶层文件,点击编译按钮就行编译。

1图1-2(4)新建波形文件,赋予每个输入端口某种输入信号,保存波形文件,进行功能仿真,观察输出端波形与输入信号关系是否正确。

若不正确,查找问题所在并解决问题;若正确,则进行管脚分配,分配完毕后再编译一次使分配生效,连接DE2开发板到电脑,将文件下载到开发板进行验证。

2、用VHDL语言设计4位加法器(1)新建一个VHDL源文件,文件名为adder1.vhd,使用VHDL 实现一位全加器,其VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adde1r ISPORT(A,B,Ci:IN STD_LOGIC;S,Co:OUT STD_LOGIC);END adder1;ARCHITECTURE qadder OF adder1 ISBEGINPROCESS(A,B,Ci)VARIABLE n1,n2,n3:STD_LOGIC;BEGINn1:=A AND B;n2:=A XOR B;2n3:=Ci AND n2;Co=n3 OR n1;S=n2 XOR Ci;END PROCESS;END qadder;(2)再新建一个VHDL源文件,命名为adder4.vhd,在这里将adder一位全加器例化并使用它,做成四位全加器,代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(A,B:in std_logic_vector(3 downto 0); S:out std_logic_vector(3 downto 0);Co:out std_logic;Ci:in std_logic);end adder4;architecture adder_4 of adder4 iscomponent adderport(A:in std_logic;B:in std_logic;Ci:in std_logic;Co:out std_logic;S:out std_logic);end component;signal c1,c2,c3:std_logic;beginu1:adder port map(A(0),B(0),Ci,c1,S(0)); u2:adder port map(A(1),B(1),c1,c2,S(1)); u3:adder port map(A(2),B(2),c2,c3,S(2)); u4:adder port map(A(3),B(3),c3,Co,S(3)); end adder_4;(3)保存文件后将adder4设置为顶层文件并编译,编译通过后按照与图形编辑发一样的仿真、管脚分配方式进行操作,最后下载到开发板验证四、实验现象两种方式实现的四位加法器下载到DE2开发板后都可正常工作,其中使用SW0作为低位的进位,SW4~1作为数据B,SW8~5作为数据A,LDG3~0作为输出的结果,LEDG4作为输出的进位。

4位二进制加法器实验报告

4位二进制加法器实验报告

4 位二进制加法器实验报告一、实验名称:4 位二进制加法器设计实验二、实验目的:1.进一步熟悉QuartusII 软件使用方法。

2.进一步掌握的VerilogHDL 语言描述和原理图描述的方法。

3.进一步掌握4 位二进制加法器的设计方法。

三、设计思想:用串行进位方式构成的 4 位二进制加法器如图:4 位串行进位二进制加法器是以一位二进制全加器为基础,如图,将四个一位二进制全加器串接构成一个4 位二进制加法器。

4 位二进制加法器可对两个4 位二进制数进行加法运算,同时产生进位。

当两个二进制数相加时,较高高位相加时必须加入较低位的进位项(Ci),以得到输出为和(S)和进位(C0)。

可以采用原理图的描述方法和VerilogHDL 语言描述方法。

四、实验内容:1.通过VerilogHDL 语言描述4 位二进制加法器的功能。

2.通过原理图方式描述4 位二进制加法器的功能。

3.通过波形仿真验证描述4 位二进制加法器的功能。

五、实验流程:1.采用VerilogHDL 语言描述实现4 位二进制加法器:(1).首先用VerilogHDL 语言编写二进制半加器:module halfadd(s,c,a,b);input a,b;output s,c;xor(s,a,b);and(c,a,b);endmodule按周期输入波形(2).再编写一位二进制全加器:module fulladd (s,co,a,b,cl); inputa,b,cl;output s,co;wire s1,d1,d2;halfadd ha1 (s1,d1,a,b); halfadd ha2 (s,d2,s1,cl);or g1(co,d2,d1);Endmodule按周期输入波形(2).之后编写4 位二进制加法器:module bitadd (s,c3,a,b,t1);input [3:0]a,b;input t1;output [3:0]s;output c3;wire c0,c1,c2;fulladd fa0(s[0],c0,a[0],b[0],t1);fulladd fa1(s[1],c1,a[1],b[1],c0);fulladd fa2(s[2],c2,a[2],b[2],c1);fulladd fa3(s[3],c3,a[3],b[3],c2);endmodule2.按照4 位二进制加法器的工作原理可以绘制成如下原理图:3.功能仿真波形及说明:(1).按周期输入波形:由此波形图可以分析:例如0001+0001=0010、0100+0100=1000、0110+0110=1100…对于所有的两个四位二进制相加,结果正确。

加法器实验报告

加法器实验报告

篇一:加法器试验报告实验__一__【试验名称】1 位加法器【目的与要求】1. 把握 1 位全加器的设计2. 学会 1 位加法器的扩展【试验内容】1. 设计 1 位全加器2. 将 1 位全加器扩展为 4 位全加器3. 使 4 位的全加器能做加减法运算【操作步骤】1. 1 位全加器的设计(1) 写出 1 位全加器的真值表(2) 依据真值表写出表达式并化简(3) 画出规律电路(4) 用 quartusII 进行功能仿真,检验规律电路是否正确,将仿真波形截图并粘贴于此(5) 假如电路设计正确,将该电路进行封装以用于下一个环节 2. 将1 位全加器扩展为 4 位全加器(1) 用 1 位全加器扩展为 4 位的全加器,画出电路图(2) 分别用两个 4 位补码的正数和负数验证加法器的正确性(留意这两个数之和必需在 4 位补码的数的范围内,这两个数包括符号在内共 4 位),用 quartusII 进行功能仿真并对仿真结果进行截图。

3. 将 4 位的全加器改进为可进行 4 位加法和减法的运算器(1) 在 4 位加法器的基础上,对电路进行修改,使该电路不仅能进行加法运算而且还能进行减法运算。

画出该电路(2) 分别用两个 4 位补码的正数和负数验证该电路的正确性 (留意两个数之和必需在 4 位补码的数的范围内) ,用 quartusII 进行功能仿真并对仿真结果进行截图。

【附录】篇二:加法器的基本原理试验报告一、试验目的1、了解加法器的基本原理。

把握组合规律电路在 Quartus Ⅱ中的图形输入方法及文本输入方法。

2、学习和把握半加器、全加器的工作和设计原理3、熟识 EDA 工具 Quartus II 和 Modelsim 的使用,能够娴熟运用 Vrilog HDL 语言在Quartus II 下进行工程开辟、调试和仿真。

4、把握半加器设计方法5、把握全加器的工作原理和使用方法二、试验内容1、建立一个 Project。

VHDL四位加法器实验报告

VHDL四位加法器实验报告

硬件描述语言实验:四位加法器实验实验人姓名:王昭学号: 2010482062实验地点: B3-216 实验三:-- Quartus II VHDL Template-- Basic Shift Registerlibrary 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;begins(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 rtl;实验原理:a和b为两个四位的数,定义三个信号量,c0,c1,c2;低位进位si=0;s(0)=a(0)+b(0)+si;进位为c0;s(1)=a(1)+b(1)+c0;进位为c1;s(2)=a(2)+b(2)+c1;进位为c2;s(3)=a(3)+b(3)+c2;进位为co;低位进位si都为0;如果a+b的值大于15时,则co为1,s=a+b-16;如果不是大于15,则相加时则s=a+b的值,co=0;经仿真可以验证此四位加法器正确。

四位全加器实验报告格式

四位全加器实验报告格式

实验二 使用VHDL 语言设计语言设计四位全加器四位全加器 实验报告专业班级专业班级:: 学号学号:: 姓名姓名::一、实验目的1. 了解四位全加器的工作原理。

2. 掌握基本组合逻辑电路的设计方法。

3. 熟悉应用Quartus II 进行FPGA 开发过程和开发方法。

4. 掌握VHDL 语言程序的基本结构,初步熟悉VHDL 语言设计方法。

二、实验原理全加器是由两个加数A i 和B i 以及低位来的进位C i 作为输入,产生本位和Si 以及向高位的进位C O 的逻辑电路。

它不但要完成本位二进制码A i 和B i 相加,而且还要考虑到低一位进位C i 的逻辑。

对于输入为A i 、B i 和C i ,输出为S i 和C O 的情况,根据二进制加法法则可以得到全加器的真值表:A iB iC i S i C O 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 111由真值表得到Si 和Ci 的逻辑表达式为:S i =A i ⊕B i ⊕C iC O =(A i ⊕B i )C i +A i B i这是一位的二进制全加器,要完成一个四位的二进制全加器,只需要把四个级联起来即可。

四位全加器可以看作是4个1位全加器串行构成。

三、实验内容实验内容1.根据逻辑表达式设计一个四位二进制全加器,考虑最低位的进位输入信号。

2.写出四位全加器的VHDL 语言源代码,并下载验证。

四、预习要求1.了解VHDL 语言程序的基本结构一个VHDL 语言程序必须包含 和 两个部分,除这两个部分外,多数程序还包含 和 。

• 实体:定义电路实体的外观,电路的外部输入和输出端口,即模块的外部特征。

实体使用关键字 来定义,用 关键字来定义输入输出端口, 以 关键字结束。

• 结构体:用来描述电路的内部结构和逻辑功能。

结构体是有一个或多个并行语句构结构体是有一个或多个并行语句构成的成的,,他们的书写顺序并不代表执行顺序,这一点与其他高级语言有所不同。

实验二 加减法运算器的设计实验报告

实验二 加减法运算器的设计实验报告

加减法运算器的设计实验报告实验二加减法运算器的设计一、实验目的1、理解加减法运算器的原理图设计方法2、掌握加减法运算器的VERILOG语言描述方法3、理解超前进位算法的基本原理4、掌握基于模块的多位加减运算器的层次化设计方法5、掌握溢出检测方法和标志线的生成技术6、掌握加减运算器的宏模块设计方法二、实验任务1、用VERILOG设计完成一个4位行波进位的加减法运算器,要求有溢出和进位标志,并封装成模块。

模块的端口描述如下:module lab2_RippleCarry 宽度可定制(默认为4位)的行波进位有符号数的加减法器。

#(parameter WIDTH=4)( input signed [WIDTH-1:0] dataa,input signed [WIDTH-1:0] datab,input add_sub, // if this is 1, add; else subtractinput clk,input cclr,input carry_in, //1 表示有进位或借位output overflow,output carry_out,output reg [WIDTH-1:0] result)2、修改上述运算器的进位算法,设计超前进位无符号加法算法器并封装成模块。

模块的端口描述如下:module lab2_LookaheadCarry // 4位超前进位无符号加法器(input [3:0] a,input [3:0] b,input c0, //carry_ininput clk,input cclr,output reg carry_out,output reg [3:0]sum);3、在上述超前进位加法运算器的基础上,用基于模块的层次化设计方法,完成一个32位的加法运算器,组内超前进位,组间行波进位。

4、用宏模块的方法实现一个32位加减运算器。

三、实验内容1、用VERILOG设计完成一个4位行波进位的加减法运算器,要求有溢出和进位标志,并封装成模块。

四位加法器实验报告

四位加法器实验报告

四位加法器实验报告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条)、输出进位信号。

1.8位可控加减法电路设计 2.4位先行进位电路设计 实验报告

1.8位可控加减法电路设计 2.4位先行进位电路设计 实验报告

1.8位可控加减法电路设计2.4位先行进位电路设计实验报告1.引言1.1 概述概述随着科技的发展,数字电路设计在计算机科学和电子工程领域中扮演着至关重要的角色。

本实验旨在设计并实现可控加减法电路和先行进位电路,以进一步提升数字电路设计的能力。

在本实验中,我们首先介绍了实验的目的和本文的结构。

接着,我们详细讲解了1.8位可控加减法电路设计的原理和电路图设计,并通过实验演示了其功能和性能。

随后,我们进一步介绍了2.4位先行进位电路设计的原理和电路图设计。

通过实验验证,我们展示了该电路在实际应用中的可靠性和高效性。

最后,我们总结了实验的结果,并分享了实验过程中的心得体会。

通过本次实验,我们不仅深入理解了可控加减法电路和先行进位电路的工作原理,还提升了自身的数字电路设计技能。

在本文中,我们将使用以下内容来阐述每个部分的主要思想和实验结果。

通过对这些内容的深入讨论,希望能够为读者提供一个清晰而全面的认识,以便更好地理解和应用可控加减法电路和先行进位电路的设计方法。

1.2文章结构【1.2 文章结构】本实验报告将分为以下几个部分进行描述和介绍。

首先,在引言部分,我们将对本实验的概述进行说明,介绍实验报告的结构以及实验的目的。

接下来,在第二部分中,我们将详细介绍1.8位可控加减法电路的设计原理。

这部分将涵盖所需的原理背景知识,并展示设计过程中所采用的方法和思路。

同时,我们将呈现电路图的设计,以便读者可以更直观地理解整个电路的实现方式。

第三部分将介绍2.4位先行进位电路的设计原理。

在这一部分中,我们将阐述该电路的工作原理和所采用的设计方案。

同样,我们还将提供对应的电路图设计,以帮助读者更好地了解电路的构成和工作方式。

在实验报告的最后一部分,我们将总结实验结果并得出结论。

在4.1实验结果总结中,将详细列举每个电路的实验结果,并对其性能进行评估和分析。

同时,我们将在4.2实验心得中分享我们在实验过程中的经验和感悟,包括遇到的问题、解决方案以及对未来可能的改进的展望。

FPGA四位加法器实验报告

FPGA四位加法器实验报告

题目:含异步清0和同步使能的4位加法计数器一. 实验目的.学习时序电路的设计、仿真和硬件测试,进一步熟悉VHDL技术。

二.实验原理.如图是一含计数使能、异步复位和计数值并行预置功能4位加法计数器,4位锁存器;rst是异步清0信号,高电平有效;clk是锁存信号;D[3..0]是4位数据输入端。

ENA是使能信号,当ENA为'1'时,多路选择器将加1器的输出值加载于锁存器的数据端;当ENA为'0'时将"0000"加载于锁存器。

三.实验内容.设计一个含异步清0和同步使能的4位加法计数器;实现对输入时钟(clk)的计数。

任务分析:在RST=1,ENA=1时,系统对输入时钟进行计数,所计数值输出至OUTY(3 DOWNTO 0),当计数满15时,产生一个进位,输出至COUT,同时OUTY溢出归零;如果RST=1,ENA=0时,保持原来的计数值不变。

如果RST=0,置输出信号为0;1)异步复位,则输入信号有复位信号RST2)同步使能, 则输入信号有使能信号ENA3)要求同步的时序,则输入信号有时钟CLK在QuartusII上对下列程序进行编辑、编译、综合、适配、仿真。

module CNT4B(CLK,RST,ENA,CLK_1,RST_1,ENA_1,OUTY,COUT);input CLK,RST,ENA;output CLK_1,RST_1,ENA_1;output[3:0] OUTY;output COUT;reg[3:0] OUTY;reg COUT;wire CLK_1; wire RST_1; wire ENA_1;assign CLK_1 = CLK; assign RST_1 = RST; assign ENA_1 = ENA;always@(posedge CLK or negedge RST)begin if(!RST)begin OUTY<=4'b0000;COUT<=1'b0; endelse if(ENA)Begin OUTY<=OUTY+1;COUT<=OUTY[0] & OUTY[1] & OUTY[2] & OUTY[3]; end end endmodule四.实验步骤.1.在QUARTUSII软件下创建一工程,工程名为CNT4B,芯片名为EP2C35F672C6;2.新建Verilog语言文件,输入以上Verilog语言源程序,并将程序命名为CNT4B.vhd,保存在与工程相同的文件夹中;3.进行功能仿真、全编译、时序仿真,如出现错误请按照错误提示进行修改,保证设计的正确性。

硬件描述语言实验报告——四位加法器

硬件描述语言实验报告——四位加法器

硬件描述语言实验:四位加法器实验——实验报告姓名:学号:班级:时间:实验名称:四位加法器实验实验目的:进一步练习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来到后才能进行,加法时间与位数有关,只有改变进位逐位传送,才能提高加法器的工作速度。

电子设计(EDA)实验报告(4位二进制加法器)

电子设计(EDA)实验报告(4位二进制加法器)

电子设计(EDA)实验报告(4位二进制加法器)一、实验名称4位二进制加法器二、实验目的掌握输入编辑原理图文件的方法;掌握编译原理图文件的方法;掌握仿真原理图文件的方法;理解Quartus 2 器件编程的方法三、实验环境计算机与Quartus 2 工具软件四、实验原理图、源程序entity halfadd isport(a1,b1:in bit;s1,c1:out bit);end ;architecture a of halfadd isbeginprocess(a1,b1)begins1<=a1 xor b1 after 10ns;c1<=a1 and b1 after 10ns;end process;end a;entity orgate isport(a,b:in bit;o:out bit);end orgate;architecture a of orgate isbegino<=a or b;end a;entity fulladd isport(i1,i2,c_in:in bit;fs,c_out:out bit);end ;architecture a of fulladd issignal temp_s,temp_c1,temp_c2:bit; component halfaddport(a1,b1:in bit;s1,c1:out bit);end component;component orgate port(a,b:in bit;o:out bit);end component;beginu0:halfadd port map(i1,i2,temp_s,temp_c1);u1:halfadd port map(temp_s,c_in,fs,temp_c2); u2:orgate port map(temp_c1,temp_c2,c_out); end a;entity add4 isport(a,b:in bit_vector(3 downto 0);cin:in bit;fs:out bit_vector(3 downto 0);cout:out bit);end add4;architecture a of add4 issignal temp_co0,temp_co1,temp_co2:bit; component fulladd isport(i1,i2,c_in:in bit;fs,c_out:out bit);end component;beginu0:fulladd port map(a(0),b(0),cin,fs(0),temp_co0);u1:fulladd port map(a(1),b(1),temp_co0,fs(1),temp_co1);u2:fulladd port map(a(2),b(2),temp_co1,fs(2),temp_co2);u3:fulladd port map(a(3),b(3),temp_co2,fs(3),cout);end a;五、实验波形图及分析延迟12.08ns。

数电加法器实验报告

数电加法器实验报告

竭诚为您提供优质文档/双击可除数电加法器实验报告篇一:数字电路加法器实验报告中山大学移动信息工程学院本科生实验报告(20XX学年秋季学期)课程名称:数字电路实验任课教师:王军助教:李正一、实验题目Lab9:用3种不同的方法实现4位加法器1.行为级描述的加法器2.行波进位加法器3.超前进位加法器二、实验目的1.更加熟练的运用Ise软件进行实验设计和仿真。

2.加深对verilog语言的理解和运用3.掌握加法器的原理,学会用不同层级实现方法来实现加法器三、实验内容1.实验步骤?编写文本文件并编译?软件仿真?进行硬件配置2.实验原理四、实验结果b9:Ise软件进行4位加法器的设计与实现(行为级描述的加法器)1.1.综合得出的RTL电路图图一:加法器行为级描述RTL图如图一所示,用行为级语言对加法器进行描述即可实现四位加法器。

1.2仿真波形图图二:图一:行为级加法器实现的仿真图如图二所示,当输入a,b二进制的四位数时,输出y 分别是将四位数相加。

cf是最大进位,当a与b相加之后的数大于16,则cf输出为1,其余情况输出为0。

例如,当输入为a=1000,b=0111,时,输出相应的y应为1111,cf为0。

根据加法运算,上述仿真的结果是正确的。

1.3开发板的实际效果图下图的左边前四个开关分别对应a输入从高位到低位的四位二进制数,靠近右边的四个开关别对应输入b从高位到低位的四位二进制数。

输出对应5个LeD灯,从高位到低位分别为靠近左边从左到右的五个灯。

图一:a=1000,b=0101,y=1101,cf=0效果图如上图所示,当输入为a=1000和b=0101,相应的输出为0,1101分别对应相应的第2,3,5盏灯亮图二:a=1000,b=0111,y=1111,cf=0效果图如上图所示,当输入为a=1000和b=0111,相应的输出为0,1111分别对应相应的第2,3,4,5盏灯亮图三:a=1000,b=1000,y=0000,cf=1效果图如上图所示,当输入为a=1000和b=1000,相应的输出为1,0000分别对应相应的第1盏灯亮图四:a=1110,b=1010,y=1000,cf=1效果图如上图所示,当输入为a=1110和b=1010,相应的输出为1,1000分别对应相应的第1,2盏灯亮图五:a=1110,b=1101,y=1011,cf=1效果图如上图所示,当输入为a=1110和b=1101输出为1,1011 分别对应相应的第1,2,4,5盏灯亮2.Ise软件进行4位加法器的设计与实现(行波进位加法器)2.1.综合得出的RTL电路图如上图所示,按照加法器的实验原理,对与相应的进位数c[i],c[i]=a[i]2.2仿真波形图3.Ise软件进行4位加法器的设计与实现(超前进位加法器)3.1RTL图如图所示,根据超前进位的原理,对于相应的位数I,当a[i]=b[i]=1时,由相应进位为=1,即产生进位。

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

EDA 技术基础实验报告
实验项目名称:用原理图输入法设计4位加法器
学院专业:信息学院电子专业
姓名:
学号:
实验日期:20 实验成绩:
实验评定标准:
一、实验目的
熟悉利用Quartus Ⅱ的原理图输入方法设计简单组合电路,掌握层次化设计的方法。

并通过一个4位全加器的设计把握利用EDA 软件进行原理图输入方式的电子线路设计的详细流程。

二、实验器材
电脑一台
Quartus Ⅱ软件
三、实验内容与步骤
1.在Quartus Ⅱ软件中建立工程,画图生成一个半加器的.bdf文
件。

2.将此半加器文件设置成可调用的元件,使之成为一个元件符号
存盘。

3.设计全加器顶层文件,以.bdf存盘。

4.将设计项目(.bdf文件)设置成工程和时序仿真。

5.截图保存波形文件图,及仿真结果。

6.将全加器原理图文件设置成符号元件,以供4位加法器的更高
层设计。

7.按实验要求画出4位加法器原理图,建立其波形并仿真,截下
仿真结果图。

四、实验电路图(程序)
1.半加器电路原理图如下:
半加器h_adder.bdf电路原理图(1)
2.全加器电路原理图如下:
全加器f_adder.bdf电路原理图(2)3.4位加法器four_adder.bdf电路原理图如下:
4位加法器four_adder.bdf电路原理图(3)
五、实验仿真结果及分析
1. 全加器的仿真波形图如下:
全加器波形仿真图(3)
分析:
ain, bin, cin 三段为输入,sum 为和,com 为进位,满足相关的逻辑表达式
{sum =(ain ′bin ′cin ′+ain bin ′cin +ain ′bin cin +ain bin cin ′)‘com =(ain ′bin ′+bin ′cin ′+ain′cin′)′
2. 4位全加器仿真波形图如下:
分析:
4位a[3..0]输入与4位b[3..0]输入以及来自cin 输入的数码相加得到4位输出s[3..0]和进位输出c,由图可见满足加法原理。

相关文档
最新文档