我是靠谱客的博主 坚强书本,这篇文章主要介绍FPGA学习笔记之数字电路篇二,现在分享给大家,希望可以做个参考。

                                                  第三章    组合逻辑电路的应用

3.1 编码器的verilog代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module 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
20
module 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
21
module 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
18
module 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
12
module 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学习笔记之数字电路篇二内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部