文章目录

  • 一、认识全加器
    • (一)半加器
    • (二)1位全加器
  • 二、输入原理图实现1位加法器
    • (一)半加器原理图输入
    • (二)全加器原理图输入
  • 三、Verilog实现1位加法器
  • 四、下载测试
    • (一)输入原理图
    • (二)Verilog代码
  • 五、参考链接

一、认识全加器

(一)半加器

  1. 半加器的定义
    半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。
  2. 半加器的真值表
    A,B表示二进制数,C表示半加进位,S表示半加和

    A B C S
    0 0 0 0
    0 1 0 1
    1 0 0 1
    1 1 1 0
  3. 输出表达式
    S=AˉB+ABˉ=A⊕B{S=\bar{A}B+A\bar{B}=A\oplus B}S=AˉB+ABˉ=A⊕B
    C=AB{C=AB}C=AB
  4. 逻辑电路图

(二)1位全加器

  1. 1位全加器的真值表
    Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和

    Ain Bin Cin Cout Sum
    0 0 0 0 0
    0 0 1 0 1
    0 1 0 0 1
    0 1 1 1 0
    1 0 0 0 1
    1 0 1 1 0
    1 1 0 1 0
    1 1 1 1 1
  2. 输出表达式
    Sum=Ain⊕Bin⊕Cin{Sum=Ain\oplus Bin \oplus Cin}Sum=Ain⊕Bin⊕Cin
    Cout=(Ain⊕Bin)⋅Cin+AinBin=(Ain&Bin)∣(Bin&Cin)∣(Ain&Cin){Cout=(Ain \oplus Bin)\cdot Cin+AinBin=(Ain\& Bin)|(Bin\& Cin)|(Ain\& Cin)}Cout=(Ain⊕Bin)⋅Cin+AinBin=(Ain&Bin)∣(Bin&Cin)∣(Ain&Cin)
  3. 逻辑图

二、输入原理图实现1位加法器

创建工程过程
启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。

(一)半加器原理图输入

  1. 绘制过程实现
    首先选择File->New,进入后选择Block Diagram/Schematic File

    选择元件

    添加输入输出,完成效果

    保存文件,并编译
    通过tool->Netlist Viewers->RTL Viewer,查看电路图
  2. 仿真实现
    创建一个向量波形文件,选择菜单项 File→New->VWF

    添加信号

    编辑信号

    保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier

    功能仿真结果

    时序仿真结果

    通过仿真结果,可以发现得到的结果与真值表中是相吻合的。

(二)全加器原理图输入

利用半加器元件实现全加器

  1. 将设计项目设置为可调用的元件
    在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用

  2. 绘制过程实现
    首先选择File->New,进入后选择Block Diagram/Schematic File

    选择元件

    添加输入输出,完成效果

    保存文件,并编译
    通过tool->Netlist Viewers->RTL Viewer,查看电路图

  3. 仿真实现
    创建一个向量波形文件,选择菜单项 File→New->VWF

    添加信号

    编辑信号

    保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier

    功能仿真结果

    时序仿真结果

    通过仿真结果,可以发现得到的结果与真值表中是相吻合的。

