收藏 分销(赏)

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

上传人:精*** 文档编号:1574546 上传时间:2024-05-05 格式:DOC 页数:13 大小:539.50KB 下载积分:8 金币
下载 相关
实验七----4选1多路选择器设计实验知识讲解.doc_第1页
第1页 / 共13页
实验七----4选1多路选择器设计实验知识讲解.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
精品文档 实验七 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; 4 选 1 数 据 选 择 器 a 输入 b y 数据 c d s0 s1 真值表如下: 输入 输出 x s0 s1 y a 0 0 a b 0 1 b c 1 0 c d 1 1 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软件工作平台,打开并建立新工程管理窗口,完成创建工程。 图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 case_mux41 OF mux41 IS SIGNAL s0s1:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN s0s1<=s0&s1; PROCESS(s0s1,a,b,c,d) BEGIN CASE s0s1 IS WHEN"00"=>y<=a; WHEN"01"=>y<=b; WHEN"10"=>y<=c; WHEN"11"=>y<=d; WHEN OTHERS=>NULL; END CASE; END PROCESS; END ARCHITECTURE case_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电路图 精品文档
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服