实验七 4选1多路选择器设计实验知识讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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软件工作平台,打开并建立新工程管理窗口,完成创建工程。

相关文档
最新文档