0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何去实现一个半加器电路的设计呢?

冬至子 来源:小小研究生 作者:xxyjs2020 2023-05-22 15:22 次阅读

数电基础

加法器用于两个数或者多个数的加和,加法器又分为半加器(half adder)和全加器(full adder)。半加器电路是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。是实现两个一位二进制数的加法运算电路。而全加器除了加数和被加数之和外还要加上上一级传进来的进位信号。如果没有理解,看真值表和逻辑式就理解了。

图片

全加器可看作两个半加器和一个或门组成。

设计规划

本例中我们实现最简单的半加器。这个示例中,采用两个按键作为信号输入A和B,两个LED灯作为输出C和S。按下按键为低电平,LED灯为低电平时点亮。需要实现的功能是,按下AB时CS点亮,按下其中一个时只有C点亮,都不按下时只有S点亮。

根据真值表很容易画出波形。

图片

编写代码

module half_adder
(
input wire in1 , 
input wire in2 , 
output wire sum , 
output wire cout
);


 assign {cout, sum} = in1 + in2;
 endmodule

添加.v文件后编译通过。点击RTL viewer可以查看设计的硬件电路结构,和我们设计所表达的意思相同。

图片

编写testbench

`timescale 1ns/1ns
module tb_half_adder();


reg in1;
reg in2;
wire sum;
wire cout;


 initial begin
 in1 <= 1'b0;
 in2 <= 1'b0;
 end


 always #10 in1 <= {$random} % 2;
 always #10 in2 <= {$random} % 2;




 //--------------------half_adder_inst-----------------
 half_adder half_adder_inst
 (
 .in1 (in1 ), //input in1
 .in2 (in2 ), //input in2


 .sum (sum ), //output sum
 .cout (cout ) //output cout
 );


 endmodule

又是超级熟悉的testbench。

对比波形

图片

波形与预想的一致。

分配管脚

图片

图片

按照设计规划:采用S0和S1作为信号输入A和B,LED0和LED1作为输出C和S。按下AB(0+0)时CS(=00)都亮,按下其中一个(0+1)时只有C(01)亮,都不按下(1+1)时只有S(=10)亮。

图片

全编译后上板验证

都不按时LED1亮

任意按一个时,LED0亮。

两个都按下时,LED0和LED1都亮。

在完成这几个实例的过程中,遇到了很多错误,但是只要会上网,把报错信息进行检索,都能圆满解决。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led灯
    +关注

    关注

    22

    文章

    1592

    浏览量

    108169
  • 加法器
    +关注

    关注

    6

    文章

    183

    浏览量

    30162
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59872
  • 全加器
    +关注

    关注

    10

    文章

    62

    浏览量

    28531
收藏 人收藏

    评论

    相关推荐

    怎样通过门电路实现种运算设计

    运算的工作原理是什么?怎样通过门电路实现种运算
    发表于 10-20 07:14

    如何实现种交通灯电路的设计

    交通灯电路实现的功能有哪些?如何实现种交通灯电路的设计
    发表于 11-02 09:25

    如何实现基于STM32的心率传感故障检测设计

    如何实现基于STM32的心率传感故障检测设计?其代码是如何
    发表于 11-25 07:13

    如何实现TF广播

    TF广播是怎样定义的?如何实现TF广播
    发表于 02-14 07:56

    和全加器是算术运算电路中的基本单元,它们
    发表于 04-07 10:34 1.6w次阅读
    <b class='flag-5'>半</b><b class='flag-5'>加</b><b class='flag-5'>器</b>

    最小逻辑电路 单电子成功研制

    项新研究中,韩国、日本和英国科学家组 成的科研小组仅用5晶体管就制造出
    的头像 发表于 11-25 23:50 3468次阅读

    全加器是什么?全加器和的区别?

    是能够计算低位进位的二进制加法电路。与相比,全加器不只考虑本位计算结果是否有进位,也考
    发表于 07-25 11:15 7.4w次阅读
    全加器是什么?全加器和<b class='flag-5'>半</b><b class='flag-5'>加</b><b class='flag-5'>器</b>的区别?

    和全加器的原理及区别(结构和功能)

    +加法和全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的种组合逻辑
    的头像 发表于 07-25 11:37 33.8w次阅读
    <b class='flag-5'>半</b><b class='flag-5'>加</b><b class='flag-5'>器</b>和全加器的原理及区别(结构和功能)

    电路原理图资料免费下载

    电路是指对两输入数据位相加,输出结果位和
    发表于 07-08 08:00 18次下载
    <b class='flag-5'>半</b><b class='flag-5'>加</b><b class='flag-5'>器</b><b class='flag-5'>电路</b>原理图资料免费下载

    电路原理图

    电路原理图免费下载。
    发表于 06-11 10:51 24次下载

    真值表

    实现位二进制数加法运算的电子器件,具有被加数A和加数B两
    的头像 发表于 07-09 09:46 5.3w次阅读
    <b class='flag-5'>半</b><b class='flag-5'>加</b><b class='flag-5'>器</b> <b class='flag-5'>半</b><b class='flag-5'>加</b><b class='flag-5'>器</b>真值表

    vhdl描述

    vhdl描述
    发表于 02-24 11:08 0次下载

    基于FPGA的设计

    加法器用于两个数或者多个数的和,加法器又分为(half adder)和全加器(full adder)。
    的头像 发表于 05-12 14:50 1095次阅读
    基于FPGA的<b class='flag-5'>半</b><b class='flag-5'>加</b><b class='flag-5'>器</b>设计

    和全加器的功能特点

    和全加器是数字电路中的基本组件,用于执行二进制数的加法运算。它们在计算机、微处理和其他数字系统中扮演着重要角色。
    的头像 发表于 10-18 11:10 1733次阅读

    和全加器的区别是什么

    (Half Adder)和全加器(Full Adder)是数字电路中的基本组件,用于执行二进制加法运算。它们的主要区别在于功能和输入输出的数量。 1. 功能差异
    的头像 发表于 10-18 11:12 4345次阅读