北邮数电实验之组合逻辑电路、时序逻辑电路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京邮电大学
数字电路与逻辑设计实验报告
(实验2)
电子202-赵依然-2018212048
摘要:本次数字电路与逻辑设计实验以初步掌握VHDL语言设计简单的数字电路,并且在QuartusⅡ上仿真为目的,加深组合逻辑电路和时序逻辑电路的基本原理、设计理念、运转方式。
关键词:组合逻辑电路时序逻辑电路VHDL QuartusⅡ仿真一:实验1
实验内容1
1.1.1实验名称:
VHDL组合逻辑电路设计-4选1数据选择器
1.1.2实验任务要求:
用VHDL语言设计实现一个4选1数据选择器,根据地址端的不同取值选择不同的数据端到输出端,仿真验证其功能。
1.2 电路设计及VHDL代码及注释
1.2.1 设计原理:利用功能表进行判断。设计数据输入端a3-a0和地址端s1-s0,输出端c,当地址端为11时c端输出a3的值,当地址端为10时c端输出a2的值,当地址端为01时c端输出a1的值,当地址端为00时c端输出a0的值。这样就确定了电路的逻辑。
1.2.2 VHDL代码及注释:
library ieee;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_arith.all;
use ieee.STD_LOGIC_unsigned.all;
entity mux4 is
port(
a:in std_logic_vector(3 downto 0);
s:in std_logic_vector(1 downto 0);
c:out std_logic
);
end mux4;
architecture mux4_arch of mux4 is
begin
process(s)
begin
case s is
when "00"=>c<=a(0);--当输入00,输出a(0)
when "01"=>c<=a(1);
when "10"=>c<=a(2);
when "11"=>c<=a(3);
end case;
end process;
end;
1.3仿真波形图(请放大查看)
1.4 仿真波形图分析
由图可知,当s端地址端输入11,c端输出和a3一致,s端输入10,c端输出和a2一致,s端输入01,c端输出和a1一致,s端输入00,c端输出和a0一致。可见设计的逻辑满足要求,仿真正确,电路实现了4选1数据选择器的功能。
二:实验2
实验内容2
2.1.1实验名称:
VHDL组合逻辑电路设计-共阴极7 段数码管译码器
2.1.2实验任务要求:用VHDL 语言设计实现一个共阴极7 段数码管译码器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,7 段数码管显示输出信号。
2.2 电路设计及VHDL代码及注释
2.2.1 设计原理:
我们知道,七段共阴极数码管是这样的,也就是通过点亮各个数码管来实现数字的显示。输入端为a3-a0,输出端为b6-b0(控制7段数码管用),c7-c0(用来控制板子上哪个数码管进行显示)。
功能表由数码管的原理确定,如当输入为0000时,数码管点亮B6 B5 B4 B3 B2 B1,这样就显示出0这个数字。再比如输入为1001时,数码管点亮B6 B5 B4 B3 B1 B0 则点亮9这个数字。如下表所示。其他情况下则输出高阻。
2.2.2 VHDL代码及注释
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL; USE IEEE.STD_LOGIC_unsigned.ALL; entity qiduan is
port(
a:in std_logic_vector(3 downto 0); b:out std_logic_vector(6 downto 0);
c:out std_logic_vector(7 downto 0));--控制显示板子上哪个数码管
end qiduan;
architecture qiduanyima of qiduan is
begin
process(a)
begin
c<="01111111";
CASE a IS
WHEN "0000"=> b<="1111110";--输出0 WHEN"0001"=> b<="0110000";--1 WHEN"0010"=> b<="1101101";--2 WHEN"0011"=> b<="1111001";--3 WHEN"0100"=> b<="0110011";--4 WHEN"0101"=> b<="1011011";--5 WHEN"0110"=> b<="1011111";--6 WHEN"0111"=> b<="1110000";--7 WHEN"1000"=> b<="1111111";--8 WHEN"1001"=> b<="1111011";--9
WHEN OTHERS=> b<="ZZZZZZZ";--输出高阻
end case;
end process;
end qiduanyima;
2.3 仿真波形图(请放大查看)
2.4仿真波形图分析:
由图可知,当输入端输入0000时,可输出b端1111110,即在数码管上显示数字0,输入0000-1001都可显示真值表中相应的输出,可显示对应的数字。当不在这个输入的范围内,输出高阻。同时c端一直输出01111111,即使用板子上第一个数码管器。由分析可知,设计的逻辑满足要求,仿真正确,电路实现了共阴极7 段数码管译码器
的功能。
三:实验3
实验内容3
3.1.1实验名称:
VHDL组合时序电路设计-分频器
3.1.2实验任务要求:
用VHDL 语言设计实现一个分频系数为10,分频输出信号占空比为50% 的分频器,仿真验证设计。