一、半加器和全加器
二、行波进位加法器
三、超前进位加法器(Carry-Lookahead Adder,CLA)
/p/6ce9cad8b467
四、流水线加法器
源文件:
`timescale 1ns / 1psmodule adder_pipeline2(input clk,input [7:0]a,input [7:0]b,input cin,output reg[7:0]sum,output reg cout);reg [3:0]tem_a;reg [3:0]tem_b;reg [3:0]sum1;reg cout1;always@(posedge clk)//第一级流水线begin{cout1,sum1}<=a[3:0]+b[3:0]+cin;endalways@(posedge clk)//将输入寄存一拍begintem_a<=a[7:4];tem_b<=b[7:4];endalways@(posedge clk)//第二级流水线{cout,sum}<={{1'b0,tem_a}+{1'b0,tem_b}+cout1,sum1};endmodule
测试文件:
`timescale 1ns / 1psmodule tb_adder2pipeline;reg clk;reg [7:0]a;reg [7:0]b;reg cin;wire [7:0]sum;wire cout;initialclk=0;always #10clk=~clk;always@(posedge clk)begina<={$random}%255;b<=2+{$random}%250;cin<={$random}%2;endadder_pipeline2 u_adder(.clk(clk),.a(a),.b(b),.cin(cin),.cout(cout),.sum(sum));endmodule
仿真波形:
两级流水线,加法器的和延迟两个周期输出结果。
如果觉得《加法器的实现(半加器 全加器 行波进位加法器 超前进位加法器 流水线加法器)》对你有帮助,请点赞、收藏,并留下你的观点哦!