实验二 8位加法器设计

简介:

一、实验目的

熟悉利用Quartus的图形编辑输入法设计简单组合电路,掌握层次化设计方法,并通过8位全加器的设计,进一步熟悉利用EDA软件进行数字系统设计的流程。

二、实验仪器与器材

计算机1台,GW48-PK2S实验箱1台,Quartus6.0 1

三、实验内容

1. 基本命题

利用图形输入法设计一个一位半加器和全加器,再利用级联方法构成8位加法器。

2. 扩展命题

利用文本输入法设计4位并行进位加法器,再利用层次设计方法构成8位加法器。通过时序仿真,比较两种加法器的性能。

四、实验设计思路

按照如2-12-22-3设计半加器、全加器、串行级联加法器

① 设计半加器

clip_image001[4]

2-1半加器设计图

② 设计全加器

clip_image003[4]

2-2全加加器设计图

 

③ 设计串行级联8位加法器

clip_image005[4]

2-3串行级联8位加法器设计图

④ 仿真波形图

对以上的串行级联加法器进行仿真。设置时钟频率为/1/10ns。每20nsa,b输入口进行+2操作。所得结果见2-8由图可知延时大约为14ns

clip_image007[4]

2-4串行级联加法器仿真波形图

对以上的串行级联加法器进行仿真。设置时钟频率为/2.0us。每10usa,b输入口进行+2操作。所得结果见2-4由图可知延时大约为10us

五、实验要求

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

六、实验思考题

1)与单一设计文件比较,实现层次化设计应注意哪些问题?

答:实现层次化设计需要注意的是:假设B设计中引用A设计,那么需要将A设计的工程文件放在B设计的工程文件中,另外,B设计的工程必须要以B的实体名称对应,不然仿真的时候会出错。

2)比较图形编辑和文本编辑两种8位二进制加法器的性能,分析它们的主要异同点。以下是文本编辑的参考程序。

1 4位二进制数加法器ADDER4BVHDL描述

 

复制代码
LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADDER4B IS

    PORT ( CIN4 : 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);

         COUT4 : OUT STD_LOGIC);

END ADDER4B;

ARCHITECTURE behav OF ADDER4B IS

    SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0);

     SIGNAL AA,BB : STD_LOGIC_VECTOR(4 DOWNTO 0);

BEGIN

     AA<='0'&A4;

     BB<='0'&B4;

    SINT <= AA + BB + CIN4;

    S4 <= SINT(3 DOWNTO 0);

    COUT4 <= SINT(4);

END behav;
复制代码

 

 

clip_image009[4]

2-9ADDER4B仿真波形图

 

对以上的ADDER8B进行仿真。设置时钟频率为/2.0us。每10usa,b输入口进行+2操作。所得结果见2-9由图可知延时大约为20us

 

2)应用ADDER4B设计8位二进制数加法器ADDER8BVHDL描述

复制代码
LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY ADDER8B IS         

      PORT ( CIN : IN STD_LOGIC;

               A : IN STD_LOGIC_VECTOR(7 DOWNTO 0);

               B : IN STD_LOGIC_VECTOR(7 DOWNTO 0);

               S : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

              COUT : OUT STD_LOGIC );

END ADDER8B;

ARCHITECTURE struc OF ADDER8B IS

COMPONENT ADDER4B

    PORT ( CIN4 :  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);

            COUT4 : OUT STD_LOGIC );

END COMPONENT;

    SIGNAL CARRY_OUT : STD_LOGIC;

BEGIN 

   U1 : ADDER4B                    -- 例化一个4位二进制加法器U1

    PORT MAP (  CIN4 => CIN, A4 => A(3 DOWNTO 0),

                  B4 => B(3 DOWNTO 0), S4 => S(3 DOWNTO 0),

                  COUT4 => CARRY_OUT );

    U2 : ADDER4B                    --例化一个4位二进制加法器U2

PORT MAP ( CIN4 => CARRY_OUT, A4 => A(7 DOWNTO 4),

       B4 => B(7 DOWNTO 4), S4 => S(7 DOWNTO 4),COUT4 => COUT );

END struc;
复制代码

 

 

 

 

