【FPGA初级】4选一数据选择器的verilog实现(含testbench与波形)
RepVGG
标准模板库
Room
分类
接口管理数据选择器
数据选择器,可根据给定的输入地址代tomcat码,从一组输入信号中选出指定的一个,送至输出端。
四选一数据选择器,从四个端口中任意选择一个,送至输出端。设定四个端口为din[0]、din[1]、din[2]、din[3],jdk动态代理原理;表示四个端口需要两个选择信号(22 =4),设为del[0]、del[1],将输出信号设为dout。
verilog实现
代码如下
module MUX(
din,
sel,
dout
);
input[3:0] din;//四个端口,故位宽为4
input[1:0] sel;//两个选择信号,故位宽为2
output dout;
reg dout;
always @(*)begin
if(sel==2'b00)
dout=din[0];
if(sel==2'b01)
移动魔百盒dout=din[1]空域;
if(sel==2'b10)
dout=din[2];
if(sel==2'b11)
dout=din[3];
end
endmodule
teapp inventorstbench
代码如下
`times就业前景cale 1ns/1ns
module MUX_test; //MUX_test为测试文件名字
re计算机网络g [3:0]din; //输入信号对应reg类型
reg [1:0]sel;
wire dout; //输出信号对应wirnginx反向代理e类型
MUX u_MUX( //MUX为被例化的模块名,u_MUX为例化模块名
.din(din), //括号外为被例化的端口名,括号内为例化端口名
.sel(sel),
.dout(dout)
);
//以下四个always颇为巧妙,具体看下方解释
always # 10 din[0]=~din[0];
always # 20 din[1]=~din[1];
always # 40 din[2]=~din[2];
always # 80 din[3]=~din[3];
initial
begin
sel=1'b0;
din=4'b0;
#160 $stop;
end
always #10 sel=sel+1;//din的值10ns变换一次,故而将sel的每一个值延时10ns
endmodule
四个always实现了din四个端口的值从0000变化到了1111,如下表所示
时间变化 | 信号变化 | din |
---|---|---|
0 | 无 | 0000 |
10ns | din[0]取反 | 0001 |
20ns | din[0]取反&#xJson转Model实现分析ff0c;din[1]取反 | 0010 |
30ns | din[0]取反 | 0011 |
40ns | din[0]取反,din[1]取反,din[2]取反 | 0100 |
50ns | din[0]取反 | 0101 |
60ns | din[0]取反,din[1]取反 | 0110 |
70ns | din[0]取反 | 0111 |
80ns | din[0]取反,din[1]取反,din[2]取反,din[3]取反 | 1000 |
90ns | din[0]取反 | 1001 |
100ns | din[0]取反,din[1]取反 | 1010 |
110ns | din[0]取反 | 1011 |
120ns | din[0]取反,din[1]取反,din[2]取反 | 1100 |
130ns | din工单系统[0]取反 | 1101 |
140ns | din[0]取反,din[1]取反 | 1110 |
150ns | din[0]取反 | 1111 |
使得din的值有多种取值并java9无学习分享多意,只想体现del的选择功能,无论din的值如何,由del的值决定输出哪个端口,也可以将din的值固定为一个值,也可以体现选择功能。
del的值与端口号的对应如下:
de升级npml | dout |
---|---|
00 | din[0] |
01 | din[1] |
10 | din[2]ethers |
11 | din[3] |
假定某时din的值为1101,而此时del的值为10博客,协程故而din[2]为输出端口,输出的值与din的值无关,但波形图一致(输出与被选端口的波形)。
波形图如下:
对准一个时间段,可观察到被选定的端口号的波形,与输出波形一致。
以上均为学习笔记,若有错误,欢迎大家指出,一定积极讨论并予以改正
声明:本站博客内容版权均属于原作者所有,这里所提供资源均只能用于参考学习用,书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。