8路数据分配器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VHDL程序顺序语句的应用
一、实训目的
1.巩固编译、仿真VHDL文件的方法。
2.掌握VHDL程序顺序语句的应用。
二、实训器材
计算机与Quartus Ⅱ工具软件。
三、实训指导
(一)实训原理
8路数据分配器的真值表如表4-1所示。
表4-1 8路数据分配器的真值表
输入输出
s2 s1 s0 y7 y6 y5 y4 y3 y2 y1 y0
0 0 0 0 0 0 0 0 0 0 d
0 0 1 0 0 0 0 0 0 d 0
0 1 0 0 0 0 0 0 d 0 0
0 1 1 0 0 0 0 d 0 0 0
1 0 0 0 0 0 d 0 0 0 0
1 0 1 0 0 d 0 0 0 0 0
1 1 0 0 d 0 0 0 0 0 0
1 1 1 d 0 0 0 0 0 0 0
(二)实训步骤
1.设计输入VHDL文件
(1)建立工程项目。
(2)建立VHDL文件。
(3)设计输入VHDL文件,可用IF语句或CASE语句等顺序语句设计。VHDL代码如下:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY sjfpq8 IS
PORT(s:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
d:IN STD_LOGIC;
y7,y6,y5,y4,y3,y2,y1,y0:OUT STD_LOGIC);
END sjfpq8;
ARCHITECTURE w OF sjfpq8 IS
BEGIN
PROCESS(s,d)
BEGIN
IF S="000" THEN y0<=d;y1<='0';y2<='0';y3<='0';
y4<='0';y5<='0';y6<='0';y7<='0'; ELSIF S="001" THEN y1<=d;y0<='0';y2<='0';y3<='0'; y4<='0';y5<='0';y6<='0';y7<='0'; ELSIF S="010" THEN y2<=d;y0<='0';y1<='0';y3<='0'; y4<='0';y5<='0';y6<='0';y7<='0'; ELSIF S="011" THEN y3<=d;y0<='0';y1<='0';y2<='0'; y4<='0';y5<='0';y6<='0';y7<='0'; ELSIF S="100" THEN y4<=d;y0<='0';y1<='0';y2<='0'; y3<='0';y5<='0';y6<='0';y7<='0'; ELSIF S="101" THEN y5<=d;y0<='0';y1<='0';y2<='0'; y3<='0';y4<='0';y6<='0';y7<='0'; ELSIF S="110" THEN y6<=d;y0<='0';y1<='0';y2<='0'; y3<='0';y4<='0';y5<='0';y7<='0'; ELSE y7<=d;y0<='0';y1<='0';y2<='0';y3<='0';
y4<='0';y5<='0';y6<='0';
END IF;
END PROCESS;
END w;
2.编译仿真VHDL文件
(1)编译VHDL文件。
如果有错误,检查并纠正错误,直至最后通过。
(2)仿真VHDL文件。
认真核对输入/输出波形,检查设计的功能是否正确。
8路数据分配器的仿真波形图如图4-1所示。
图4-1 8路数据分配器仿真波形图
四、实训总结
通过本次试验我掌握了VHDL文件的编译与仿真,同时巩固了VHDL程序顺序
语句的应用。