数电实验报告

时间:2024.3.31

 

西安交通大学数电实验报告

——四位智力抢答器

日期:20##年6月15日

一.实验目的... 4

二.项目设计概要... 4

1. 设计实现的目标... 4

2. 整体设计概述... 4

3. 项目设计特点... 4

三.系统设计方案... 5

四.测试结果及分析... 9

1. 模拟仿真测试方案:... 9

2. 抢答鉴别模块仿真测试波形... 9

3. 加分电路模拟仿真测试波形图... 9

4. 计时电路模拟仿真测试波形图... 10

六.项目总结... 11

七.结束语... 11


一.实验目的

电子技术专题实验是对“数字逻辑”课程内容的全面、系统的总结、巩固和提高的一项课程实践活动。根据数字逻辑的特点,选择相应的题目,在老师的指导下,由学生独立完成。目的是通过实验使学生掌握数字逻辑电路设计的基本方法和技巧,正确运用QuartusⅡ软件及实验室多功能学习机硬件平台,完成所选题目的设计任务,并掌握数字逻辑电路测试的基本方法,训练学生的动手能力和思维方法。通过实验,一方面提高运用数字逻辑电路解决实际问题的能力,另一方面使学生更深入的理解所学知识,为以后的计算机硬件课程的学习奠定良好的基础。

二.项目设计概要

1. 设计实现的目标

