翻一下数电的书,学习下全加器和半加器,之前看的还是没看进去。
1位半加器
只考虑两个加数本身,而不考虑低位过来的进位,就是半加。
加数只有1位的称为一位半加器
就是直接一个异或了
module adder (clk,rst,a,b,s,c);
input clk;
input rst;
input a;
input b;
output s;
output c;
assign s=a^b;
assign c=a&b;
endmodule
去掉clk和rst即可
`timescale 1ns/1ps
module addertest;
reg clk,rst;
reg a,b;
wire s,c;
adder t1(.clk(clk), .rst(rst), .a(a), .b(b), .s(s), .c(c));
always #5 clk=~clk;
always #9.99 a=$random;
always #9.99 b=$random;
initial
begin
clk=0;rst=1;
#5 rst=0;
#10 rst=1;
#150 $stop;
end
endmodule