zoukankan      html  css  js  c++  java
  • 加法器

    使用环境:Quartus II 8.0 + DE2(Cyclone II EP2C35F627C6)

    1、半加器:

    代码:

     

    half_adder
    1 module half_adder(ina,inb,sum_out,carry_out,clk,rst);
    2
    3  input ina;
    4  input inb;
    5  input clk;
    6  input rst;
    7
    8  output sum_out;
    9  output carry_out;
    10
    11  reg sum_out;
    12  reg carry_out;
    13
    14  always @(posedge clk or negedge rst)
    15  begin
    16 if(!rst)
    17 begin
    18 sum_out <= 1'b0;
    19   carry_out <= 1'b0;
    20   end
    21 else
    22 begin
    23 sum_out <= ina^inb;
    24 carry_out <= ina&inb;
    25 end
    26 end
    27 endmodule

    综合后的RTL视图:


    仿真波形图:

      

    小结:半加器最后输出经过了一级D触发器。注意:组合电路要考虑门电路的传输延迟时间,以及由此引起的竞争。

    我们把门电路两个输入信号同时向相反的逻辑电平跳变(一个从1变为0,另一个从0变为1)的现象叫做竞争。消除竞争—冒险现象的方法有

    a、接入滤波电容。b、引入选通脉冲。 c、修改逻辑设计

    2、全加器

    全加器和半加器的区别在于全家器多了一个进位输入端。

    组合逻辑代码:

    full_adder
    1 module full_adder(ina,inb,carry_in,sum_out,carry_out);
    2
    3 input ina;
    4 input inb;
    5 input carry_in;
    6
    7 output sum_out;
    8 output carry_out;
    9
    10 //combinational logic
    11
    12 assign sum_out = (ina^inb)^carry_in;
    13 assign carry_out = (ina&inb)|((ina^inb)&carry_in);
    14
    15 endmodule

    综合后的RTL视图:

    时序逻辑实现代码:

    full_adder_seq
    module half_adder(ina,inb,carry_in,sum_out,carry_out,clk,rst);

    input ina;
    input inb;
    input carry_in;
    input clk;
    input rst;

    output sum_out;
    output carry_out;

    reg sum_out;
    reg carry_out;

    //second method: sequential logic
    always @(posedge clk or negedge rst)
    begin
    if(!rst)
    begin
    sum_out
    <= 1'b0;
    carry_out <= 1'b0;
    end
    else
    begin
    sum_out
    <= (ina^inb)^carry_in;
    carry_out
    <= (ina&inb)|((ina^inb)&carry_in);
    end
    end

    endmodule

    综合后的RTL视图:

    




      


      

  • 相关阅读:
    MIPI DSI协议介绍【转】
    [Android5.1][RK3288] LCD Mipi 调试方法及问题汇总【转】
    [kernel 启动流程] (第六章)第一阶段之——打开MMU【转】
    伙伴系统之伙伴系统概述--Linux内存管理(十五)【转】
    linux syscon and regmap study not【转】
    Linux Reserved Memory 预留内存【转】
    IOMMU & iomap &VFIO & uio【转】
    mipi和dsi【转】
    mipi LCD 的CLK时钟频率与显示分辨率及帧率的关系【转】
    LCD MIPI DSI时钟计算【转】
  • 原文地址:https://www.cnblogs.com/dpc525/p/2049217.html
Copyright © 2011-2022 走看看