作者:chenjieb520

一.设计目的

熟悉Quartus II的VHDL文本设计流程全过程,学习组合电路的设计,仿真和测试。

二.设计内容

设计一位全加器,给出程序的设计、软件编译、仿真分析、硬件测试及详细实验过程。

三.程序设计原理

实验步骤:

(1) 新建一个QuartusⅡ工程,用以在DE2平台上实现所要求的电路。

(2) 建立一个VHDL文件,实现一位全加器电路,完成编译。

(3) 新建一个波形文件,进行仿真分析,验证功能。

  (4) 参照DE2平台的引脚分配表分配引脚,用SW2~SW0作为输入ain bin cin,DE2平台上的LEDR0输出sum, LEDR1输出cout。

  (5) 编译工程,完成后下载到FPGA中。

(6) 拨动波段开关并观察LED灯的显示,以验证设计的功能是否正确。

原理:

本实验的原理是利用两个一位的半加器来组成一个一位的全加器。在程序设计中,利用组件化的思想来调用两个功能比较简单的半加器来实现功能稍加复杂的全加器。而一位半加器的设计思想就是利用真值表来进行设计即可。真值表如下:

a

b

so

co

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

四.程序流程图

电路图:

程序流程图:由于本程序的逻辑设计比较简单,这里就不画程序流程图。程序的主要逻辑设计就是根据半加器的真值表进行设计的。

五.源程序

//h_adder.vhdl

library ieee;

use ieee.std_logic_1164.all;

entity h_adder is

port (a,b:in std_logic ;co,so:out std_logic);

end entity h_adder;

architecture fh1 of h_adder is

begin

so<=NOT(a XOR (NOT b));

co<=a AND b;

end architecture fh1;

// or2a.vhdl

library ieee;

use ieee.std_logic_1164.all;

entity or2a is

port (a,b:in std_logic;c:out std_logic );

end entity or2a;

architecture one of or2a is

begin

c<=a OR b;

end architecture one;

// adder.vhdl

library ieee;

use ieee.std_logic_1164.all;

entity adder is

port(ain,bin,cin:in std_logic;cout,sum:out std_logic);

end entity adder;

architecture fd1 of adder is

component h_adder

port(a,b:in std_logic;co,so:out std_logic);

end component;

component or2a

port(a,b:in std_logic;c:out std_logic);

end component;

signal d,e,f:std_logic;

begin

u1: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;

六.调试过程

七.遇到的问题及解决方法

1、由于这是第一的实验,对于实验的环境很是陌生,导致在刚开始的时候,对整个程序的运行的过程很不熟悉,后来在老师的指导下,才懂得一些入门的知识。

2、在VHDL编程中,实体名要和文件名一样,否则编译就会出现错误。

3、在建立一般的仿真波形时,要注意将相应的引脚添加进来,在对各个输入的引脚进行波形编辑,然后尽量地遍历所有的情况。

4、在将程序下载的硬件的时候,不能只是单纯地就进行下载,应该在设置所有的硬件参数之后,要对整个项目重新编译一次,这样才能保证下载到机器上的程序是最新的,否则是得不到我们想要的结果的。

5、总之,经过这次的实验,了解到了VHDL的一般编写过程,如何进行调试和分析运行结果。

八.参考文献

EDA技术与VHDL(第二版) 潘松  黄继业 编著

一位全加器 VHDL设计与实现相关推荐

  1. 一位全加器的设计和交通灯控制器EDA

    一.实验内容 1)熟悉quartusll开发环境 2)一位全加器的设计和交通灯控制器. FPGA为核心,设计一个交通灯控制器,每个路口都有红.黄.绿三盏灯.该交通信号灯控制器由一条车道A和一条车道B汇 ...

  2. 一位全加器的设计与实践

    认识全加器 半加器 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路 半加器的输出表达式为S=A⊕B,C=AB,逻辑电路图如下 一位全加器 全加器的真值表如下,其中Ain表示被 ...

  3. 4位全加器VHDL描述

     转自http://www.seas.upenn.edu/~ese171/vhdl/vhdl_primer.html#_Toc526061350 library  ieee; use  ieee. ...

  4. 在Verilog语言中,使用门级建模设计一个由1位全加器组成的4位全加器

    4位全加器的门级建模 Verilog语言的层级 在Verilog硬件描述语言中,我们可以分许多层次对电路进行描述,每一层都有自己的特点.层次分为开关级.门级.数据流级.行为级.我们不能说必须使用哪一种 ...

  5. 【计算机组成原理】一位全加器

    一位全加器 在设计全加器的过程中,需要考虑如下两个问题: 如何产生相加数的和数 如何产生相加数的进位数 和数的逻辑实现 和为1:0+1=11+0=1和为0:0+0=01+1=0和为1: 0 + 1 = ...

  6. 四位全加器的设计与仿真

    若对你有用,记得点赞.关注我哦! 计算机组成原理期末复习[超实用] 一位全加器的设计与仿真 简单运算器的设计与仿真 八位比较器的设计与仿真 1/2分频器的设计和仿真 四选一多路选择器的设计与仿真 1. ...

  7. 原理图以及vhdl设计一位全加器

    原理图设计以及VHDL设计 一位加法器 全加器原理 全加器真值 输出表达式 原理图设计法 VHDL设计法 代码如下: 全加器是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器.一位全加器 ...

  8. 用行为级描述方式实现一个加法器电路(基于ISE的设计)(2输入1位全加器电路)

    准备 先用行为级描述方式实现一个2输入一位全加器电路 由于后面需要使用综合工具进行综合,这里先声明使用的FPGA是Virtex-7系列的: 目的很单纯,就是熟悉一下使用ISE进行FPGA设计的一般流程 ...

  9. FPGA实现1位全加器设计

    文章目录 一.基础知识 1. 半加器 2. 全加器 二.原理图实现1位全加器 三.Verilog实现1位全加器 四.参考

最新文章

  1. 一篇让你搞懂 Nginx
  2. JavaWeb核心之Servlet
  3. electron——初探
  4. 《微机原理及接口技术》第07章在线测试
  5. python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中
  6. oracle 表空间 用户
  7. latex目录标题中间空一个字符
  8. mysql 配置 explicit_defaults_for_timestamp
  9. vbs比较两个数组里的数的大小_BAT 高频面试题:寻找两个有序数组的中位数
  10. java模拟器下载文件_KEmulator(java模拟器)最新下载
  11. Shell 编程入门到精通
  12. 干货文:企业 IT 基础架构|(精华篇)
  13. AMS1117手册解析
  14. 奥创软件研究院 张启程同学 受邀成为PostgreSQL 2018 中国技术大会分享嘉宾
  15. MATLAB数据导入汇总
  16. WPF Grid绘制网格线
  17. Hadoop经典案例——单词统计
  18. 时下火热的 NFT 究竟有什么用?
  19. SpringBoot--访问静态页面
  20. 水星mw150us linux驱动下载,水星MW150US驱动

热门文章

  1. 人工智能入门学习教程
  2. 2019年1-6月网络安全态势分析及建议
  3. VS2019显示错误未定义标识符delay
  4. 防火墙的三种配置方案(转)
  5. 这10个问题帮你搞清楚SaaS是什么
  6. 课得软件丨纵观全球程序员税后年收入,中国排在第几?
  7. day11 - 每日总结及作业
  8. OpenGL 游戏开发: 熟悉练习【《OpenGL超级宝典》第二章】
  9. Contiki网络协议栈uIP和rime
  10. C/C++动态数组delete时卡死或报错解决