使用工具: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...