实验七 4 选1 多路选择器设计实验 一、实验目的 进一步熟悉Qu artu sII 的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 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 4 选 1 数 据 选 择 器 四、 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 电路。选...