国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Verilog實(shí)現(xiàn)超前進(jìn)位加法器

這篇具有很好參考價(jià)值的文章主要介紹了Verilog實(shí)現(xiàn)超前進(jìn)位加法器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

在CPU等對(duì)性能要求較高的電路中,一般都會(huì)采用超前進(jìn)位加法器,因?yàn)槌斑M(jìn)位加法器的延時(shí)相對(duì)來(lái)說(shuō)比較小。下面講述超前進(jìn)位加法器的原理:
我們知道,一個(gè)三輸入,二輸出的全加器,其邏輯關(guān)系為

S = A ⊕ B ⊕ C i n S=A\oplus B\oplus C_{in} S=ABCin?

C o u t = ( A & B ) ∣ ( C i n & ( A ⊕ B ) ) C_{out}=(A\& B) | (C_{in}\&(A\oplus B)) Cout?=(A&B)(Cin?&(AB))
對(duì)于普通的級(jí)聯(lián)的加法器,上一位的進(jìn)位輸出需要作為下一位的進(jìn)位輸入,因此,隨著加法器位寬的增大,加法器的延時(shí)也會(huì)線性增大,如下圖所示。究其原因,就是下一個(gè)比特位對(duì)上一個(gè)比特位的依賴造成的,超前進(jìn)位加法器就是解決了這個(gè)問(wèn)題,從而實(shí)現(xiàn)低延時(shí)的效果。
Verilog實(shí)現(xiàn)超前進(jìn)位加法器

首先,我們有
C i + 1 = A i B i + C i ( A i + B i ) C_{i+1}=A_{i}B_i+C_i(A_i+B_i) Ci+1?=Ai?Bi?+Ci?(Ai?+Bi?)
該式子描述了第i+1位的進(jìn)位輸出和第i位的進(jìn)位輸出之間的關(guān)系,如果我們用
C i = A i ? 1 B i ? 1 + C i ? 1 ( A i ? 1 + B i ? 1 ) C_i=A_{i-1}B_{i-1}+C_{i-1}(A_{i-1}+B_{i-1}) Ci?=Ai?1?Bi?1?+Ci?1?(Ai?1?+Bi?1?)
代替上式中的 C i C_i Ci?,則可以得到 C i + 1 C_{i+1} Ci+1? C i ? 1 C_{i-1} Ci?1?之間的關(guān)系,進(jìn)一步將 C i ? 1 C_{i-1} Ci?1? C i ? 2 C_{i-2} Ci?2?表示,一直迭代到 C 0 C_0 C0?,即 C i n C_{in} Cin?,我們發(fā)現(xiàn),此時(shí)進(jìn)位輸出不再依賴于前面任何一級(jí)加法器的結(jié)果,因此也就達(dá)到了我們要的效果。下圖是一個(gè)4位超前進(jìn)位加法器的示意圖,由圖可知,超前進(jìn)位加法器的延遲是固定的,與加法器的位寬無(wú)關(guān),因此超前進(jìn)位加法器具有低延遲的優(yōu)點(diǎn),然后,從圖中也不難發(fā)現(xiàn),隨著位寬的增大,與門(mén)的扇入也隨之增大,因此電路也會(huì)變得更加復(fù)雜。在實(shí)際電路設(shè)計(jì)中,通過(guò)將兩者(串行進(jìn)位加法器、超前進(jìn)位加法器)相結(jié)合,從而在延遲和電路復(fù)雜度間進(jìn)行權(quán)衡。
Verilog實(shí)現(xiàn)超前進(jìn)位加法器
下面是1個(gè)簡(jiǎn)單的4位超前進(jìn)位加法器的Verilog代碼實(shí)現(xiàn):

module CLA(
input logic cin,
input logic [3:0] a,
input logic [3:0] b,
output logic cout,
output logic [3:0] sum
);
logic [4:0] c;
logic [3:0] g;
logic [3:0] p;
//
assign g=a&b;
assign p=a^b;
assign c[0]=cin;
assign cout=c[4];
//Cout=Gi+PiCin
assign c[1]=g[0]|(p[0]&c[0]);
assign c[2]=g[1]|(p[1]&(g[0]|(p[0]&c[0])));
assign c[3]=g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))));
assign c[4]=g[3]|(p[3]&(g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))))));
genvar i;
generate
    for(i=0;i<4;i++)begin:sum_block
        assign sum[i]=p[i]^c[i];
    end
