资源描述
实验二 组合逻辑电路的设计
一、实验目的
1. 设计8段译码器、两路4位二进制比较器,并在实验装置上验证所设计的电路;
2. 学习用VHDL语句进行逻辑描述。
二、实验要求
用VHDL设计8段译码器、两路4位二进制比较器,对CPLD器件进行配置及下载来验证自己的设计,验证电路的外围器件可选用按键输入、指示灯输出。
8段译码器的逻辑功能
输入
输出
in[3..0]
dp
g
f
e
d
c
b
a
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
2
0
1
0
1
1
0
1
1
3
0
1
0
0
1
1
1
1
4
0
1
1
0
0
1
1
0
5
0
1
1
0
1
1
0
1
6
0
1
1
1
1
1
0
1
7
0
0
0
0
0
1
1
1
8
0
1
1
1
1
1
1
1
9
0
1
1
0
1
1
1
1
A
0
1
1
1
0
1
1
1
B
0
1
1
1
1
1
0
0
C
0
0
1
1
1
0
0
1
D
0
1
0
1
1
1
1
0
E
0
1
1
1
1
0
0
1
F
0
1
1
1
0
0
0
1
两路4位二进制比较器逻辑功能
输入
输出
a[3..0]
b[3..0]
H
L
E
a[3..0]> b[3..0]
1
0
0
a[3..0]< b[3..0]
0
1
0
a[3..0]= b[3..0]
0
0
1
三、设计方案
按键的状态作为输入,输出对应数字的编码,连接到数码管上面可以看到数码管显示对应的数值。
代码:LED.vhd
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity LED is
port(number:in std_logic_vector(3 downto 0);
ledout:out std_logic_vector(7 downto 0));
end;
architecture u1 of LED is
begin
with number select
ledout<="00111111"when"0000", --0
"00000110"when"0001", --1
"01011011"when"0010", --2
"01001111"when"0011", --3
"01100110"when"0100", --4
"01101101"when"0101", --5
"01111101"when"0110", --6
"00000111"when"0111", --7
"01111111"when"1000", --8
"01101111"when"1001", --9
"01110111"when"1010", --A
"01111100"when"1011", --B
"00111001"when"1100", --C
"01011110"when"1101", --D
"01111001"when"1110", --E
"01110001"when"1111"; --F
end;
实验结果:按下试验箱的按键后,数码管显示按键的状态。
比较器:按键状态作为输入,输入AB两个数值经过比较器后,比较器输出LED的大小状态,通过LED指示灯显示。
代码:
comp.vhd
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity comp is
port(numbera:in std_logic_vector(3 downto 0);
numberb:in std_logic_vector(3 downto 0);
compout:out std_logic_vector(2 downto 0);
power:out std_logic);
end;
architecture u1 of comp is
begin
process(numbera,numberb)
begin
if numbera>numberb then compout<="100"; --大于
elsif numbera=numberb then compout<="010"; --等于
else compout<="001"; --小于
end if;
power<='1';
end process;
end;
引脚配置
实验结果:
两组按键的状态可以比较大小,并且通过LED指示灯指示大于、等于、小于三种状态。
展开阅读全文