三、Verilog实现1位加法器

  1. 创建Verilog文件
  2. 代码实现
    module full_adder(//输入信号,ain表示被加数,bin表示加数,cin表示低位向高位的进位input ain,bin,cin,//输出信号,cout表示向高位的进位,sum表示本位的相加和output reg cout,sum);
    reg s1,s2,s3;
    always @(ain or bin or cin) beginsum=(ain^bin)^cin;//本位和输出表达式s1=ain&cin;s2=bin&cin;s3=ain&bin;cout=(s1|s2)|s3;//高位进位输出表达式
    end
    endmodule
    

    保存并编译文件
    通过tool->Netlist Viewers->RTL Viewer,查看电路图

  3. 仿真实现
    创建一个向量波形文件,选择菜单项 File→New->VWF

    添加信号

    编辑信号

    保存文件并启动功能仿真,出现错误,进行仿真配置,选择tool->launch simulation library complier

    功能仿真结果

    时序仿真结果

    通过仿真结果,可以发现得到的结果与真值表中是相吻合的。

四、下载测试

芯片引脚配置表

(一)输入原理图

  1. 将设计项目设置为顶层文件
    选中对应的设计文件

  2. 配置引脚
    使用3个SW作为输入信号,2个LED作为输出信号

    原理图如下

  3. 下载

  4. 结果效果
    通过拨动SW,观察LED的亮灭的效果,发现SW开表示1,关表示0,LED亮表示1,灭表示0。最终,验证的结果为跟其真值表相吻合。

(二)Verilog代码

  1. 配置引脚
    使用3个SW作为输入信号,2个LED作为输出信号
  2. 下载
  3. 结果效果
    通过拨动SW,观察LED的亮灭的效果,发现SW开表示1,关表示0,LED亮表示1,灭表示0。最终,验证的结果为跟其真值表相吻合。

1位全加器的实现完成后,可以根据多个1位全加器的级联实现多位全加器。

五、参考链接

Verilog全加器

FPGA——1位全加器的实现相关推荐

  1. FPGA——1位全加器和4位全加器的实现

    目录 一.认识全加器 1.半加器 2.1位全加器 3.4位全加器 二.使用原理图实现1位加法器 1.原理图实现半加器 2.半加器元件实现全加器 三.使用原理图实现4位加法器 四.Verilog HDL ...

  2. 一位全加器及四位全加器————FPGA

    文章目录 前言 一.一位全加器 1.一位全加器的原理图设计 2.一位全加器的Verilog编程 3.上板效果 二.四位全加器 1.四位全加器的原理图设计 2.四位全加器的Verilog 编程 三.总结 ...

  3. FPGA(2)--例化语句--1位全加器

    文章目录 一.实验目的 二.实验内容 三.实验设计 四.实验结果及仿真 一.实验目的 熟悉元件封装方法,掌握层次化电路设计方法:掌握VHDL例化语句的设计方法. 二.实验内容 1.用VHDL语言设计1 ...

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

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

  5. FPGA学习日志——一位全加器full_adder

    全加器 全加器能进行被加数.加数和来自低位的进位信号相加,并根据求和结果给出该位的进位信号. 在电路上可以由两个半加器和一个或门构成全加器. 值得注意的是:一位全加器实现完成后,可以根据多个1位全加器 ...

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

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

  7. 一位全加器 VHDL设计与实现

    作者:chenjieb520 一.设计目的 熟悉Quartus II的VHDL文本设计流程全过程,学习组合电路的设计,仿真和测试. 二.设计内容 设计一位全加器,给出程序的设计.软件编译.仿真分析.硬 ...

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

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

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

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

  10. fpga数据位宽截取_FPGA信号截位策略研究

    在FPGA中,随着信号处理的层次加深,对信号进行乘.累加.滤波等运算后,可能输入时仅为8位位宽的信号会扩展成几十位位宽,位宽越宽,占用的硬件资源就越多,但位宽超过一定范围后,位宽的增宽并不会对处理精度 ...

最新文章

  1. minicom的按键控制_minicom使用指南
  2. [HDU 1254] 推箱子
  3. 单元格内容分列多行_姓名太多,放在一列打印时浪费纸张,可以分成多行多列打印...
  4. linux+last命令菜鸟,Linux基本命令。。。菜鸟保留
  5. vue+axios+qs序列化 “三步解析”【含demo实例】- 代码篇
  6. 大数据技术Hadoop介绍
  7. Dtcms修改PC站分享到手机端后访问打开手机版的当前页面
  8. 网友对sars病毒事件的对话(转)
  9. 用高德地图罗永浩语音包 随时听老罗讲段子
  10. 自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码
  11. Rock Paper将为圣地亚哥教士棒球队开发AR游戏
  12. 联想g40改Android,求大神帮忙,联想g40如何改win7系统?
  13. Kotlin 之 协程(四)协程并发
  14. M1 Mac 上安装 python mysqlclient
  15. [Swift]LeetCode473. 火柴拼正方形 | Matchsticks to Square
  16. 交通·未来第4期:利用新兴交通数据进行大规模路网交通管理—以无人车和网约车数据为例...
  17. 利用pyecharts显示微信好友性别比例
  18. 一键启动u盘的快捷键查询表
  19. 01.07第64期短中线黑马推荐!
  20. python实现迭代计算_带你读《强化学习:原理与Python实现》之三:有模型数值迭代-阿里云开发者社区...

热门文章

  1. 数学知识——博弈论(巴什博奕、尼姆博奕、威佐夫博奕)思路及例题
  2. GB28181 PTZCmd控制指令笔记
  3. 第二章 IOC的配置使用 --《跟我学Spring》笔记 张开涛
  4. java编译过程_java 程序编译和运行过程详解
  5. modbus调试工具的使用
  6. BN层详解(含有公式推导过程)
  7. VTD信号灯TrafficLight数据解析提取
  8. VTD — 应用于智能驾驶复杂交通场景仿真工具
  9. Scratch3 优化,开启压缩,提高访问速度
  10. linux安装yum报错Unable to locate package yum