北邮数电实验之组合逻辑电路、时序逻辑电路

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

相关文档
最新文档