第三章 组合逻辑电路的应用
3.1 编码器的verilog代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19module Digital_Encoder ( I,A ); input [7:0] I; output [2:0] A; reg [2:0] A; always @(*) begin case(I) 8'b0000_0001:A=3'b000; 8'b0000_0010:A=3'b010; * * * 8'b1000_0000:A=3'b111; default:A=3'b000; end endmodule
优先编码器的verilog代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20module Digital_Encoder ( I,A ); input [7:0] I; output [2:0] A; reg [2:0] A; always @(*) begin if(I[7]==1'b0) A=3'b000; * * * else if(I[0]==1'b0) A=3'b111; else A=3'b000; end endmodule
3.2 译码器的verilog代码
译码器和编码器大同小异。
3.3 数据选择器的verilog代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21module Selector ( A,D0,D1,D2,D3, D4,D5,D6,D7,Y ); input D0,D1,D2,D3,D4,D5,D6,D7; input [2:0] A; output [7:0] Y; reg [7:0] Y; always @(*) begin case(A) 3'b000:Y=D0; * * * 3'b111:Y=D7; default:Y=1'b0; endcase end endmodule
3.4 数值比较器的verilog代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18module Digital_Comparator ( A,B,F ); input [3:0] A; input [3:0] B; output [2:0] F; reg [2:0] F; always @(*) begin if(A>B) F=3'b001; else if(A==B) F=3'b010; else F=3'b100; end endmodule
3.5加法器的verilog代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12module Digital_Adder ( A,B,S ); input [3:0] A; input [3:0] B; output [3:0] S; always @(*) begin S=A+B; end endmodule
最后
以上就是坚强书本最近收集整理的关于FPGA学习笔记之数字电路篇二的全部内容,更多相关FPGA学习笔记之数字电路篇二内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复