问个用VHDL描述的带使能端的38译码器

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:45:57
LIBRARY IEEE;
USE ieee.std_logic_1164.all
entity en138de is
port (a: in std_logic_vector(2 downto 0);
en: in std_logic;
y: out std_logic_vector(7 downto 0));
end;
architecture p of en138de is
signal yn: std_logic_vector(7 downto 0);
begin
process(en,a)
begin
if en='1' then
case a is
when "000"=> yn <="11111110";
when "001"=> yn <="11111101";
when "010"=> yn <="11111011";
when "011"=> yn <="11110111";
when "100"=> yn <="11101111";
when "101"=> yn <="11011111";
when "110"=> yn <="10111111";
when "111"=> yn <="01111111";
when others => yn <="11111111";

实验一 组合逻辑设计

一、 实验目的:
1、 通过一个 简单的3—8译码器的设计,让学生掌握组合逻辑电路的设计方法。
2、 掌握组合逻辑电路的静态测试方法。
3、 初步了解MAXPLUSII原理图输入设计的全过程。
二、 实验的硬件要求:
1、 输入:DIP拨码开关3位。
2、 输出:LED灯。
3、 主芯片:EP1K10TC100—3。
三、 实验原理:
三-八译码器三输入,八输出。当输入信号按二进制方式的表示值为N时(输入端低电平有效),输出端从零到八记,标号为N输出端输出低电平表示有信号产生,而其它则为高电平表示无信号产生。因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为低电平的情况下,能表示所有的输入组合,因此不需要像编码器实验那样再用一个输出端指示输出是否有效。但可以在输入中加入一个输出使能端,用来指示是否将当前的输入进行有效的译码,当使能端指示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表示无任何信号。本例设计中没有考虑使能输入端,自己设计时可以考虑加入使能输入端时,程序如何设计。
三-八译码器真值表
输入 输出
A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
1 1 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0

四、 实验步骤:
(一)进入WINDOWS操作系统,打开Max+plus II。
1、启动File\projectname菜单,输入设计项目的名字。点击Assign\Device菜单,出现图2—1—1对话框,依据设计要求选择器件。(本实验一律选用EP1K10TC100—3)

图2—1—1