1、精品文档实验七 4选1多路选择器设计实验一、 实验目的进一步熟悉QuartusII的VHDL文本设计流程、组合电路的设计仿真和测试。二、 实验原理 四选一多路选择器设计时,试分别用IF_THEN语句、WHEN_ELSE和CASE语句的表达方式写出此电路的VHDL程序,要求选择控制信号s1和s2的数据类型为STD_LOGIC;当s1=0,s0=0;s1=0,s0=1;s1=1,s0=0和s1=1,s0=1时,分别执行y=a、y=b、y=c、y=d。三、程序设计 其示意框图如下:其中输入数据端口为a、b、c、d,s1、s2为控制信号,Y为输出。 令s0s1=“00”时,输出y=a; 令s0s1=“
2、01”时,输出y=b; 令s0s1=“10”时,输出y=c;令s0s1=“11 时,输出y=d; 4 选 1 数 据 选 择 器 a 输入 b y 数据 c d s0 s1真值表如下:输入输出x s0 s1 y a 0 0 ab 0 1 bc 1 0 c d 1 1 d四、 VHDL仿真实验(1)用IF_THEN语句设计4选1多路选择器 1.建立文件夹D:alteralEDAzuoyeif_mux41,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。图1 利用New Project Wizard创建工程mux41 2.打开文本编辑。NEWVHDL File相应的输入
3、源程序代码存盘为mux41.vhd.。图2 选择编辑文件类型源程序代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT(a,b,c,d:IN STD_LOGIC; s0: IN STD_LOGIC; s1: IN STD_LOGIC; y: OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE if_mux41 OF mux41 IS SIGNAL s0s1:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN s0s1=s0&s1; PROCESS(s0s1,a
4、,b,c,d) BEGIN IF s0s1=00 THEN y=a; ELSIF s0s1=01 THEN y=b; ELSIF s0s1=10 THEN y=c; ELSE yNetlist Viewers-RTL Viewers命令,即HDL的RTL级图形观测器,选择好后即自动弹出计数器设计的RTL电路,如下图:图7 RTL电路图(2)用WHEN_ELSE语句设计4选1多路选择器1.建立文件夹D:alteralEDAzuoyewhen_mux41,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。图1 利用New Project Wizard创建工程mux41 2
5、.打开文本编辑。NEWVHDL File相应的输入源程序代码存盘为mux41.vhd.。图2 选择编辑文件类型源程序代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux41 ISPORT(a,b,c,d:IN STD_LOGIC; s0: IN STD_LOGIC; s1: IN STD_LOGIC; y: OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE when_mux41 OF mux41 IS SIGNAL s:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINs=s0
6、&s1; yNetlist Viewers-RTL Viewers命令,即HDL的RTL级图形观测器,选择好后即自动弹出计数器设计的RTL电路,如下图:图7 RTL电路图 (3)用CASE语句设计4选1多路选择器1.建立文件夹D:alteralEDAzuoyecase_mux41,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。图1 利用New Project Wizard创建工程mux41 2.打开文本编辑。NEWVHDL File相应的输入源程序代码存盘为mux41.vhd.。图2 选择编辑文件类型源程序代码如下:LIBRARY IEEE;USE IEEE.ST
7、D_LOGIC_1164.ALL;ENTITY mux41 ISPORT(a,b,c,d:IN STD_LOGIC; s0: IN STD_LOGIC; s1: IN STD_LOGIC; y: OUT STD_LOGIC);END ENTITY mux41;ARCHITECTURE case_mux41 OF mux41 IS SIGNAL s0s1:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN s0s1yyyyNULL; END CASE; END PROCESS; END ARCHITECTURE case_mux41; 3.综合运行,检查设计是否正确。图3 全程编译无错后的报告信息4.生成symbol。图4 生成symbol5.建立波形编辑文件进行功能仿真,仿真结果如下图所示。图5 设置时钟CLK的周期图6 仿真波形输出报告 从上图时序仿真可以看出: s0s1=“00”时,输出y=a; s0s1=“01”时,输出y=b; s0s1=“10”时,输出y=c; s0s1=“11 时,输出y=d;6.查看RTL电路。选择Tools-Netlist Viewers-RTL Viewers命令,即HDL的RTL级图形观测器,选择好后即自动弹出计数器设计的RTL电路,如下图:图7 RTL电路图 精品文档