八位加法器设计实验报告

时间:2024.4.20

8位加法器的设计

姓名:黄志刚

班级:电科1201

                                                              学号:12401720531

1.实验目的

(1)学习Quartus II/ISE Suite/ispLEVER软件的基本使用方法。

(2)学习GW48-CK或其他EDA实验开发系统的基本使用方法。

(3)了解VHDL程序的基本结构。

2.实验内容

设计并调试好一个由两个4位二进制并行加法器级联而成的8位二进制并行加法器,并用GW48-CK或其他EDA实验开发系统进行硬件验证。

3.实验要求

(1)画出系统的原理框图,说明系统中各主要组成部分的功能。

(2)编写各个VHDL源程序。

(3)根据系统的功能,选好测试用例,画出测试输入信号波形或编好测试程序。

(4)记录系统仿真、逻辑综合及硬件验证结果。

(5)记录实验过程中出现的问题及解决办法。

4.实验设计

1)系统原理框图

图6.1八位加法器电路原理图

2)VHDL源程序

4位二进制并行加法器的源程序ADDER4B.VHD

--ADDER4B.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADDER4B IS

 PORT(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 IS

  SIGNAL S5: STD_LOGIC_VECTOR(4 DOWNTO 0);

  SIGNAL A5, B5: STD_LOGIC_VECTOR(4 DOWNTO 0);

  BEGIN

   A5<=‘0’& A4;

   B5<=‘0’& B4;

   S5<=A5+B5+C4;

   S4<=S5(3 DOWNTO 0);

   CO4<=S5(4);

 END ARCHITECTURE ART;

--ADDER8B.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADDER8B IS

  PORT(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 ADDER8B;

ARCHITECTURE ART OF ADDER8B IS

  COMPONENT ADDER4B IS

    PORT(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 ADDER4B;

SIGNAL SC:STD_LOGIC;

BEGIN

U1:ADDER4B

  PORT MAP(C4=>C8,A4=>A8(3 DOWNTO 0),B4=>B8(3 DOWNTO 0),

           S4=>S8(3 DOWNTO 0),CO4=>SC);

U2:ADDER4B

  PORT MAP(C4=>SC,A4=>A8(7 DOWNTO 4),B4=>B8(7 DOWNTO 4),

           S4=>S8(7 DOWNTO  4),CO4=>CO8);

END ARCHITECTURE ART;             

5.实验结果及总结

1)系统仿真结果验证

在程序调试和仿真时,我们要使用自底向上的方法进行,也就是对于含有多个模块的设计,我们要先从底层模块进行调试和仿真,再进行更高层次模块的调试和仿真,最后进行顶层模块的调试与仿真。下图分别使用Quartus II 8.0对ADDER4B和ADDER8B进行时序仿真的结果。

图6.2 ADDER4B的时序仿真结果

图6.3ADDER8B的时序仿真结果

2)逻辑综合分析

下面是使用Quartus II 8.0进行逻辑综合ADDER8B的RTL视图;对ADDER8B的RTL视图中ADDER4B进行展开的视图;使用Quartus II 8.0对ADDER8B进行逻辑综合后的资源使用情况。

ADDER8B综合后的RTL视图

ADDER8B综合后的RTL视图中将ADDER4B展开后的视图

3)实验过程中出现的问题及解决方法

问题:仿真结果与书本结果不一样

答:设置的时间间隔过小,将其扩大便能得到正确结果。

问题:无法完成编译

答:通过对下面提示对文本进行修改最终完成了编译。


第二篇:实验一 四位串行进位加法器的设计实验报告


实验一  四位串行进位加法器的设计

一、实验目的

1.       理解一位全加器的工作原理

2.       掌握串行进位加法器的逻辑原理

3.       进一步熟悉Quartus软件的使用,了解设计的全过程,

二、实验内容

1.       采用VHDL语言设计四位串行进位的加法器

2.       采用画原理图的方法设计四位串行进位加法器

三、实验步骤

1、使用VHDL语言设计

1.打开File—>New Project Wizard输入文件名adder4保存在D盘内,打开File—>New—>VHDL File,从模版中选择库的说明,use语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后保存、编译。打开File—>New—>Other File—>Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。从Assignments—>Settings—>Simulator Settings—>Functional

然后Processing—>Generate Functional Simnlation Netlist —>确定。选择Start Simulation保存最后的波形图,打开File—>close关闭工程。

底层文件:

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY fadder IS

      PORT

      (

           a, b,cin     : IN     STD_LOGIC;

           s, co    : OUT STD_LOGIC

      );

END fadder;

ARCHITECTURE arc1 OF fadder IS

BEGIN

      s<=a xor b xor cin;

      co<=((a xor b)and cin)or(a and b);

END arc1;

顶层文件:

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY adder4 IS

      PORT

      (

           c0: IN STD_LOGIC;

           a,b            : IN     STD_LOGIC_VECTOR(3 DOWNTO 0);

           s    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

           c4  : OUT STD_LOGIC

      );

END adder4;

ARCHITECTURE arc2 OF adder4 IS

      COMPONENT fadder

      PORT

      (

           a, b,cin     : IN     STD_LOGIC;

           s, co    : OUT STD_LOGIC

      );

END COMPONENT;

      SIGNAL carry : STD_LOGIC_VECTOR(3 DOWNTO 1);

