|
- module cd4008( //CD4008 四位二进制带进位输入输出全加器(加法器) VCC:Pin16 GND:Pin8
- input A1, //Pin7 被加数
- input A2, //Pin5 被加数
- input A3, //Pin3 被加数
- input A4, //Pin1 被加数
- input B1, //Pin6 加数
- input B2, //Pin4 加数
- input B3, //Pin2 加数
- input B4, //Pin15 加数
- input CI, //Pin9 进位输入
- output S1, //Pin10 和
- output S2, //Pin11 和
- output S3, //Pin12 和
- output S4, //Pin13 和
- output CO //Pin14 进位输出
- );
- assign {CO,S4,S3,S2,S1} = {A4,A3,A2,A1} + {B4,B3,B2,B1} + CI;
- endmodule
- module main(
- input clk,
- output reg led
- );
- reg [3:0] A;
- reg [3:0] B;
- reg CI;
- wire [3:0] S;
- wire CO;
- cd4008 U1(
- .A1(A[0]),
- .A2(A[1]),
- .A3(A[2]),
- .A4(A[3]),
- .B1(B[0]),
- .B2(B[1]),
- .B3(B[2]),
- .B4(B[3]),
- .CI(CI),
- .S1(S[0]),
- .S2(S[1]),
- .S3(S[2]),
- .S4(S[3]),
- .CO(CO)
- );
- always @(posedge clk) begin
- A = 4'd15;
- B = 4'd10;
- CI = 0;
- if(S == 4'd9 && CO == 1) begin
- led <= 0;
- end else begin
- led <= 1;
- end
- end
- endmodule
复制代码 |
|