数字电路与逻辑设计实验报告

2020-03-27 04:56

数字电路与逻辑设计

实验报告

学院: 班级: 班内序号: 学号: 姓名:

一、实验名称和实验任务要求

1、 实验目的

实验一: (1) 学会用QuartusII原理图输入法进行电路设计和仿真。 (2) 掌握QuartusII图形模块单元的生成和调用。 (3) 学会实验板的使用。 (4) 加深对半加器、全加器电路原理的理解。 实验二: (1) 学会用VHDL语言设计组合电路的方法。 (2) 学会用QuartusII文本输入法进行电路设计。 (3) 加深对数码管译码器、编码转换和奇偶校验电路原理的理解。 实验三:

(1)学会用VHDL语言设计时序电路的方法。

(2)学会用QuartusII文本输入法进行电路设计。 (3)加深对计数器设计及分频器原理的理解。

(4)学会用VHDL语言对结构体的行为、数据流和结构进行描述。 实验四: (1) 学会用VHDL语言对状态机进行描述。 (2) 掌握多个数码管动态扫描显示的原理及设计方法。

2、 实验任务要求

实验一: QuartusII 原理图输入法设计与实现 (1) 用逻辑门设计一个半加器,仿真验证其功能,并生成新的半加器图形

模块单元。

(2) 用(1)生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其

功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。

实验二: (1) 用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,

并下载到实验板测试。要求用拨码开关设定输入信号,7段数码管显示输出信号。

(2) 用VHDL语言设计实现一个8421BCD码转换为余3码的代码转换器,仿

真验证其功能。

(3) 用VHDL语言设计实现一个4位二进制奇偶校验器,输入奇数个‘1’

时,输出为‘1’,否则输出‘0’,仿真验证其功能。

实验三: (1) 用VHDL语言设计实现一个带异步复位的8421BCD码十进制计数器,仿

真验证其功能。

(2) (3)

用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器,仿真验证其功能。

用VHDL语言将(1)、(2)和数码管译码器3 个电路进行连接,仿真验证其功能,并下载到实验板测试。

实验四: (1) 用VHDL语言设计实现六个数码管串行扫描电路,要求同时显示0、1、

2、3、4、5这六个不同的数字图形到6个数码管上,仿真验证其功能,并下载到实验板测试。

(2) 用VHDL语言设计实现六个数码管滚动显示电路。

①循环左移动,始终点亮六个数码管,左进右出。状态为:012345->123450->234501->345012->450123->501234->012345

②向左滚动,用全灭的数码管填充右边,直至全部变灭,然后再依次从右边一个一个地点亮。状态为:

012345->12345X->2345XX->345XXX->45XXXX->5XXXXX->XXXXXX->XXXXX0->XXXX01->XXX012->XX0123->X01234->012345,其中‘X’表示数码管不显示。

二、 实验三(3)和实验四模块端口说明及连接图

1、 实验三(3)模块端口说明

entity cc is port(

clkin: in std_logic; --连接后电路的输入时钟 clearin: in std_logic; -- 连接后电路的复位输入 bout: out std_logic_vector (6 downto 0);-- 连接后电路的输出 cat:outstd_logic_vector(5 downto 0));-- 确定电路某数码管亮 end cc;

component div12

port(clk : in std_logic;-- 12分频器的时钟输入

clkout : out std_logic);-- 12分频器的输出 end component; component count10 port(

clk : in std_logic-- 10进制计数器的的时钟输入 clear : in std_logic;-- 10进制计数器的复位输入 cnt : out std_logic_vector(3 downto 0));

-- 10进制计数器的二进制输出

end component; component cnt4 port(

a : in std_logic_vector (3 downto 0);-- 数码管译码器的输入 b : out std_logic_vector (6 downto 0));-- 数码管译码器的输出 end component;

signal c : std_logic;

signal d : std_logic_vector (3 downto 0); begin

cat<=\

u1 : div12 port map(clk=>clkin, clkout=>c);

u2 :count10 port map(clk=>c, clear=>clearin, cnt=>d); u3 : cnt4 port map(a=>d, b=>bout); end;

端口说明:将12分频器输入时钟作为连接后电路输入时钟,

将10进制计数器的复位输入作为连接后图形的复位输入, 将数码管译码器的输出作为连接后图形的输出, 将12分频器输出连接10进制计数器时钟输入, 将10进制计数器输出连接数码管译码器输入。

2、 实验三(3)连接图:

3、 实验四模块端口说明:

(1)数码管串行扫描电路

clk:instd_logic; --输入时钟

cat:outstd_logic_vector(5 downto 0);--确定某数码管亮 y:out std_logic_vector(6 downto 0); --输出 signal count:integer range 0 to 5; --6进制计数,在各个数码管之间进行切换 signalcounter:integer range 0 to 2500 --实现快速扫描的计数器。

(2)数码管滚动显示电路

clk:instd_logic;--点亮某个数码管的时钟输入 y:out std_logic_vector(6 downto 0);--输出

cat:outstd_logic_vector(5 downto 0); --确定某数码管亮 signal count1: integer range 0 to 5;

--每一次扫描的计数器,使六个管“同时”点亮

signal count2: integer range 0 to 5;

--实现循环左滚动的计数器,共六个状态

signal clk2:std_logic;

--实现循环左滚动的时钟

signaltmp: integer range 0 to 5000000;

--实现滚动点亮的计数器

signalcounter:integer range 0 to 25000;

--实现快速扫描的计数器

三、 实验一(2)、实验三(3)和实验四的原理图或

VHDL 代码

1、 实验一(2)原理图

2、 实验三(3)VHDL代码

library IEEE;

use IEEE.std_logic_1164.all; useIEEE.std_logic_unsigned.all; useIEEE.std_logic_arith.all; entity cc is

port(clkin,clearin: in std_logic;

bout: out std_logic_vector (6 downto 0); cat:outstd_logic_vector(5 downto 0)); end cc;

architecturecc_arch of cc is component div12

port(clk : in std_logic; clkout : out std_logic); end component; component count10

port(clk,clear : in std_logic;

cnt : out std_logic_vector(3 downto 0)); end component; component cnt4

port(a : in std_logic_vector (3 downto 0); b : out std_logic_vector (6 downto 0));


数字电路与逻辑设计实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高考政治一轮复习第二单元文化传承与创新课时文化创新创新

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

马上注册会员

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