实验七 4选1多路选择器设计实验知识讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七 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=“01”时,输出y=b ; 令s0s1=“10”时,输出y=c ; 令s0s1=“11’ 时,输出y=d ;
a
输入 b 数据 c d
真值表如下:
四、VHDL仿真实验
(1)用IF_THEN语句设计4选1多路选择器
1.建立文件夹D:\alteral\EDAzuoye\if_mux41,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。
图1 利用New Project Wizard创建工程mux41
2.打开文本编辑。NEW→VHDL File→相应的输入源程序代码→存盘为mux41.vhd.。
图2 选择编辑文件类型
源程序代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41 IS
PORT(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,b,c,d)
BEGIN
IF s0s1="00" THEN y<=a;
ELSIF s0s1="01" THEN y<=b;
ELSIF s0s1="10" THEN y<=c;
ELSE y<=d;
END IF;
END PROCESS;
END ARCHITECTURE if_mux41;
3.综合运行,检查设计是否正确。
图3 全程编译无错后的报告信息
4.生成symbol。
图4 生成symbol
5.建立波形编辑文件进行功能仿真,仿真结果如下图所示。
图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电路图
(2)用WHEN_ELSE语句设计4选1多路选择器
1.建立文件夹D:\alteral\EDAzuoye\when_mux41,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。
图1 利用New Project Wizard创建工程mux41
2.打开文本编辑。NEW→VHDL File→相应的输入源程序代码→存盘为mux41.vhd.。
图2 选择编辑文件类型
源程序代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux41 IS
PORT(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); BEGIN
s<=s0&s1;
y<=a WHEN s="00" ELSE
b WHEN s="01" ELSE
c WHEN s="10" ELSE
d WHEN s="11" ELSE
'0';
END when_mux41;
3.综合运行,检查设计是否正确。
图3 全程编译无错后的报告信息4.生成symbol。
图4 生成symbol
5.建立波形编辑文件进行功能仿真,仿真结果如下图所示。
图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电路图
(3)用CASE语句设计4选1多路选择器
1.建立文件夹D:\alteral\EDAzuoye\case_mux41,启动QuartusII软件工作平台,打开并建立新工程管理窗口,完成创建工程。