我是靠谱客的博主 危机蜡烛,这篇文章主要介绍Verilog4选1数据选择器与2选1数据选择器仿真波形对比,现在分享给大家,希望可以做个参考。

实验要求:
做一个4选1的mux,并且进行波形仿真 和2选1的mux对比,观察资源消耗的变化
一、4选1数据选择器
4选1数据选择器代码用case语句实现:

复制代码
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
26
27
module mux4_to_1( d0, d1, d2, d3, a0, a1, out ); parameter WL = 16; input [WL-1:0] d0,d1,d2,d3; input a0,a1; output [WL-1:0] out; reg out; always @(d0 or d1 or d2 or d3 or a0 or a1) begin case({a0,a1}) 2'b00: out = d0; 2'b01: out = d1; 2'b10: out = d2; 2'b11: out = d3; default: out = 1'bx; endcase end endmodule
复制代码
1
2

在case语句中,根据a0和a1的不同值来确定输出信号
当a1a0均为0时,输出out为d0
以此类推
4选1数据选择器功能仿真波形图
在这里插入图片描述
4选1资源消耗图
在这里插入图片描述

二、2选1数据选择器

复制代码
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
26
// module mux2_to_1, 选择器的代码, module mux2_to_1( IN0 , // input 1 IN1 , // input 2 SEL , // select OUT ); // out data parameter WL = 16; // 输入输出数据信号位宽 input [WL-1:0] IN0, IN1;// 选择器的两个输入数据信号 input SEL; // 通道选通的控制信号 output[WL-1:0] OUT; // 选择器的输出数据信号 reg [WL-1:0] OUT; // 生成组合逻辑的代码 always @ (IN0 or IN1 or SEL) begin if(SEL) // SEL为1 选择输入1 OUT = IN1; else // SEL为0 选择输入0 OUT = IN0; end endmodule // endmodule mux2_to_1 2选1数据选择器功能仿真波形图![在这里插入图片描述](https://img-blog.csdnimg.cn/20190926174215881.png) 2选1数据选择器资源消耗变化如下:![在这里插入图片描述](https://img-blog.csdnimg.cn/20190926202343520.png?x-oss- 在做VWF波形功能仿真的时候由于不懂软件图标的含义耗费了好久的工夫,然后还把功能仿真和时序仿真搞混了。。。

最后

以上就是危机蜡烛最近收集整理的关于Verilog4选1数据选择器与2选1数据选择器仿真波形对比的全部内容,更多相关Verilog4选1数据选择器与2选1数据选择器仿真波形对比内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部