endgenerate
endmodule

相應(yīng)的測(cè)試平臺(tái)為:

module test;
logic [3:0] a;
logic [3:0] b;
logic cin;
logic cout_ref;
logic cout;
logic [3:0] sum_ref;
logic [3:0] sum;
logic error;
initial
begin
   repeat(100)
   begin
      #10
      cin=$urandom%2;
      a=$urandom%16;
      b=$urandom%16;
   end
end
assign {cout_ref,sum_ref}=cin+a+b;
assign error=(sum!=sum_ref)?1'b1:1'b0;
initial begin
    #1000
    $finish;
end

initial begin
   $fsdbDumpfile("./out.fsdb");
   $fsdbDumpvars(0);
end

CLA u(.*);

endmodule

VCS仿真波形如下圖所示,可以看到,代碼是無(wú)誤的。
Verilog實(shí)現(xiàn)超前進(jìn)位加法器
【注】本博客搬運(yùn)自本人知乎文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-402115.html

到了這里,關(guān)于Verilog實(shí)現(xiàn)超前進(jìn)位加法器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【基于FPGA的芯片設(shè)計(jì)】4位超前進(jìn)位加法器

    【基于FPGA的芯片設(shè)計(jì)】4位超前進(jìn)位加法器

    目錄 實(shí)驗(yàn)原理 源代碼 仿真代碼 管腳配置 實(shí)驗(yàn)板卡:xc7a100tlc sg324-2L,共20個(gè)開(kāi)關(guān) ? ? ? ? 頂層模塊 超前進(jìn)位模塊 全加器模塊 注:vivado版本為2018版,板卡為xc7a100tlcsg324-2L

    2024年02月06日
    瀏覽(23)
  • Verilog數(shù)字系統(tǒng)設(shè)計(jì)——帶進(jìn)位的8位加法器

    Verilog數(shù)字系統(tǒng)設(shè)計(jì)——帶進(jìn)位的8位加法器

    試分別使用門(mén)級(jí)原語(yǔ)和always 語(yǔ)句設(shè)計(jì)帶進(jìn)位的8位加法器,要求編制測(cè)試模塊對(duì)實(shí)現(xiàn)的邏輯功能進(jìn)行完整的測(cè)試; 使用門(mén)級(jí)原語(yǔ)設(shè)計(jì)時(shí)注意先在草稿上做出該加法器的門(mén)級(jí)設(shè)計(jì); 如有余力可以進(jìn)一步使用門(mén)級(jí)原語(yǔ)設(shè)計(jì)出帶超前進(jìn)位鏈的8位加法器(期末有加分); 實(shí)驗(yàn)提交

    2024年02月15日
    瀏覽(21)
  • 使用FPGA實(shí)現(xiàn)逐級(jí)進(jìn)位加法器

    使用FPGA實(shí)現(xiàn)逐級(jí)進(jìn)位加法器

    逐級(jí)進(jìn)位加法器就是將上一位的輸出作為下一位的進(jìn)位輸入,依次這樣相加。下面以一個(gè)8位逐級(jí)進(jìn)位加法器給大家展示。 我增加了電路結(jié)構(gòu),應(yīng)該很容易理解吧。 下面我也列舉了一位加法器,可以看下。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity adder1 is

    2024年04月23日
    瀏覽(30)
  • 數(shù)字IC經(jīng)典電路(1)——經(jīng)典加法器的實(shí)現(xiàn)(加法器簡(jiǎn)介及Verilog實(shí)現(xiàn))

    數(shù)字IC經(jīng)典電路(1)——經(jīng)典加法器的實(shí)現(xiàn)(加法器簡(jiǎn)介及Verilog實(shí)現(xiàn))

    加法器是數(shù)字系統(tǒng)最基礎(chǔ)的計(jì)算單元,用來(lái)產(chǎn)生兩個(gè)數(shù)的和,加法器是以二進(jìn)制作運(yùn)算。負(fù)數(shù)可用二的補(bǔ)數(shù)來(lái)表示,減法器也是加法器,乘法器可以由加法器和移位器實(shí)現(xiàn)。加法器和乘法器由于會(huì)頻繁使用,因此加法器的速度也影響著整個(gè)系統(tǒng)的計(jì)算速度。對(duì)加法器的設(shè)計(jì)也

    2024年02月14日
    瀏覽(21)
  • 各種加法器的比對(duì)分析與Verilog實(shí)現(xiàn)(1)

    各種加法器的比對(duì)分析與Verilog實(shí)現(xiàn)(1)

    ????????接下來(lái)幾篇博客,我將介紹常見(jiàn)的幾種加法器設(shè)計(jì),包括超前進(jìn)位、Kogge-Stone、brent-kung、carry-skip、Conditional-Sum等加法器的原理及Verilog實(shí)現(xiàn)。 ???????本文將介紹行波進(jìn)位加法器、超前進(jìn)位加法器的原理及Verilog實(shí)現(xiàn)。 1.1 原理 ???????從下方原理圖即可看出,

    2024年02月08日
    瀏覽(16)
  • verilog數(shù)組的定義、轉(zhuǎn)換和加法器的實(shí)現(xiàn)

    verilog數(shù)組的定義、轉(zhuǎn)換和加法器的實(shí)現(xiàn)

    看了別人的博客有的人也稱reg [31:0] add0[0:12]這樣的數(shù)組為二維數(shù)組,其實(shí)中二維數(shù)組不是真正意義上的數(shù)組,而是由多個(gè)寄存器組成的ROM或者RAM。我覺(jué)得這樣理解好記一點(diǎn):這個(gè)是一維數(shù)組,一共有0到12共13組數(shù)據(jù),每組數(shù)據(jù)的寬度是0到31一共32個(gè)位寬。 優(yōu)勢(shì):簡(jiǎn)單易于編程

    2024年02月11日
    瀏覽(20)
  • 各種加法器的比對(duì)分析與Verilog實(shí)現(xiàn)(2)

    各種加法器的比對(duì)分析與Verilog實(shí)現(xiàn)(2)

    ? ? ? 本文將介紹Kogge-Stone加法器和brent-kung加法器的原理,在下一篇博客中我將用Verilog進(jìn)行實(shí)現(xiàn)。 目錄 1. 并行前綴加法器(Parallel-Prefix Adder, PPA)? 2. Kogge-Stone加法器原理 3. brent-kung加法器原理 ???????為了減少AND門(mén)的深度,PPA對(duì)CLA進(jìn)行了進(jìn)一步優(yōu)化。不過(guò)PPA和CLA進(jìn)行的計(jì)算

    2024年02月07日
    瀏覽(25)
  • FPGA學(xué)習(xí)筆記(1):使用Verilog實(shí)現(xiàn)常見(jiàn)的加法器

    FPGA學(xué)習(xí)筆記(1):使用Verilog實(shí)現(xiàn)常見(jiàn)的加法器

    本文使用VerilogHDL實(shí)現(xiàn)一些簡(jiǎn)單的加法器,本人水平有限,希望大佬能夠多指證 Quartus Prime(18.0) Modelsim 半加器可以用于計(jì)算兩個(gè)單比特二進(jìn)制數(shù)的和,C表征進(jìn)位輸出,S表述計(jì)算的結(jié)果。 半加器的真值表 化簡(jiǎn)以后的邏輯表達(dá)式可以表達(dá)為: s = a’b+ab’ c = ab Verilog 代碼塊 全加

    2024年02月09日
    瀏覽(14)
  • Verilog 加法器/減法器

    Verilog 加法器/減法器

    目錄 1位加法器 8位加法器 8位補(bǔ)碼加減法器? 32位補(bǔ)碼加減法器? ? ? ?

    2024年02月11日
    瀏覽(15)
  • 【verilog】6位二進(jìn)制數(shù)加法器

    【verilog】6位二進(jìn)制數(shù)加法器

    1:掌握無(wú)符號(hào)二進(jìn)制數(shù)加法器的設(shè)計(jì)方法。 2:掌握使用Modelsim對(duì)verilog程序進(jìn)行仿真和驗(yàn)證的方法。 二進(jìn)制加法器由全加器構(gòu)成,全加器功能和電路圖如下圖所示。 全加器對(duì)兩個(gè)1位二進(jìn)制數(shù)和1位來(lái)自低位的進(jìn)位做加法運(yùn)算,產(chǎn)生1位和和1位向更高位的進(jìn)位。圖中(a)是全加

    2024年02月06日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包