欢迎来到天天文库
浏览记录
ID:56070565
大小:2.18 MB
页数:20页
时间:2020-06-19
《西工大_数电实验_第二次实验_实验报告材料.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数电实验2一.实验目的1.学习并掌握硬件描述语言(VHDL或VerilogHDL);熟悉门电路的逻辑功能,并用硬件描述语言实现门电路的设计。2.熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。3.熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。4.熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。二.实验设备1.Quartus开发环境2.ED0开发板三.实验容要求1:编写一个异或门逻辑电路,编译程序如下。1)用QuartusII波形仿真验证;2)下载到DE0开发板验证。要求2:编写一个将二进制码转换成0
2、-F的七段码译码器。1)用QuartusII波形仿真验证;2)下载到DE0开发板,利用开发板上的数码管验证。要求3:编写一个计数器。1)用QuartusII波形仿真验证;2)下载到DE0开发板验证。要求4:编写一个能实现占空比50%的5M和50M分频器即两个输出,输出信号频率分别为10Hz和1Hz。1)下载到DE0开发板验证。(提示:利用DE0板上已有的50M晶振作为输入信号,通过开发板上两个的LED灯观察输出信号)。2)电路框图如下:扩展容:利用已经实现的VHDL模块文件,采用原理图方法,实现0-F计数自动循环显示,频率
3、10Hz。(提示:如何将VHDL模块文件在逻辑原理图中应用,参考参考容5)四.实验原理1.实验1实现异或门逻辑电路,VHDL源代码如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYEXORGATEISPORT(A,B:INSTD_LOGIC;C:OUTSTD_LOGIC);ENDEXORGATE;ARCHITECTUREfwmOFEXORGATEISBEGINC<=AXORB;END;2.实验2实现一个将二进制码转换成0-F的七段译码器,VHDL源代码如下:LIBRARYIEE
4、E;USEIEEE.STD_LOGIC_1164.ALL;ENTITYsevendecoderISPORT(data_in:INSTD_LOGIC_VECTOR(3DOWNTO0);dis_out:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDsevendecoder;ARCHITECTUREfwmOFsevendecoderISBEGINPROCESS(data_in)BEGINCASEdata_inISWHEN"0000"=>dis_out<="1000000";--显示0WHEN"0001"=>
5、dis_out<="1111001";--显示1WHEN"0010"=>dis_out<="0100100";--显示2WHEN"0011"=>dis_out<="0110000";--显示3WHEN"0100"=>dis_out<="0011001";--显示4WHEN"0101"=>dis_out<="0010010";--显示5WHEN"0110"=>dis_out<="0000010";--显示6WHEN"0111"=>dis_out<="1111000";--显示7WHEN"1000"=>dis_out<="00
6、00000";--显示8WHEN"1001"=>dis_out<="0010000";--显示9WHEN"1010"=>dis_out<="0001000";--显示AWHEN"1011"=>dis_out<="0000011";--显示bWHEN"1100"=>dis_out<="1000110";--显示CWHEN"1101"=>dis_out<="0100001";--显示dWHEN"1110"=>dis_out<="0000110";--显示EWHEN"1111"=>dis_out<="0001110";--显示F
7、WHENOTHERS=>dis_out<="1111111";--灭灯,不显示ENDCASE;ENDPROCESS;ENDfwm;3.实验3完成一个计数器,VHDL源代码如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcounterISPORT(clk,RST:INSTD_LOGIC;DOUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--四位计数COUT:OUTSTD_LOGIC);--进位位E
8、NDcounter;ARCHITECTUREfwmOFcounterISSIGNALQ1:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(clk,RST)BEGINIFRST='0'THENQ1<=(OTHERS=>'0');COUT<='0';ELSIFclk'EVEN
此文档下载收益归作者所有