实验3 多路选择器的设计
一、 实验目的
1.熟练掌握多路选择器的设计方法 2.熟悉门级描述的编程方法; 二、 实验内容
1.编写程序实现2选1的多路选择器 2.编写程序实现8选1的数据选择器 三、 实验要求
1.根据参考内容,用Verilog HDL语言设计多路选择器。
2.用Quartus II或 Modelsim 对其进行功能或时序进行波形仿真验证; 3.下载到FPGA开发板验证; 四、 实验环境
Quartus Ⅱ 五、 实验原理
数据选择是指经过选择,把多个通道的数据传送到唯一的公共数据通道上去。实现数据选择功能的逻辑电路称为数据选择器,它的作用相当于多个输入的单刀多掷开关。二选一数据选择器的原理框图如图1,真值表见图2。
输入S01图1 2选1数据选择器原理图
输出YAB图2 选1数据选择器真值表
s[2:0] a b c out d e f g h 输入 S 000 001 010 011 100 101 110 111 输出 Y A B C D E F G H 图3 8选1数据选择器原理图 图4 8选1数据选择器真值表
六、 实验步骤
(1)打开Quartus II 新建工程,并进行相关配置; (2)添加Verilog HDL 文件,编辑代码; (3)编译、代码综合与波形仿真; (4)下载程序至FPGA开发板。
七、 实验程序(或者电路图)
//2选1 module mux2_1(a,b,s,out); input[3:0] a,b; input s; output[3:0] out; reg[3:0] out; always@(a or b or s) begin case({s}) 1'b0 : out=a; 1'b1 : out=b; endcase end endmodule //8选1 module mux8_1(a,b,c,d,e,f,g,h,s,out); input[3:0] a,b,c,d,e,f,g,h; input[2:0] s; output[3:0]out; reg[3:0]out; always@(a or b or c or d or e or f or g or h or s) begin case({s}) 3'd0 : out=a; 3'd1 : out=b; 3'd2 : out=c; 3'd3 : out=d; 3'd4 : out=e; 3'd5 : out=f; 3'd6 : out=g; 3'd7 : out=h; endcase end endmodule
八、 实验结果
2选1数据选择器RTL
8选1数据选择器RTL
2选1数据选择器波形图仿真
8选1数据选择器波形图仿真
九 、实验结果讨论
(结合实验过程、实验结果或老师的提出问题自行讨论)