BEGIN

      u1 : fadder PORT MAP (a=>a(0), b =>b(0),cin=>c0,s=>s(0),co=>carry (1));

      u2 : fadder PORT MAP (a=>a(1), b=>b(1),cin=>carry(1),s=>s(1),co=>carry (2));

      u3 : fadder PORT MAP (a=>a(2), b=>b(2),cin=>carry(2),s=>s(2),co=>carry (3));

      u4 : fadder PORT MAP (a=>a(3),b=>b(3),cin=>carry(3),s=>s(3),co=>c4);

END arc2;

2、使用原理图的方法设计

打开File—>New Project Wizard输入文件名adder4保存在D盘内,打开File—>New—>VHDL File,从模版中选择库的说明,use语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后选择File-->Create/Update-->Create Symbol Files for Current File,选择File-->New-->Other File-->Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。从Assignments—>Settings—>Simulator Settings—>Functional

然后Processing—>Generate Functional Simnlation Netlist —>确定。选择Start Simulation保存最后的波形图,打开File—>close关闭工程。

文件:

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

ENTITY fadder IS

      PORT

      (

Cin,a, b     : IN     STD_LOGIC;

           s, co    : OUT STD_LOGIC

      );

END fadder;

ARCHITECTURE arc1 OF fadder IS

BEGIN

      s<=a xor b xor cin;

      co<=((a xor b)and cin)or(a and b);

END arc1;

原理图:

四、实验现象

五、 实验体会与收获

问题:Error (10500): VHDL syntax error at adder4.vhd(10) near text ")";  expecting an identifier, or "constant", or "file", or "signal", or "variable"

Error (10500): VHDL syntax error at adder4.vhd(19) near text "COMPONENT";  expecting ";", or an identifier ("component" is a reserved keyword), or "entity"

Error (10396): VHDL syntax error at adder4.vhd(27): name used in construct must match previously specified name "adder4"

Error (10523): Ignored construct adder4 at adder4.vhd(3) due to previous errors

解决办法 :

      c4  : OUT STD_LOGIC;

);改为:

c4  : OUT STD_LOGIC);

OUT   STD_LOGIC后面无;

收获:第二种方法中只建立熟悉理解一位全加器的工作原理,掌握串行进位加法器的逻辑原理。

更多相关推荐:
加法器 数电实验报告三

实验三加法器一实验目的1掌握用SSI器件实现全加器的方法2掌握用MSI组合逻辑器件实现全加器的方法3掌握集成加法器的应用二实验设备及器件1数字逻辑电路实验板1块274HCLS00四二输入与非门1片374HCLS...

八位加法器的设计实验报告

八位加法器的设计实验报告学号U20xx15272班级信息安全0901姓名方浏洋日期20xx528位加法器的设计实验报告目录一实验概述2二设计思路321Quartus中74181的功能分析3228位先行加法器的设...

四位加法器实验报告

四位加法器实验报告1实验目的掌握组合逻辑电路的基本分析与设计方法理解半加器和全加器的工作原理并掌握利用全加器构成不同字长加法器的各种方法学习元件例化的方式进行硬件电路设计学会利用软件仿真实现对数字电路的逻辑功能...

加法器的基本原理实验报告

一实验目的1了解加法器的基本原理掌握组合逻辑电路在Quartus中的图形输入方法及文本输入方法2学习和掌握半加器全加器的工作和设计原理3熟悉EDA工具QuartusII和Modelsim的使用能够熟练运用Vri...

加法器设计实验报告全

重庆XXXX实验报告课程名称实验名称实验类型系别年级班别学生姓名实验教师电子电路基础实验加法器设计设计学时3学时物理与电子工程学院专业电子信息工程09级电信2班学期20xx20xx上xxx学号20xx0701x...

数字电路加法器实验报告

中山大学移动信息工程学院本科生实验报告20xx学年秋季学期课程名称数字电路实验任课教师王军助教李正一实验题目Lab9用3种不同的方法实现4位加法器1行为级描述的加法器2行波进位加法器3超前进位加法器二实验目的1...

串行加法器实验报告

深圳大学实验报告课程名称学院信息工程学院班级实验时间实验报告提交时间教务部制实验要求设计一个串行数据检测器要求连续4个或4个以上为1时输出为1其他输入情况为0编写测试模块对模块进行各种层次的仿真并观察波形编写实...

多路选择器及硬件加法器实验报告

实验报告课程名称EDA技术实验实验名称班级姓名指导老师评定签名一实验目的用VHDL设计一个2选1多路选择器并设计一个8位硬件加法器二实验仪器计算机一台U盘一个Quartus软件三实验步骤一2选1多路选择器的VH...

四位并行加法器实验报告

安徽大学计科院计算机组成原理课程设计实验设计报告设计题目四位并行加法器设计班级小组成员黄德宏指导老师周勇完成日期08软件二班E20xx4116胡从建E20xx411020xx315一任务概述11设计题目概述四位...

EDA实验8位加法器的设计实验报告_王炜20xx0414

电气与信息工程学院电子设计自动化实验报告实验二8位加法器设计指导老师谭会生老师学生姓名王炜班级电子信息1202学号12401720xx7实验时间20xx0407实验二8位加法器设计1实验目的1掌握EDA使用工具...

实验一、8位加法器的设计

EDA技术实验报告题目实验一8位加法器的设计学生姓名学号10100140所在学院物理与电信工程学院专业班级物理101班一实验原理基本原理调用库USEIEEESTDLOGICARITHALL直接进行算术运算以实现...

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

题目硬件描述语言实验四四位加法器姓名学号地点主楼402时间3月21日一实验目的进一步练习VHDL语言设计工程的建立与仿真的步骤和方法熟悉VHDL语言基本设计实体的编写方法二实验环境PC个人计算机WindowsX...

加法器实验报告(30篇)