2016年度北邮数电实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电路与逻辑设计
实验报告
学院:电子工程学院
班级:
姓名:
学号:
班内序号:
目录(一)实验名称及实验任务要求·1 (二)模块端口说明及连接图·2
1.1实验三(3)模块端口说明·2
1.2实验三(3)连接图·2
2.1实验四模块端口说明·2
2.2实验四连接图·2
(三)原理图或VHDL代码·3
1.实验一(2)原理图·3
2.实验三(3)VHDL代码·4
3.实验四VHDL代码·7(四)仿真波形·10
1.实验一(2)仿真波形·10
2.实验三(3)仿真波形·11
3.实验四仿真波形·11
(五)仿真波形分析·11
1.实验一(2)仿真波形分析·11
2.实验三(3)仿真波形分析·11
3.实验四仿真波形分析·11(六)故障及问题分析·12
(七)总结和结论·13
(一)实验名称及实验任务要求
实验一
名称:QuartusII原理图输入法设计与实现
实验任务要求:EDA基础实验1(1)、(2)、(3)必做,选做VHDL 实现加法器。
实验二
名称:用VHDL设计与实现组合逻辑电路
实验任务要求:四人表决器、8421码转格雷码、数码管译码器(下载测试)。
实验三
名称:用VHDL设计与实现时序逻辑电路
实验任务要求:分频器、8421十进制计数器、将分频器/8421十进制计数器/数码管译码器3个电路进行连接并下载。
实验四
名称:用VHDL设计与实现相关电路
实验任务要求:数码管动态扫描控制器、点阵扫描控制器。
(二)模块端口说明及连接图
1.1实验三(3)模块端口说明
cp:时钟信号输入;
rst:8421十进制计数器异步置位;
c[6...0]:七段二极管数码管显示;
cat[7...0]:数码管显示。
1.2实验三(3)连接图
2.1实验四模块端口说明
cp:时钟信号输入;
rst:8421计数器异步复位;
lgt[6...0]:七段二极管数码管显示;
cat[7...0]:数码管显示。
2.2实验四连接图
(三)原理图或VHDL代码
1.实验一(2)原理图
半加器:
全加器:
2.实验三(3)VHDL代码
//分频器部分
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity div_12 is
port
(
cp: in std_logic;
clk1: out std_logic
);
end div_12;
architecture a of div_12 is
signal tmp: integer range 0 to 11;
begin
process (cp)
begin
if (cp'event and cp='1') then
if tmp=11 then tmp<=0;
else tmp<=tmp+1;
end if;
if tmp<=5 then clk1<='0';
else clk1<='1';
end if;
end if;
end process;
end a;
//8421十进制加法器部分
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity jisuqi8421 is
port
(
clk2,rst: in std_logic;
q : out std_logic_vector(3 downto 0)
);
end jisuqi8421;
architecture a of jisuqi8421 is
signal q_temp:std_logic_vector (3 downto 0); begin
process(clk2,rst)
begin
if (rst='1') then
q_temp<="0000";
elsif (clk2'event and clk2='1') then
if q_temp>="1001" then q_temp<="0000";
else
q_temp<=q_temp+1;
end if;
end if;
end process;
q<=q_temp;
end a;
//译码管部分
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY yimaguan IS
PORT(
a: IN STD_LOGIC_VECTOR (3 downto 0);
b: OUT STD_LOGIC_VECTOR (6 downto 0);
cat: out std_logic_vector(7 downto 0)
);
end yimaguan;