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

上传人:xmg****18 文档编号:145352482 上传时间:2020-09-20 格式:DOC 页数:14 大小:2.37MB
返回 下载 相关 举报
西工大_数电实验_第二次实验_实验报告_第1页
第1页 / 共14页
西工大_数电实验_第二次实验_实验报告_第2页
第2页 / 共14页
西工大_数电实验_第二次实验_实验报告_第3页
第3页 / 共14页
西工大_数电实验_第二次实验_实验报告_第4页
第4页 / 共14页
西工大_数电实验_第二次实验_实验报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《西工大_数电实验_第二次实验_实验报告》由会员分享,可在线阅读,更多相关《西工大_数电实验_第二次实验_实验报告(14页珍藏版)》请在金锄头文库上搜索。

1、. . . 数电实验2一实验目的1.学习并掌握硬件描述语言(VHDL 或 Verilog HDL);熟悉门电路的逻辑功能,并用硬件描述语言实现门电路的设计。2.熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。3.熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。4.熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。二.实验设备1.Quartus开发环境2.ED0开发板三.实验容要求1:编写一个异或门逻辑电路,编译程序如下。1)用 QuartusII 波形仿真验证;2)下载到DE0 开发板验证。要求2:编写一个将二进制码转换成 0-F 的七段码译码器。1)用 QuartusII

2、 波形仿真验证;2)下载到 DE0 开发板,利用开发板上的数码管验证。要求3: 编写一个计数器。1)用QuartusII 波形仿真验证;2)下载到 DE0 开发板验证。要求4:编写一个能实现占空比 50%的 5M 和50M 分频器即两个输出,输出信号频率分别为 10Hz 和 1Hz。1) 下载到 DE0 开发板验证。(提示:利用 DE0 板上已有的 50M 晶振作为输入信号,通过开发板上两个的 LED 灯观察输出信号)。2) 电路框图如下:扩展容:利用已经实现的 VHDL 模块文件,采用原理图方法,实现 0-F 计数自动循环显示,频率 10Hz。(提示:如何将 VHDL 模块文件在逻辑原理图中

3、应用,参考参考容 5)四.实验原理1.实验1实现异或门逻辑电路,VHDL源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY EXORGATE ISPORT(A,B:IN STD_LOGIC;C:OUT STD_LOGIC);END EXORGATE;ARCHITECTURE fwm OF EXORGATE ISBEGINCdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_o

4、ut dis_out=1111111;-灭灯,不显示END CASE;END PROCESS;END fwm;3.实验3完成一个计数器,VHDL源代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISPORT ( clk,RST : IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); -四位计数COUT : OUT STD_LOGIC); -进位位END counter;ARCHITECTURE fwm

5、 OF counter ISSIGNAL Q1 : STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(clk,RST)BEGINIF RST = 0 THEN Q1 0); COUT= 0;ELSIF clkEVENT AND clk=1 THENQ1=Q1+1;COUT= 1001 THEN Q1 0); COUT= 1;END IF;END IF;END PROCESS;DOUT=Q1 ;END fwm;4.实验4编写一个能实现占空比 50%的 5M 和50M 分频器即两个输出,输出信号频率分别为 10Hz 和 1Hz,VHDL源代码如下:LIBRARY

6、 IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY fpq ISPORT(clk:IN STD_LOGIC;clk_out,clk_out1:OUT STD_LOGIC);END fpq;ARCHITECTURE fwm OF fpq ISCONSTANT m : INTEGER:= 25000000; -50M 分频到 1Hz 时=25000000。CONSTANT m1 : INTEGER:= 2500000; -5M 分频到 10Hz 时=2500000。SIGNAL tmp :STD_LOGIC;SIGNAL tmp1 :STD_LOGIC;BEGINPR

7、OCESS(clk, tmp)VARIABLE cout : INTEGER:=0;BEGINIF clkEVENT AND clk=1 THENcout:=cout+1; -计数器+1IF cout=m THEN tmp=0; -计数小于等于 25000000,输出 0ELSIF coutm*2 THEN tmp=1; -计数小于 50000000,输出 1ELSE cout:=0; -计数器清零END IF;END IF;END PROCESS;clk_out=tmp; -50M分频器输出PROCESS(clk, tmp1)VARIABLE cout1 : INTEGER:=0;BEGIN

8、IF clkEVENT AND clk=1 THENcout1:=cout1+1; -计数器+1IF cout1=m1 THEN tmp1=0; -计数小于等于 2500000,输出 0ELSIF cout1m1*2 THEN tmp1=1; -计数小于 5000000,输出 1ELSE cout1:=0; -计数器清零END IF;END IF;END PROCESS;clk_out1=tmp1; -5M分频器输出END fwm;五:拓展容首先需要一个分频器分频得到10Hz的时钟信号LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tuozhan

9、 ISPORT(clk:IN STD_LOGIC;clk_out1:OUT STD_LOGIC);END tuozhan;ARCHITECTURE fwm OF tuozhan IS-CONSTANT m : INTEGER:= 25000000; -50M 分频到 1Hz 时=25000000。CONSTANT m1 : INTEGER:= 2500000; -5M 分频到 10Hz 时=2500000。SIGNAL tmp :STD_LOGIC;SIGNAL tmp1 :STD_LOGIC;BEGINPROCESS(clk, tmp1)VARIABLE cout1 : INTEGER:=0

10、;BEGINIF clkEVENT AND clk=1 THENcout1:=cout1+1; -计数器+1IF cout1=m1 THEN tmp1=0; -计数小于等于 2500000,输出 0ELSIF cout1m1*2 THEN tmp1=1; -计数小于 5000000,输出 1ELSE cout1:=0; -计数器清零END IF;END IF;END PROCESS;clk_out1dis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outcount:=0;END CASE;IF clkEVENT A

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号