西工大_数电实验_第二次实验_实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数电实验2

一.实验目的

1.学习并掌握硬件描述语言(VHDL 或 Verilog HDL);熟悉门电路的逻辑功能,并用硬件描述语言实现门电路的设计。

2.熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。

3.熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。

4.熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。

二.实验设备

开发环境

开发板

三.实验内容

要求1:编写一个异或门逻辑电路,编译程序如下。

1)用 QuartusII 波形仿真验证;

2)下载到DE0 开发板验证。

要求2:编写一个将二进制码转换成 0-F 的七段码译码器。

1)用 QuartusII 波形仿真验证;

2)下载到 DE0 开发板,利用开发板上的数码管验证。

要求3:编写一个计数器。

1)用QuartusII 波形仿真验证;

2)下载到 DE0 开发板验证。

要求4:编写一个能实现占空比 50%的 5M 和50M 分频器即两个输出,输出信号频率分别为 10Hz 和 1Hz。

1)下载到 DE0 开发板验证。(提示:利用 DE0 板上已有的 50M 晶振作为输入信号,通过开发板上两个的 LED 灯观察输出信号)。

v1.0 可编辑可修改2)电路框图如下:

扩展内容:利用已经实现的 VHDL 模块文件,采用原理图方法,实现 0-F 计数自动循环显示,频率 10Hz。(提示:如何将 VHDL 模块文件在逻辑原理图中应用,参考参考内容 5)

四.实验原理

1.实验1实现异或门逻辑电路,VHDL源代码如下:

LIBRARY IEEE;

USE EXORGATE IS

PORT(A,B:IN STD_LOGIC;

C:OUT STD_LOGIC);

END EXORGATE;

ARCHITECTURE fwm OF EXORGATE IS

BEGIN

C<=A XOR B;

END;

2.实验2实现一个将二进制码转换成0-F的七段译码器,VHDL源代码如下:LIBRARY IEEE;

USE sevendecoder IS

PORT (data_in:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

dis_out:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));

END sevendecoder;

ARCHITECTURE fwm OF sevendecoder IS

BEGIN

PROCESS(data_in)

BEGIN

CASE data_in IS

WHEN"0000"=>dis_out<="1000000";--显示 0 WHEN"0001"=>dis_out<="1111001";--显示 1 WHEN"0010"=>dis_out<="0100100";--显示 2 WHEN"0011"=>dis_out<="0110000";--显示 3 WHEN"0100"=>dis_out<="0011001";--显示 4 WHEN"0101"=>dis_out<="0010010";--显示 5 WHEN"0110"=>dis_out<="0000010";--显示 6 WHEN"0111"=>dis_out<="1111000";--显示 7 WHEN"1000"=>dis_out<="0000000";--显示 8 WHEN"1001"=>dis_out<="0010000";--显示 9 WHEN"1010"=>dis_out<="0001000";--显示 A WHEN"1011"=>dis_out<="0000011";--显示 b WHEN"1100"=>dis_out<="1000110";--显示 C WHEN"1101"=>dis_out<="0100001";--显示 d WHEN"1110"=>dis_out<="0000110";--显示 E WHEN"1111"=>dis_out<="0001110";--显示 F

WHEN OTHERS=> dis_out<="1111111";--灭灯,不显示END CASE;

END PROCESS;

END fwm;

3.实验3完成一个计数器,VHDL源代码如下:LIBRARY IEEE;

USE counter IS

PORT ( clk,RST : IN STD_LOGIC;

DOUT : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); --四位计数

COUT : OUT STD_LOGIC); --进位位

END counter;

ARCHITECTURE fwm OF counter IS

SIGNAL Q1 : STD_LOGIC_VECTOR (3 DOWNTO 0);

BEGIN

PROCESS(clk,RST)

BEGIN

IF RST = '0' THEN Q1<=(OTHERS => '0'); COUT<= '0';

ELSIF clk'EVENT AND clk='1' THEN

Q1<=Q1+1;

COUT<= '0';

IF Q1 >= "1001" THEN Q1<=(OTHERS => '0'); COUT<= '1';

END IF;

END IF;

END PROCESS;

DOUT<=Q1 ;

END fwm;

4.实验4编写一个能实现占空比 50%的 5M 和50M 分频器即两个输出,输出信号频率分别为 10Hz 和 1Hz,VHDL源代码如下:

LIBRARY IEEE;

USE fpq IS

PORT(clk:IN STD_LOGIC;

clk_out,clk_out1:OUT STD_LOGIC);

END fpq;

相关文档
最新文档