EDA实验报告

2020-08-09 18:52

级: 班姓名:学号:

实验一 3-8译码器的实现

一、实验目的及要求

熟悉利用Quartus II 的VHDL输入方法设计简单组合电路,掌握case、if、when_else和信号选择语句的使用,并通过仿真,对比用以上四种语句实现3-8译码器所需要的资源情况(编译成功后弹出的Compilation Report)。 二、实验原理

1、输出为低电平有效时,对应真值表为:

2、输出为高电平有效时,对应真值表为:

三、 实验内容和步骤

完成3-8译码器的设计,包括VHDL文本输入、编译、综合、适配、仿真(功能验证:本实验报告须重点分析)。

(1)CASE语句

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; --使用类型转换函数,打开此程序包。 ENTITY dec3to8CASE IS

port( DIN: IN STD_LOGIC_VECTOR(2 DOWNTO 0); DOUT: OUT BIT_VECTOR(7 DOWNTO 0)); END dec3to8CASE;

ARCHITECTURE bhv OF dec3to8CASE IS BEGIN

PROCESS (DIN) BEGIN

CASE CONV_INTEGER(DIN) IS

WHEN 0 => DOUT<=\ WHEN 1 => DOUT<=\ WHEN 2 => DOUT<=\ WHEN 3 => DOUT<=\ WHEN 4 => DOUT<=\ WHEN 5 => DOUT<=\ WHEN 6 => DOUT<=\ WHEN 7 => DOUT<=\ WHEN OTHERS => NULL; END CASE; END PROCESS; END bhv;

(2)IF语句

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY dec3to8IF IS

port( DIN: IN STD_LOGIC_VECTOR(2 DOWNTO 0); DOUT: OUT BIT_VECTOR(7 DOWNTO 0)); END dec3to8IF;

ARCHITECTURE bhv OF dec3to8IF IS BEGIN

PROCESS (DIN) BEGIN

IF CONV_INTEGER(DIN)=0 THEN DOUT<=\ ELSIF CONV_INTEGER(DIN)=1 THEN DOUT<=\ ELSIF CONV_INTEGER(DIN)=2 THEN DOUT<=\ ELSIF CONV_INTEGER(DIN)=3 THEN DOUT<=\ ELSIF CONV_INTEGER(DIN)=4 THEN DOUT<=\ ELSIF CONV_INTEGER(DIN)=5 THEN DOUT<=\ ELSIF CONV_INTEGER(DIN)=6 THEN DOUT<=\

ELSIF CONV_INTEGER(DIN)=7 THEN DOUT<=\ END IF; END PROCESS; END bhv;

(3)WHEN_ELSE语句

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY dec3to8WHENELSE IS

port( DIN: IN STD_LOGIC_VECTOR(2 DOWNTO 0); DOUT: OUT BIT_VECTOR(7 DOWNTO 0)); END dec3to8WHENELSE;

ARCHITECTURE bhv OF dec3to8WHENELSE IS BEGIN

DOUT<=\ \ \ \ \ \ \ \END bhv;

(4)信号选择语句

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY dec3to8SEL IS

port( DIN: IN STD_LOGIC_VECTOR(2 DOWNTO 0); DOUT: OUT BIT_VECTOR(7 DOWNTO 0)); END dec3to8SEL;

ARCHITECTURE bhv OF dec3to8SEL IS BEGIN

WITH CONV_INTEGER(DIN) SELECT DOUT<=\ \ \ \ \ \ \ \

UNAFFECTED WHEN OTHERS; END bhv;

四、 仿真分析和心得体会 仿真分析:

仿真波形图如下:

其仿真结果和输出高电平有效的真值表相符。4种语句都定义了STD_LOGIC_VECTOR类型的DIN和DOUT,其中DIN作为输入,DOUT作为输出。当DIN=“000”(转换后为‘0’)时DOUT=“00000001”,当DIN=“001”(转换后为‘1’)时DOUT=“00000010”,以此类推。

心得体会:4种语句虽然不同,但实现的结果是相同的,可谓殊途同归,说明VHDL语言编程灵活多样。IF语句和CASE语句需要放在进程语句中,由PROCESS语句引导;在使用类型转换函数时(程序中的CONV_INTEGER(DIN)语句),需要打开

IEEE.STD_LOGIC_UNSIGNED.ALL程序包;使用信号赋值语句在条件句中未能覆盖所有条件选择时,要在末尾加上与NULL类似涵义的关键词UNAFFECTED。

级: 班姓名:学号:

实验二 4选1选择器的设计

一、实验目的

熟悉利用Quartus II 的VHDL文本输入方法设计简单组合电路,掌握层次化设计的方法,注意原件调用声明和例化语句的使用。

二、实验原理和实验步骤 (课本P95,题3-23)

1、完成2选1选择器的设计,包括VHDL文本输入、编译、综合、适配、仿真; 2、建立一个更高层次的4选1程序设计,利用以上获得的2选1选择器,构成如下图所示的4选1选择器,并完成编译、综合、适配、仿真(功能验证:本实验报告须重点分析)。

S1 S0 A B

0 1 0 1 Y

C D 0 1

实验步骤:

方法一:单层结构

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41b IS

PORT(A,B,C,D,s0,s1: IN STD_LOGIC; y: OUT STD_LOGIC); END ENTITY mux41b;

ARCHITECTURE one OF mux41b IS signal N0,N1: STD_LOGIC; BEGIN

com1: PROCESS(A,B,s0) BEGIN

IF s0='0' THEN N0<=A; ELSE

N0<=B; END IF; END PROCESS;

com2: PROCESS(C,D,s0)


EDA实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:上海中级口译培训的课程笔记整理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: