3 3 Verilog 4位超前進製加法器

2021-07-11 09:34:23 字數 1215 閱讀 1484

使用工具:xilinx ise 14.7

用邏輯表示式實現4位的超前進製加法器,目的是為了減少輸出延遲,提高運算速度。在4位行波進製加法器中,計算過程中包含輸出訊號s[i]與c[i]作為中間變數,用他們作為下一級的輸入,並將多個1位全加器串聯起來造成了每一級的延遲累加,最終導致輸出延遲過大。為了減小延遲,可以將每一級的運算結果先儲存起來,再展開邏輯表示式進行復合運算,從而減少資料流從輸入端到輸入端間經過的邏輯門個數。將序列運算改為並行運算,**如下:

module design_code(

input [3:0] num_1,

input [3:0] num_2,

output reg [3:0] s,

output reg cf

);reg [3:0] p;

reg [3:0] g;

integer i;

always @ (*)

begin

for(i=0; i<4; i=i+1)

begin

g[i] = num_1[i]&num_2[i];

p[i] = num_1[i]^num_2[i];

ends[0] = p[0];

s[1] = p[1]^g[0];

s[2] = p[2]^(g[1]|p[1]&g[0]);

s[3] = p[3]^(g[2]|(p[2]&g[1])|(p[2]&p[1]&g[0]));

cf = g[3]|(p[3]&g[2])|(p[3]&p[2]&g[1])|(p[3]&p[2]&p[1]&g[0]);

endendmodule

測試檔案:

initial begin

// initialize inputs

num_1 = 0; num_2 = 1; #100;

num_1 = 2; num_2 = 3; #100;

num_1 = 4; num_2 = 5; #100;

num_1 = 8; num_2 = 9; #100;

num_1 = 14; num_2 = 15; #100;

// add stimulus here

end

**結果:

超前進製加法器

在實時訊號處理中,常常要用到多位數字量的加法運算,但序列加法器速度較慢,超前進製加法器則能滿足要求,且結構並不複雜。現在普遍使用的並行加法器是超前進製加法器,只是在幾個全加器的基礎上增加了乙個超前進製形成邏輯,以減少由於逐步進製訊號的傳遞所造成的時延。具體的演算法為 s i x i y i c i ...

超前進製加法器實驗報告 超前進製加法器

首先畫出2位全加器的真值表與卡諾圖 根據真值表可知二進位制加法與十進位制加法一樣,進製值是逢二進一.而和值則是上級進製值跟被加數跟加數總和模二的餘數.根據卡諾圖化簡得到s與ci 1的全加器電路為 多位加法器可以用行波進製加法器實現,也就是第一位的ci為0,第二位開始,ci就連線著上一級的ci 1,這...

46 超前進製加法器

module add ahead sum,cout,a,b,cin output 7 0 sum output cout input 7 0 a,b input cin wire 7 0 g,p wire 7 0 c,sum assign g 0 a 0 b 0 產生第 0位本位值和進製值 assi...