• 【连载】 FPGA Verilog HDL 系列实例半加器与全加器


    【连载】 FPGA Verilog HDL 系列实例  

    Verilog HDL 之 半加器与全加器

    一、原理

      算术运算式数值系统的基本功能,更是计算机中不可缺少的组成单元。
    1、半加器
      半加法和全加法是算术运算电路中的基本单元,它们是完成1位二进制相加的一种组合逻辑电路。一位加法器的真值表见表1.1;由表中可以看见,这种加法没有考虑低位来的进位,所以称为半加。半加器就是实现表1.1中逻辑关系的电路。被加数A加数B和数S进位C0000011010101101
                  表1.1 一位半加法器真值表


    2、全加器
      全加器能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号。根据它的功能,可以列出它的真值表,如表1.2所示。

                    表1.2 一位全加法真值表

    3、半减法和全减法
      半减法和全减法与加法器一样是算术运算电路中的基本单元。半减器和全减器的设计方法和设计加法器相同,但是实际上,为了简化系统结构,通常不设计减法器,而是将减法运算变为加法运算来出来,使运算器即能实现加法器运算,又能实现减法器运算。一般采用加补码的方法代替减法运算。

    二、实现

    在设计文件中输入Verilog代码

     1 `timescale 1 ns / 1 ps
    2
    3 module sum ( A ,Co ,B ,S ,Ci );
    4
    5 input A ;
    6 wire A ;
    7 input B ;
    8 wire B ;
    9 input Ci ;
    10 wire Ci ;
    11
    12 output Co ;
    13 reg Co ;
    14 output S ;
    15 reg S ;
    16
    17 always @ ( A or B or Ci)
    18 begin
    19 if ( A== 0 && B == 0 && Ci == 0 )
    20 begin
    21 S <= 0;
    22 Co <= 0;
    23 end
    24 else if ( A== 1 && B == 0 && Ci == 0 )
    25 begin
    26 S <= 1;
    27 Co <= 0;
    28 end
    29 else if ( A== 0 && B == 1 && Ci == 0 )
    30 begin
    31 S <= 1;
    32 Co <= 0;
    33 end
    34 else if ( A==1 && B == 1 && Ci == 0 )
    35 begin
    36 S <= 0;
    37 Co <= 1;
    38 end
    39 else if ( A== 0 && B == 0 && Ci == 1 )
    40 begin
    41 S <= 1;
    42 Co <= 0;
    43 end
    44 else if ( A== 1 && B == 0 && Ci == 1 )
    45 begin
    46 S <= 0;
    47 Co <= 1;
    48 end
    49 else if ( A== 0 && B == 1 && Ci == 1 )
    50 begin
    51 S <= 0;
    52 Co <= 1;
    53 end
    54 else
    55 begin
    56 S <= 1;
    57 Co <= 1;
    58 end
    59 end
    60
    61 endmodule
  • 相关阅读:
    aspcms产品详情页调取相关产品
    构造函数中返回一个对象对结果有什么影响
    跨域的几种方法及案例代码
    localStorage兼容方案
    H5 拖放事件详解
    由作用域安全的构造函数想到的
    valueOf和toString的区别
    网页布局--自适应
    【MongoDB系列】简介、安装、基本操作命令
    【JavaWeb】之Servlet
  • 原文地址:https://www.cnblogs.com/kongtiao/p/2151716.html
Copyright © 2020-2023  润新知