我是靠谱客的博主 美满棒球,这篇文章主要介绍verilog使用74x283构造全加/全减器,附源代码,现在分享给大家,希望可以做个参考。

verilog使用74x283构造全加/全减器,附源代码!

一个数电的作业,使用74x283构造全加/全减器。

首先,编写一个74x283芯片模块:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
odule my74x283( input [3:0] A,[3:0] B, input C0, output C4, output reg [3:0] S); reg tempC4;//用来临时保存C4 reg [4:0] Cin;//用来保存进位 integer i; always@(*) begin Cin[0] = C0; for(i=0;i<4;i=i+1) begin Cin[i+1] = (A[i]&B[i])|((A[i]|B[i])&Cin[i]);//来自课本的公式 S[i] = (A[i]^B[i])^Cin[i];来自课本的公式 end tempC4 = Cin[4]; end assign C4 = tempC4; endmodule

编写顶层模块:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
module AddSub( input [3:0] A,[3:0] B, input C0,select, output C4, output wire [3:0] S); reg tempC0; reg [3:0] tempB; always@(*) begin tempC0 = C0^select; tempB[0] = B[0]^select; tempB[1] = B[1]^select; tempB[2] = B[2]^select; tempB[3] = B[3]^select; end my74x283 u_my74x283( .A(A), .B(tempB), .C0(tempC0), .C4(C4), .S(S) ); endmodule

下面是仿真文件的代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module sim_AddSub; reg [3:0] A; reg [3:0] B; reg C0; reg select; wire C4; wire [3:0] S; AddSub ul(A,B,C0,select,C4,S); initial begin A = 4'b0000; B = 4'b0000; C0 = 0; select = 0; #100; A = 4'b1111;B = 4'b1111;select = 0; #100; A = 4'b1111;B = 4'b1111;select = 1; #100; A = 4'b0110;B = 4'b0011;select = 0; #100; A = 4'b0110;B = 4'b0011;select = 1; end endmodule

最后

以上就是美满棒球最近收集整理的关于verilog使用74x283构造全加/全减器,附源代码的全部内容,更多相关verilog使用74x283构造全加/全减器内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部