8路数据分配器

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

语句的应用。

相关文档
最新文档