西工大数电实验第二次实验实验报告.docx
- 文档编号:4585364
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:16
- 大小:1.32MB
西工大数电实验第二次实验实验报告.docx
《西工大数电实验第二次实验实验报告.docx》由会员分享,可在线阅读,更多相关《西工大数电实验第二次实验实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
西工大数电实验第二次实验实验报告
数电实验2
一.实验目的
1.学习并掌握硬件描述语言(VHDL或VerilogHDL);熟悉门电路的逻辑功能,并用硬件描述语言实现门电路的设计。
2.熟悉中规模器件译码器的逻辑功能,用硬件描述语言实现其设计。
3.熟悉时序电路计数器的逻辑功能,用硬件描述语言实现其设计。
4.熟悉分频电路的逻辑功能,并用硬件描述语言实现其设计。
二.实验设备
1.Quartus开发环境
2.ED0开发板
三.实验内容
要求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灯观察输出信号)。
2)电路框图如下:
扩展内容:
利用已经实现的VHDL模块文件,采用原理图方法,实现0-F计数自动循环显示,频率10Hz。
(提示:
如何将VHDL模块文件在逻辑原理图中应用,参考参考内容5)
四.实验原理
1.实验1实现异或门逻辑电路,VHDL源代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYEXORGATEIS
PORT(A,B:
INSTD_LOGIC;
C:
OUTSTD_LOGIC);
ENDEXORGATE;
ARCHITECTUREfwmOFEXORGATEIS
BEGIN
C<=AXORB;
END;
2.实验2实现一个将二进制码转换成0-F的七段译码器,VHDL源代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYsevendecoderIS
PORT(data_in:
INSTD_LOGIC_VECTOR(3DOWNTO0);
dis_out:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDsevendecoder;
ARCHITECTUREfwmOFsevendecoderIS
BEGIN
PROCESS(data_in)
BEGIN
CASEdata_inIS
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
WHENOTHERS=>dis_out<="1111111";--灭灯,不显示
ENDCASE;
ENDPROCESS;
ENDfwm;
3.实验3完成一个计数器,VHDL源代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYcounterIS
PORT(clk,RST:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);--四位计数
COUT:
OUTSTD_LOGIC);--进位位
ENDcounter;
ARCHITECTUREfwmOFcounterIS
SIGNALQ1:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(clk,RST)
BEGIN
IFRST='0'THENQ1<=(OTHERS=>'0');COUT<='0';
ELSIFclk'EVENTANDclk='1'THEN
Q1<=Q1+1;
COUT<='0';
IFQ1>="1001"THENQ1<=(OTHERS=>'0');COUT<='1';
ENDIF;
ENDIF;
ENDPROCESS;
DOUT<=Q1;
ENDfwm;
4.实验4编写一个能实现占空比50%的5M和50M分频器即两个输出,输出信号频率分别为10Hz和1Hz,VHDL源代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYfpqIS
PORT(clk:
INSTD_LOGIC;
clk_out,clk_out1:
OUTSTD_LOGIC);
ENDfpq;
ARCHITECTUREfwmOFfpqIS
CONSTANTm:
INTEGER:
=25000000;--50M分频到1Hz时=25000000。
CONSTANTm1:
INTEGER:
=2500000;--5M分频到10Hz时=2500000。
SIGNALtmp:
STD_LOGIC;
SIGNALtmp1:
STD_LOGIC;
BEGIN
PROCESS(clk,tmp)
VARIABLEcout:
INTEGER:
=0;
BEGIN
IFclk'EVENTANDclk='1'THEN
cout:
=cout+1;--计数器+1
IFcout<=mTHENtmp<='0';--计数小于等于25000000,输出0
ELSIFcout ELSEcout: =0;--计数器清零 ENDIF; ENDIF; ENDPROCESS; clk_out<=tmp;--50M分频器输出 PROCESS(clk,tmp1) VARIABLEcout1: INTEGER: =0; BEGIN IFclk'EVENTANDclk='1'THEN cout1: =cout1+1;--计数器+1 IFcout1<=m1THENtmp1<='0';--计数小于等于2500000,输出0 ELSIFcout1 ELSEcout1: =0;--计数器清零 ENDIF; ENDIF; ENDPROCESS; clk_out1<=tmp1;--5M分频器输出 ENDfwm; 五: 拓展内容 首先需要一个分频器分频得到10Hz的时钟信号 LIBRARYIEEE; USEIEEE.STD_LOGIC_1164.ALL; ENTITYtuozhanIS PORT(clk: INSTD_LOGIC; clk_out1: OUTSTD_LOGIC); ENDtuozhan; ARCHITECTUREfwmOFtuozhanIS --CONSTANTm: INTEGER: =25000000;--50M分频到1Hz时=25000000。 CONSTANTm1: INTEGER: =2500000;--5M分频到10Hz时=2500000。 SIGNALtmp: STD_LOGIC; SIGNALtmp1: STD_LOGIC; BEGIN PROCESS(clk,tmp1) VARIABLEcout1: INTEGER: =0; BEGIN IFclk'EVENTANDclk='1'THEN cout1: =cout1+1;--计数器+1 IFcout1<=m1THENtmp1<='0';--计数小于等于2500000,输出0 ELSIFcout1 ELSEcout1: =0;--计数器清零 ENDIF; ENDIF; ENDPROCESS; clk_out1<=tmp1;--5M分频器输出 ENDfwm; 然后需要一个计数器 LIBRARYIEEE; USEIEEE.STD_LOGIC_1164.ALL; ENTITYdecoderIS PORT(clk: INSTD_LOGIC;--接收10HZ的时钟信号 dis_out: OUTSTD_LOGIC_VECTOR(3DOWNTO0)); ENDdecoder; ARCHITECTUREfwmOFdecoderIS BEGIN PROCESS(clk) VARIABLEcount: INTEGER: =0; BEGIN CASEcountIS WHEN0=>dis_out<="0000"; WHEN1=>dis_out<="0001"; WHEN2=>dis_out<="0010"; WHEN3=>dis_out<="0011"; WHEN4=>dis_out<="0100"; WHEN5=>dis_out<="0101"; WHEN6=>dis_out<="0110"; WHEN7=>dis_out<="0111"; WHEN8=>dis_out<="1000"; WHEN9=>dis_out<="1001"; WHEN10=>dis_out<="1010"; WHEN11=>dis_out<="1011"; WHEN12=>dis_out<="1100"; WHEN13=>dis_out<="1101"; WHEN14=>dis_out<="1110"; WHEN15=>dis_out<="1111"; WHENOTHERS=>count: =0; ENDCASE; IFclk'EVENTANDclk='1'THEN count: =count+1; END IF; ENDPROCESS; ENDfwm; 最后使用七段译码器译码为七段码 LIBRARYIEEE; USEIEEE.STD_LOGIC_1164.ALL; ENTITYsevendecoderIS PORT(data_in: INSTD_LOGIC_VECTOR(3DOWNTO0); dis_out: OUTSTD_LOGIC_VECTOR(6DOWNTO0)); ENDsevendecoder; ARCHITECTUREfwmOFsevendecoderIS BEGIN PROCESS(data_in) BEGIN CASEdata_inIS 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 WHENOTHERS=>dis_out<="1111111";--灭灯,不显示 ENDCASE; ENDPROCESS; ENDfwm; 五.实验结果 实验1: VHDL源代码输入 波形仿真 配置针脚 在计算机上完成模拟实验之后,重新进行编译,然后将程序下载到DE0开发板上并对异或门逻辑电路进行验证。 验证结果无误。 实验2: VHDL源代码输入 波形仿真 配置针脚 在计算机上完成模拟实验之后,重新进行编译,然后将程序下载到DE0开发板上并对二进制码转换成0-F的七段码译码器进行验证。 验证结果无误。 实验3: VHDL源代码输入 波形仿真 配置针脚 在计算机上完成模拟实验之后,重新进行编译,然后将程序下载到DE0开发板上并对计数器进行验证。 验证结果无误。 实验4 VHDL源代码输入 波形仿真: 因为要使分频器达到能使人类肉眼能够分别的级别,仿真所需要的时间非常久,所以无法进行完整的仿真,只能下载到ED0板上进行验证。 在这里附上输入波形的波形图。 配置针脚 在计算机上完成模拟实验之后,重新进行编译,然后将程序下载到DE0开发板上并对分频器进行验证。 验证结果无误。 拓展: 将之前分析使用VHDL写出来的每个模块生成对应的原件,然后将原件连接起来,分配针脚重编译后下载到开发板进行验证;结果无误 六.故障排除&实验心得 本次实验中,我们学习并且理解了异或门逻辑电路、二进制码转换成0-F的七段码译码器、计数器和分频器的工作原理,以及如何使用VHDL语言进行这几个电路原件的设计。 感觉困难的阶段在于VHDL语言编写的时候。 因为我们并不熟悉VHDL语言,而且Quartus开发环境我们也是没怎么接触过。 所以在对老师给出的各个逻辑电路的参考程序的改进改编中遇到了许多困难,不过同时也对我们的自学能力进行了考验,让我们充分意识到自己的问题。 从而促进我们努力自学,提升自己的能力.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大数 实验 第二次 报告