老怪甲 发表于 2010-4-13 11:28:53

一个四级流水的八位全加器verilog代码

module pipeline(cout,sum,ina,inb,cin,clk);
output sum;
output cout;
input ina,inb;
input cin,clk;
reg tempa,tempb,sum;
reg tempci,fir stco,secondco,thirdco,cout;
reg firsts,thirda,thirdb;
reg seconda,secondb,seconds;
reg firsta,firstb,thirds;
always @(posedge clk)
begin
tempa=ina; tempb=inb; tempci=cin; // 输入数据缓存
end
always @(posedge clk)
begin
{firstco,firsts}=tempa+tempb+tempci;
//第一级加(低2 位)
firsta=tempa; //未参加计算的数据缓存
firstb=tempb;
end
always @(posedge clk)
begin
{secondco,seconds}={firsta+firstb+firstco,firsts};
//第二级加(第2、3 位相加)
seconda=firsta; //数据缓存
secondb=firstb;
end
always @(posedge clk)
begin
{thirdco,thirds}={seconda+secondb+secondco,seconds};
//第三 级加(第4、5 位相加)
thirda=seconda; //数据缓存
thirdb=secondb;
end
always @(posedge clk)
begin
{cout,sum}={thirda+thirdb+thirdco,thirds};
//第四级加(高两位相加)
end
endmodule

老怪甲 发表于 2010-4-13 11:29:11

阁下的这些代码没有实际意义。 1、时序逻辑块中不能使用阻塞赋值; 2、电路中没有复位信号,不健壮; 3、加入流水是为了提高电路性能。但是区区一个8位全加器还不至于。因此设计这段电路的人不是为了炫耀,就是因为其确实有特殊的相位要求。

老怪甲 发表于 2010-4-13 11:29:16

阁下的这些代码没有实际意义。 1、时序逻辑块中不能使用阻塞赋值; 2、电路中没有复位信号,不健壮; 3、加入流水是为了提高电路性能。但是区区一个8位全加器还不至于。因此设计这段电路的人不是为了炫耀,就是因为其确实有特殊的相位要求。

Sunlife 发表于 2015-4-8 14:29:41


阁下的这些代码没有实际意义。 1、时序逻辑块中不能使用阻塞赋值; 2、电路中没有复位信号,不健壮; 3、加入流水是为了提高电路性能。但是区区一个8位全加器还不至于。因此设计这段电路的人不是为了炫耀,就是因为其确实有特殊的相位要求
页: [1]
查看完整版本: 一个四级流水的八位全加器verilog代码