clip_image011[4]

2-10ADDER8B仿真波形图

 

对以上的ADDER8B进行仿真。设置时钟频率为/2.0us。每10usa,b输入口进行+2操作。所得结果见2-10由图可知延时大约为20us

实验错误小结:

Quartus中仿真时出现no simulation input file assignment specify 解决方法 

 

这个错误的意思是:仿真文件没有被指定,要仿真的话先要建一个仿真文件
情况1file -> new -> 选择Other file选项卡
 -> Vector Waveform File 
然后把输入输出端口加进去,再设置输入的信号,保存,就可以仿真了。

情况2、如果你之前已经建立过了,就打开assignments->settings->simulator settings

看里面的有个文本框 simulation input 里面是否为空,为空的话就要找到你所建立的Vector Waveform File 文件,是以*.VMF结尾的,如果没找到,你又以为你建立了Vector Waveform File ,很可能粗心的你还没保存Vector Waveform File ,保存了才会在project里面找到。

 


作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/p/3175446.html

目录
相关文章
|
存储 XML 网络协议
|
传感器 数据采集 数据格式
RS485和Modbus通信协议,让工业自动化更高效!
RS485和Modbus通信协议,让工业自动化更高效!
element-ui Pagination分页只保留上一页下一页
有时数据量太大,比如日志数据没必要查看很久之前的,所以把页数屏蔽,不给系统造成卡顿,最简单的方式就是隐藏总条数、页数。具体做法来看一下吧
669 0
|
监控 网络协议 API
Kong05- Kong 的健康检查和监控
您可以让 Kong 代理的 API 使用 ring-balancer , 通过添加包含一个或多个目标实体的upstream 实体来配置,每个目标指向不同的IP地址(或主机名)和端口。ring-balancer 将在不同的target之间平衡负载,并基于 uptream 配置对目标执行健康检查,使它们成为健康或不健康的,无论它们是否响应,ring-balancer 将只把流量路由到健康的target。
3181 0
|
9月前
|
人工智能 编解码 安全
阿里云服务器计算型c7、c8a、c8y、c8i、c9i实例区别及选型指南参考
在阿里云的活动中,属于计算型实例的通常有计算型c7、计算型c8a、计算型c8y、计算型c8i和计算型c9i这几个实例规格,不同实例规格在处理器架构、存储技术、网络协议、安全特性等性能并不是一样的,所以他们的适用场景也有所差异。本文为大家介绍计算型c7、c8a、c8y、c8i、c9i实例的性能、适用场景的区别以及选择参考。
|
存储 缓存 安全
Python frozenset 集合详解:不可变集合的终极指南
frozenset是Python中一个常被忽视但极具价值的不可变集合类型。本文深入解析其本质、操作方法与应用场景,揭示其通过不可变性带来的安全性与性能优势。从底层实现到实战案例,涵盖字典键使用、缓存优化及类型注解等高级场景。同时对比性能数据,提供最佳实践指南,并展望Python 3.11+中的优化。掌握frozenset,可为代码带来更强健性与效率,适合多种特定需求场景。
503 5
|
监控 安全 前端开发
系统集成项目管理(二)
信息系统服务管理
1005 4
|
存储 Linux 调度
KVM 虚拟化的功能特性
【10月更文挑战第13天】虚拟化技术创建实体资源的虚拟版本,提升资源利用率。KVM(Kernel-based Virtual Machine)作为全虚拟化解决方案,借助Linux内核实现Hypervisor功能,通过模块化方式提供高效的虚拟化环境。
|
存储 人工智能 开发框架
认识什么是互联网数据中心(IDC)
互联网数据中心(IDC)拥有高速带宽、高性能网络与安全环境,提供服务器托管、租用等服务。它是数据存储与流通的核心,支持互联网内容提供商、企业和各类网站的大规模、高质量需求。机房维护涵盖多方面,确保设备稳定运行。中国IDC行业快速发展,机房按星级划分,从一星到五星,标准逐步提升,体现国家信息基础设施的进步与成熟。国际上,Uptime Institute的Tier等级进一步规范了数据中心的可用性与可靠性标准。
3272 6

热门文章

最新文章