西工大_数电实验_第二次实验_实验报告材料.doc

上传人:夺命阿水 文档编号:15228 上传时间:2022-06-29 格式:DOC 页数:20 大小:2.18MB
返回 下载 相关 举报
西工大_数电实验_第二次实验_实验报告材料.doc_第1页
第1页 / 共20页
西工大_数电实验_第二次实验_实验报告材料.doc_第2页
第2页 / 共20页
西工大_数电实验_第二次实验_实验报告材料.doc_第3页
第3页 / 共20页
西工大_数电实验_第二次实验_实验报告材料.doc_第4页
第4页 / 共20页
西工大_数电实验_第二次实验_实验报告材料.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《西工大_数电实验_第二次实验_实验报告材料.doc》由会员分享,可在线阅读,更多相关《西工大_数电实验_第二次实验_实验报告材料.doc(20页珍藏版)》请在课桌文档上搜索。

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_out dis_

4、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 OF cou

5、nter 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 IEEE;U

6、SE 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;BEGINPROCESS(c

7、lk, 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;BEGINIF clkE

8、VENT 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 ISPORT

9、(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;BEGINI

10、F 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_outd

11、is_outcount:=0;END CASE;IF clkEVENT AND clk=1 THENcount:=count+1;ENDIF;END PROCESS;END fwm;最后使用七段译码器译码为七段码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY sevendecoder ISPORT (data_in:IN STD_LOGIC_VECTOR(3 DOWNTO 0);dis_out:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END sevendecoder;ARCHITECTURE fwm OF sevende

12、coder ISBEGINPROCESS(data_in)BEGINCASE data_in ISWHEN0000=dis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_outdis_out dis_out=1111111;-灭灯,不显示END CASE;END PROCESS;END fwm;五.实验结果实验1:VHDL源代码输入波形仿真配置针脚在计算机上完成模拟实验之后,重新进行编译,然后将程序下载到DE0开发板上并对异或门逻辑电路进行验证。

13、验证结果无误。实验2:VHDL源代码输入波形仿真配置针脚在计算机上完成模拟实验之后,重新进行编译,然后将程序下载到DE0开发板上并对二进制码转换成 0-F 的七段码译码器进行验证。验证结果无误。实验3:VHDL源代码输入波形仿真配置针脚在计算机上完成模拟实验之后,重新进行编译,然后将程序下载到DE0开发板上并对计数器进行验证。验证结果无误。实验4VHDL源代码输入波形仿真: 因为要使分频器达到能使人类肉眼能够分别的级别,仿真所需要的时间非常久,所以无法进行完整的仿真,只能下载到ED0板上进行验证。在这里附上输入波形的波形图。配置针脚在计算机上完成模拟实验之后,重新进行编译,然后将程序下载到DE

14、0开发板上并对分频器进行验证。验证结果无误。拓展:将之前分析使用VHDL写出来的每个模块生成对应的原件,然后将原件连接起来,分配针脚重编译后下载到开发板进行验证;结果无误六.故障排除&实验心得本次实验中,我们学习并且理解了异或门逻辑电路、二进制码转换成 0-F 的七段码译码器、计数器和分频器的工作原理,以及如何使用VHDL语言进行这几个电路原件的设计。感觉困难的阶段在于VHDL语言编写的时候。因为我们并不熟悉VHDL语言,而且Quartus开发环境我们也是没怎么接触过。所以在对老师给出的各个逻辑电路的参考程序的改进改编中遇到了许多困难,不过同时也对我们的自学能力进行了考验,让我们充分意识到自己的问题。从而促进我们努力自学,提升自己的能力.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号