4位2选1多路选择器的设计与实现
姓名:杨培君
学号:11331356
邮箱:ypeij0805@gmail.com 一、实验目的
设计一个4位2选1的多路选择器
使用ISE软件设计并仿真
学会程序下载
二、实验原理
1. ISE 软件是一个支持数字系统设计的开发平台
2.用ISE 软件进行设计开发时基于相应器件型号的。
注意:软件设计时选择的器件型号是与实际下载板上的器件
型号相同。
3.下图为4位2选1多路选择器原理图,用V erilog语句来描
述
三、实验内容
(1)按照实验要求新建工程
(2)新建verilog source、test source
(3)编写verilog source
(4)编写test source
(5)编写引脚文件
(6)将bit文件下载到开发板上面调试运行四、实验结果
(1)综合的RTL电路图
(2)综合的TECH电路图
(3)仿真波形图
(4)开发板显示效果图s=0 y=a=0001
s=0 y=a=0011(2)
s=0 y=a=0011
s=0 y=a=0111(2)
s=0 y=a=0111
s=0 y=a=1010
s=1 y=b=0110
s=1 y=b=1001
s=1 y=b=1010
s=1 y=b=1100
s=1 y=b=1111
五、实验代码
多路选择器实现代码choose_one_from_two.v:
仿真测试文件test.v:
引脚文件UCF.ucf:
六、实验感想
这次试验遇到的问题有两个:
1)刚开始想利用if else 来输出y,
if(s==0){
assign y[3] = a[3];assign y[2] = a[2];
assign y[1] = a[1];
assign y[0] = a[0];
}
else{
assign y[3] = b[3];
assign y[2] = b[2];
assign y[1] = b[1];
assign y[0] = b[0];
}
结果程序出错了,最后还是用老办法来完成了,这个也
比较简单:
assign y[3] = (~s)&a[3] | s&b[3];
assign y[2] = (~s)&a[2] | s&b[2];
assign y[1] = (~s)&a[1] | s&b[1];
assign y[0] = (~s)&a[0] | s&b[0];
2)遇到的第二个问题是这个是两个4位的二进制数选择器,需要输入两个二进制数,还需要一个输入s来决定输出
选择哪个输入,这样就需要9个开关,最后我将s设置
为D9按钮,需要手动按下,当按下时s=1,松开后s=0.这次实验将数电中学到的选择器自己实现出来了,总体来说算比较简单的一次实验,再就是通过手动来实现了s = 1和s = 0的控制。下载本文