2016年北邮数电实验报告 (1)

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

ARCHITECTURE seg7_1_arch OF yimaguan IS

BEGIN

PROCESS(a)

BEGIN

CASE a IS

WHEN"0000" => b <="1111110"; --0

相关文档
最新文档