zoukankan      html  css  js  c++  java
  • 8位串行进位加法器

        串行进位加法器由一位全加器级联而成,结构简单,但延时很长,延时主要是进位信号级连造成的。

    在最坏情况下,进位必须从最低有效全加器传到最高有效全加器。

       一位全加器的公式为: SUM=X⊕Y⊕CIN         COUT=X·Y+ X·CIN+Y·CIN

       在Verilog里可以调用门电路的原语实现。

       下面为8位串行进位加法器的Verilog代码

    module add_serial(sum,cout,a,b,cin); //8位串行加法器
    input cin;
    input [7:0] a,b;
    output cout;
    output [7:0] sum;
    wire cin1,cin2,cin3,cin4,cin5,cin6,cin7;
    full_add1 f0(a[0],b[0],cin,sum[0],cin1);//调用1位全加器
    full_add1 f1(a[1],b[1],cin1,sum[1],cin2);//端口信号顺序要与full_add1一致
    full_add1 f2(a[2],b[2],cin2,sum[2],cin3);
    full_add1 f3(a[3],b[3],cin3,sum[3],cin4);
    full_add1 f4(a[4],b[4],cin4,sum[4],cin5);
    full_add1 f5(a[5],b[5],cin5,sum[5],cin6);
    full_add1 f6(a[6],b[6],cin6,sum[6],cin7);
    full_add1 f7(a[7],b[7],cin7,sum[7],cout);

    endmodule

    module full_add1(a,b,cin,sum,cout);
    input a,b,cin;
    output sum,cout;
    wire s1,c1,c2,c3;
    xor (s1,a,b),(sum,s1,cin);//调用异或门
    and (c1,a,b),(c2,a,cin),(c3,b,cin);//调用与门
    or (cout,c1,c2,c3);//调用3输入或门

    endmodule




  • 相关阅读:
    open jdk
    llvm 编译
    llvm Array Bounds Check Elimination
    tmux 共享窗口大小
    llvm pass
    llvm code call graph
    llvm -O 经历过那些pass
    tcmalloc asan
    web ide
    eclipse配置
  • 原文地址:https://www.cnblogs.com/haigege/p/2194769.html
Copyright © 2011-2022 走看看