VHDL编写实现32位超前进位加法器
本帖最后由 fpgaw 于 2010-7-7 05:22 编辑VHDL编写实现32位超前进位加法器 具有8级流水线结构 本帖最后由 fpgaw 于 2010-7-7 05:23 编辑
这是我用verilog写的32位超前进位加法器,是基于树结构的.总共6层,如果想实现流水线,只需在
其中加入D触发器就可以了.
你所说的8级流水未免太多了吧,其实这里的速度也是用面积换来的!
流水太多未必是好事!
module cla32 (a,b,cin,sum,co);
input a,b;
input cin;
output sum;
output co;
reg G1,P1,G2,P2,G3,P3,G4,P4,G5,P5;
reg cout;
wire sum,G0,P0;
assign P0=a^b;
assign G0=a&b;
assign sum=P0^{cout,cin};
assign co=cout;
always @(P0 or G0 or P1 or G1 or P2 or G2 or P3 or G3 or P4 or G4 or P5 or G5 )
begin
P1=P0&P0;
G1=G0|P0&G0;
G1=G0;
P1=P0;
P2=P1&P1;
G2=G1|P1&G1;
G2=G1;
P2=P1;
P3=P2&P2;
G3=G2|P2&G2;
G3=G2;
P3=P2;
P4=P3&P3;
G4=G3|P3&G3;
G4=G3;
P4=P3;
P5=P4&P4;
G5=G4|P4&G4;
G5=G4;
P5=P4;
cout=G5|P5&cin;
end
endmodule 这是我用verilog写的32位超前进位加法器,是基于树结构的.总共6层,如果想实现流水线,只需在
其中加入D触发器就可以了.
你所说的8级流水未免太多了吧,其实这里的速度也是用面积换来的!
流水太多未必是好事!
页:
[1]