(1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。

(2) 电路具有第一抢答信号的鉴别和锁存功能。

(3) 设置计分电路。 

(4) 设置犯规电路。

2. 整体设计概述

整个电子表分为三个主功能模块:抢答鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ。对于需显示的信息,需增加或外接译码器,进行显示译码。考虑到FPGA/CPLD的可用接口及一般EDA实验开发系统提供的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。

3. 项目设计特点

我们在项目设计过程中采用模块化设计思想,事先制定了模块间的接口方案,使得整个系统的组合变得十分灵活。由于我们在设计时为电子钟和秒表模块中都加入了显示电路,总控模块可分别与之连接组成一个分系统,便于调试。在最终整合时,我们也只需要将两个模块中的显示电路合二为一即可。

三.系统设计方案

电路模块的设计:

(1)    抢答模块设计:

抢答器,有A,B,C,D四个输入分别代表四个要抢答的组。CLR信号代表清零信号。清除后表示重新开始新一轮抢答。ZF信号表示主持人信号,表示是否开始抢答。Clk为时钟信号,表示检测是否有人抢答的周期。抢答器用四个上升沿D触发器,并将Q端输出信号送给A1,B1,C1,D1表示四个小组的抢答结果。ALRET信号表示抢答违规。采用四输入或门检测是否有输出信号,若有输出信号,则将clk置为高位不再检测输入。将CLR接入D触发器的清零端,将所有输出清零。检测主持人信号与输出信号是否同时为高,若都为高则表示有人抢答违规。

抢答器电路图如下:

(2)加分电路

加分器有RST输入,表示该组加分结束可以进行下一轮加分。ADD输入表示给该组加一分。CHOS[3..0]采用总线输入,表示要加分的组别。将CHOS[3..0]与抢答器的输出相接,某组抢答成功,并答题正确时给该组加一分。加分器共32个输出,从A1[3..0]到D2[3..0]分别用两位十进制数字表示各个小组的当前分数。

加分电路代码:

--JFQ.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY JFQ IS

  PORT(RST: IN STD_LOGIC;

       ADD: IN STD_LOGIC;

       CHOS: IN STD_LOGIC_VECTOR(3 DOWNTO 0);

       AA2,AA1,AA0,BB2,BB1,BB0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

CC2,CC1,CC0,DD2,DD1,DD0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END ENTITY JFQ ;

ARCHITECTURE ART OF JFQ IS

  BEGIN

  PROCESS(RST,ADD,CHOS) IS

    VARIABLE POINTS_A2,POINTS_A1: STD_LOGIC_VECTOR(3 DOWNTO 0);

    VARIABLE POINTS_B2,POINTS_B1: STD_LOGIC_VECTOR(3 DOWNTO 0);

    VARIABLE POINTS_C2,POINTS_C1: STD_LOGIC_VECTOR(3 DOWNTO 0);

    VARIABLE POINTS_D2,POINTS_D1: STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

    IF (ADD'EVENT AND ADD='1')  THEN

       IF RST='1' THEN

         POINTS_A2:="0001"; POINTS_A1:="0000";

         POINTS_B2:="0001"; POINTS_B1:="0000";

         POINTS_C2:="0001"; POINTS_C1:="0000";

         POINTS_D2:="0001"; POINTS_D1:="0000";

       ELSIF CHOS="0001" THEN

IF POINTS_A1="1001" THEN

             POINTS_A1:="0000";

             IF POINTS_A2="1001" THEN

                POINTS_A2:="0000";

             ELSE

                POINTS_A2:=POINTS_A2+'1';

             END IF;

          ELSE

             POINTS_A1:=POINTS_A1+'1';

          END IF;

        ELSIF CHOS="0010" THEN

IF POINTS_B1="1001" THEN

             POINTS_B1:="0000";

             IF POINTS_B2="1001" THEN

                POINTS_B2:="0000";

             ELSE

                POINTS_B2:=POINTS_B2+'1';

             END IF;

          ELSE

             POINTS_B1:=POINTS_B1+'1';

          END IF;

ELSIF CHOS="0100" THEN

          IF POINTS_C1="1001" THEN

             POINTS_C1:="0000";

             IF POINTS_C2="1001" THEN

                POINTS_C2:="0000";

             ELSE

                POINTS_C2:=POINTS_C2+'1';

             END IF;

          ELSE

             POINTS_C1:=POINTS_C1+'1';

          END IF;

ELSIF CHOS="1000" THEN

          IF POINTS_D1="1001" THEN

             POINTS_D1:="0000";

             IF POINTS_D2="1001" THEN

                POINTS_D2:="0000";

             ELSE

                POINTS_D2:=POINTS_D2+'1';

             END IF;

          ELSE

             POINTS_D1:=POINTS_D1+'1';

END IF;

      END IF;

      END IF;

    AA2<=POINTS_A2; AA1<=POINTS_A1; AA0<="0000";

    BB2<=POINTS_B2; BB1<=POINTS_B1; BB0<="0000";

    CC2<=POINTS_C2; CC1<=POINTS_C1; CC0<="0000";

    DD2<=POINTS_D2; DD1<=POINTS_D1; DD0<="0000";

  END PROCESS;

END ARCHITECTURE ART;

(2)    计时器模块:

计时器LCR为清零信号,与抢答器的清零信号接同一输入,TA,TB为时间设置信号,可以自主设计时间,LOD为装载信号,装载TA,TB中的值给计时器,重新设置计时时间。CLK为时钟信号,接1HZ的输入信号来计时。

计时器代码:

--JSQ.VHD

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY JSQ IS

  PORT(CLR,LDN,EN,CLK: IN STD_LOGIC;

       TA,TB: IN STD_LOGIC;

       QA: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

       QB: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END ENTITY JSQ;

ARCHITECTURE ART OF JSQ IS

  SIGNAL DA:  STD_LOGIC_VECTOR(3 DOWNTO 0);

  SIGNAL DB:  STD_LOGIC_VECTOR(3 DOWNTO 0);

  BEGIN

  PROCESS(TA,TB,CLR) IS

    BEGIN

    IF CLR='1' THEN

     DA<="0000";

     DB<="0000";

    ELSE

IF  TA='1'  THEN

     DA<=DA+'1' ;

    END IF;

    IF  TB='1' THEN

      DB<=DB+'1';

    END IF;

   END IF;

 END PROCESS;

 PROCESS(CLK) IS

   VARIABLE TMPA: STD_LOGIC_VECTOR(3 DOWNTO 0);

   VARIABLE TMPB: STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

    IF CLR='1' THEN TMPA:="0000"; TMPB:="0110";

    ELSIF CLK'EVENT AND CLK='1' THEN

        IF LDN='1' THEN TMPA:=DA; TMPB:=DB;

        ELSIF EN='1' THEN

           IF TMPA="0000" THEN

             TMPA:="1001";

              IF TMPB="0000" THEN TMPB:="0110";

              ELSE TMPB:=TMPB-1;

END IF;

           ELSE TMPA:=TMPA-1;

           END IF;

        END IF;

    END IF;

    QA<=TMPA; QB<=TMPB;

  END PROCESS;

END ARCHITECTURE A

四.测试结果及分析

1. 模拟仿真测试方案:

将计时器,抢答鉴别器,加分器分别进行波形仿真测试,在对各个模块测试时与其他模块相关的输入信号可自行设置,如加分模块测试时CHOS[3..0]信号可设置为1000或0100。在设置输入信号时注意对输入信号进行限定。并尽可能多的测试不同情况下的输出。

2. 抢答鉴别模块仿真测试波形

如图将输入设置为A抢答,主持人信号不允许抢答,观察输出波形为A1灯亮,警报灯亮,设置清零信号,设置信号为A先抢答,B后抢答,主持人信号设置为允许抢答,观察输出为A1灯亮。

3. 加分电路模拟仿真测试波形图

先将CHOS[3...1]信号设置为1000,ADD信号输入两次高,观察输出信号为A[3…0]的值为2。再将CHOS设置成0100,ADD信号设置两次高,观察B[3…0]变为2。

4. 计时电路模拟仿真测试波形图

给时钟信号接入周期信号观察输出,可得到输入波形输出波形为计时波形。再将TA,TB送零信号,加装载信号,输出为0 0.

六.项目总结

这次项目刚开始想的比较简单,没有考虑抢答时前一个人抢了之后后一个人按键时不能再有输出,导致整个抢答模块出错。整个项目的设计实现难度较大,设计过程比较顺利,并完成了预期的设计任务。毕竟我们只是学过一些比较基础的数字逻辑理论知识,能力有限,虽然整个模块经过精心设计和调试,其中仍难免存在一些不足之处。

七.结束语

数字电子技术是一门理论与实践密切相关的学科,如果光靠理论,我们就会学的头疼,如果借助实验,效果就不一样了,特别是数字电子技术实验,能让我们自己去验证一下书上的理论,自己去设计,这有利于培养我们的实际设计能力和动手能力。  通过数字电子技术实验, 我们不仅仅是做了几个实验,不仅要学会实验技术,更应当掌握实验方法,即用实验检验理论的方法,寻求物理量之间相互关系的方法,寻求最佳方案的方法等等,掌握这些方法比做了几个实验更为重要。  在数字电子技术实验中,我们可以根据所给的实验仪器、实验原理和一些条件要求,设计实验方案、实验步骤,画出实验电路图,然后进行测量,得出结果。

更多相关推荐:
数电实验报告

数电实验报告姓名所在学院专业班级学号日期目录一实验目的2二电路设计与验证2一用加法器实现2位乘法电路21任务分析22方案及结构设计23电路图及原理分析44测试结果4二用4位加法器实现可控累加电路51任务分析52...

数电实验报告

数电实验报告班级学号姓名班内序号20xx年5月30日一实验内容及要求一Quartus原理图输入法设计1用逻辑门设计实现一个半加器仿真验证其功能并生成新的半加器图形模块单元2用实验1中生成的半加器模块和逻辑门设计...

数电实验报告1

实验一门电路逻辑功能及测试一实验目的1熟悉门电路逻辑功能2熟悉数字电路学习机及示波器使用方法二实验仪器及材料1双踪示波器2器件74LS00二输入端四与非门2片74LS20四输入端双与非门1片74LS86二输入端...

数电课程设计实验报告

目录汽车尾灯控制电路设计第一章设计指标3设计指标3第二章系统概述321设计思想322可行性论证523各功能的组成524总体工作过程5第三章单元电路设计与分析631各单元电路的选择632设计及工作原理分析9第四章...

数电实验报告

北京邮电大学数字电路与逻辑设计实验实验名称学班姓学实验报告QuartusII原理图输入法设计与实现院级名号一实验名称QuartusII原理图输入法设计与实现二实验目的熟悉用QuartusII原理图输入法进行电路...

数电实验总结心得

数字电子技术实验总结心得数字电子技术是一门理论与实践密切相关的学科,如果光靠理论,我们就会学的头疼,如果借助实验,效果就不一样了,特别是数字电子技术实验,能让我们自己去验证一下书上的理论,自己去设计,这有利于培…

北京邮电大学数电实验一实验报告

北京邮电大学信息与通信工程学院北京邮电大学数字电路与逻辑设计实验学院信息与通信工程学院班级作者学号北京邮电大学信息与通信工程学院实验一QuartusII原理图输入法设计一实验目的1熟悉QuartusII原理图输...

数电实验报告

班级姓名学号实验报告一TTL集成逻辑门的逻辑功能与参数测试1测试TTL集成与非门274LS203电压传输特性测试4画出实测的电压传输特性曲线并从中读出各有关参数值实验报告二CMOS电路1用所给的集成电路CD40...

北京邮电大学 数电实验下 报告

数字电路实验报告掷骰子游戏电路班级XXX学号XXX姓名20xx年11月8号目录一任务要求2二系统设计21设计思路22系统框图33分块设计6三仿真波形及分析7四功能说明及资源利用情况8五故障及问题分析9六总结和结...

数电实验报告模板

计算机科学学院数字电路班级20xx级1班组成员指导老师日期1实验指导书有的内容全部弄下来2实验过程及实验图实验报告3实验数据4实验总结实验4时序电路一实验目的1掌握常用时序电路分析设计及测试方法2训练独立进行实...

数字电路实验报告

北京邮电大学数字电路与逻辑设计实验实验报告实验名称足球比赛游戏机班级学号姓名20xx年11月8号1一实验目的1进一步掌握VHDL和QuartusII软件的使用2理解状态机的工作原理和设计方法3掌握利用EDA工具...

数电实验报告(13)

数字电路技术实验报告学专班学姓院信息科学与工程学院业电气工程及其自动化级13自动化1号136330929名陈凯指导教师完成日期20xx年8月10日宁波大学信息科学与工程学院数电实验报告实验报告学13633092...

数电实验报告(27篇)