北邮数电实验报告

合集下载

北邮数字电路综合实验报告

北邮数字电路综合实验报告

数字电路综合实验报告简易智能密码锁一、实验课题及任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。

基本要求:1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。

通过密码设置确定键(BTN 键)进行锁定。

2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。

输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。

3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。

闭锁状态下不能清除密码。

4、用点阵显示开锁和闭锁状态。

提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。

2、密码锁的密码位数(4~6 位)可调。

3、自拟其它功能。

二、系统设计2.1系统总体框图2.2逻辑流程图2.3MDS图2.4分块说明程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。

以下进行详细介绍。

1.键盘模块本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。

键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

北邮数字电路综合实验报告

北邮数字电路综合实验报告

数字电路综合实验报告简易智能密码锁一、实验课题及任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。

基本要求:1、密码设置:通过键盘进行 4 位数字密码设定输入,在数码管上显示所输入数字。

通过密码设置确定键(BTN 键)进行锁定。

2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。

输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。

3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。

闭锁状态下不能清除密码。

4、用点阵显示开锁和闭锁状态。

提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。

2、密码锁的密码位数(4~6 位)可调。

3、自拟其它功能。

二、系统设计2.1系统总体框图2.2逻辑流程图2.3MDS图2.4分块说明程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。

以下进行详细介绍。

1.键盘模块本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。

键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

北邮数电综合实验报告

北邮数电综合实验报告

北京邮电大学数字电路与逻辑设计实验学院:信息与通信工程学院班级: 2013211127 作者:薄士宁学号: 2013212543 ____一.实验名称和任务要求LED 点阵风扇的设计与实现基本要求:1、用8×8 点阵模拟风扇转动,并采用双色点阵显示。

2、风扇转动方式如图1 所示,包括四个点阵显示状态并按顺序循环显示。

风扇转动速度根据环境温度分为4 档,其中1 档的四个显示状态之间的切换时间为2 秒,2 档为1 秒,3 档为0.5 秒,4 档为静止不动。

图1 点阵模拟风扇转动示意图3、环境温度通过2 个BTN 按键设置,一个用来增加,一个用来减少,温度可设置范围为10℃~40℃,温度精度为1℃,并用两个数码管进行温度显示。

风扇根据不同的温度自动采用不同的转动速度,其中20℃~24℃对应1档,25℃~29℃对应2 档,30℃~40℃对应3 档,10℃~19℃对应4 档,用一个数码管显示档位。

4、定时模式:在风扇不同转动速度下,可以通过按键切换进入定时模式。

定时时间可设置范围为20~59 秒,采用两个数码管进行倒计时显示,当倒计时结束后,风扇状态保持静止不动。

5、设置开关键。

风扇开机初始状态为20℃、1 档,并有不小于5 秒的开机音乐。

关机状态为点阵全灭。

提高要求:1、设计LED 风扇的其他工作模式。

2、利用实验板上的温度传感器代替按键直接获取温度数据,实现对LED 风扇四档转速的自动控制。

3、用数码管实时显示温度传感器的温度数据,精度为0.1℃。

4、自拟其他功能。

二.基本思路根据实验要求,画出总的原理图。

实验的基本要求,即8×8双色点阵模拟风扇转动、风扇转动分四个档位(每个档位对应“四种”状态)、通过环境温度控制档位的自动选择、设计定时模式、开关机状态。

为了实现这些既定要求,设计出了温度控制模块、倒计时控制模块、音乐控制模块、点阵风扇模块、数码管显示模块等,通过对时钟的分频、加减法计数器、数据选择器等的运用,来实现上述功能。

北邮数电实验报告

北邮数电实验报告

北邮数电实验报告北邮数电实验报告一、引言数电实验是电子信息类专业学生必修的一门实验课程,通过实践操作,帮助学生巩固理论知识,培养实际动手能力。

本次实验旨在通过设计和搭建一个简单的数字电路,来理解数字电路的基本原理和工作方式。

二、实验目的本次实验的目的是设计一个4位二进制加法器,实现两个4位二进制数的相加运算。

通过实验,我们可以加深对于数字电路的理解,掌握数字电路的设计和搭建方法。

三、实验原理1. 二进制加法器二进制加法器是一种用于计算二进制数相加的数字电路。

它由若干个逻辑门和触发器组成,可以实现二进制数的加法运算。

在本次实验中,我们将设计一个4位二进制加法器,即可以计算两个4位二进制数的相加结果。

2. 逻辑门逻辑门是数字电路中常用的基本元件,用于实现逻辑运算。

常见的逻辑门有与门、或门、非门、异或门等。

在本次实验中,我们将使用与门和异或门来构建4位二进制加法器。

四、实验步骤1. 设计4位二进制加法器的电路图根据实验要求,我们需要设计一个能够计算两个4位二进制数相加的电路。

首先,我们可以将两个4位二进制数分别用D0~D3和E0~E3表示,其中D0和E0分别为最低位。

然后,我们需要使用与门和异或门来实现加法器的功能。

通过逻辑运算,我们可以得到每一位的和以及进位。

最后,将每一位的和连接起来,即可得到最终的结果。

2. 搭建电路根据电路图,我们可以开始搭建实验电路。

首先,将所需的逻辑门和触发器连接起来,形成一个完整的电路。

然后,将所需的输入信号和电源连接到电路上。

最后,使用示波器等工具检查电路的工作状态,确保电路正常运行。

3. 进行实验测试在搭建好电路后,我们可以进行实验测试。

首先,将两个4位二进制数的输入信号连接到电路上。

然后,通过观察输出信号,判断电路是否正确计算了两个二进制数的相加结果。

如果输出信号与预期结果一致,说明电路设计和搭建成功。

五、实验结果与分析在进行实验测试后,我们可以得到实验结果。

通过观察输出信号,我们可以判断电路是否正确计算了两个二进制数的相加结果。

北邮数电综合实验报告

北邮数电综合实验报告

北邮数电综合实验报告综合实验报告:基于北邮数电实验的电子门禁系统设计与实现摘要:本次实验通过使用北邮数电实验室提供的器件和设备,设计并实现了一个简易的电子门禁系统。

该系统能够通过输入正确的密码或使用合法的身份卡,实现对门禁的控制和管理。

本文将详细介绍系统设计的原理、实验过程和结果,并对实验进行了总结和评价。

一、引言电子门禁系统是当前社会中广泛应用的一种重要安全保障设施。

它通过使用密码、身份卡等识别方式,对人员出入进行控制和管理。

本实验旨在通过北邮数电实验的学习和实践,学习和掌握电子门禁系统的设计与实现。

二、实验器材与原理实验器材:1.键盘2.蜂鸣器3.LCD显示屏4.数码安全码锁5.单片机开发板6.电源模块7.连线模块实验原理:该电子门禁系统的基本原理如下:1.用户通过键盘输入密码或刷合法的身份卡;2.单片机接收到输入的密码或读取身份卡信息;3.单片机对输入的密码或身份卡信息进行核对;5. 若核对失败,则控制蜂鸣器发出门禁错误提示音,并在LCD显示屏上显示“Access Denied”等拒绝信息。

三、实验过程与结果1.按照实验器材的接线要求,将键盘、蜂鸣器和LCD显示屏与开发板连接好;2.根据实验原理,编写相应的控制程序,并将程序烧录到单片机中;3.打开电源模块,开启电子门禁系统;4.用户通过键盘输入密码或刷合法的身份卡;5.系统接收到用户输入并进行核对;7. 核对失败时,蜂鸣器发出门禁错误提示音,LCD显示屏上显示“Access Denied”等拒绝信息。

实验结果显示,该电子门禁系统能够根据用户输入的密码或身份卡信息,进行核对并作出相应的操作。

当核对成功时,系统会解锁门禁并显示欢迎信息;当核对失败时,系统会发出错误提示并拒绝门禁。

四、实验总结本次实验通过设计和实现基于北邮数电实验的电子门禁系统,使得我们更加深入地了解了电子门禁系统的原理和应用。

通过实验,我们学会了利用键盘、蜂鸣器和LCD显示屏等器材,通过单片机控制,实现了一个简易的电子门禁系统。

北邮数电综合实验报告

北邮数电综合实验报告

点阵赛车游戏学院:信息与通信工程学院专业:通信工程班级:姓名:学号:班内序号:一、设计课题的任务要求用8×8点阵进行5秒倒计时显示,当5秒倒计时结束后,点阵显示赛道和赛车的初始位置,赛车游戏开始,并开始计时,用两个数码管显示时间。

用红色表示赛道,黄色表示赛车的初始位置,箭头表示赛车行进的方向。

用BTN1~BTN3三个按键分别控制赛车的左移、前进、右移,最终使赛车在不碰撞赛道的情况下走完全程,游戏结束,点阵显示“V”图案,数码管显示走完全程所耗费的时间。

当游戏时间超过59秒,或者赛车在行进过程中碰撞赛道,游戏失败,点阵显示“X”图案。

通过按键BTN0进行复位,控制点阵返回到初始状态。

二、系统设计1、设计思路这个过程乍一看蛮复杂的,但是当我经过仔细分析后发现,我的代码可以按照这个游戏的运行过程来写。

这个游戏分为4个状态,即倒计时,运行,成功和失败。

倒计时部分根据不同数字在点阵上的位置很容易设计出来,运行部分便是初始化赛道,赛车的位置,然后用按键来控制赛车运动,在这个过程中要不断判断赛车是否撞墙和到达终点,如果到达终点便进入第三个状态,成功,即显示“V”;若果撞墙便进入第四个状态,失败,即显示“X”。

在游戏运行的同时数码管还要计时。

2、总体框图(1)系统结构图(2)ASM 图译码显示器分频器控制器 计时器赛道及赛车CPRESET BTN1BTN2 BTN3启动NY是否碰到边界是否到达终点显示“V ”显示“×”计时移动是否复位是否复位YNNYNYN(4)功能模块图显示存储器控制器 方向控制模块计时器数码管分频器点阵显示倒计时移动显示“V ”显示“X ”3、模块设计(1)分频模块分频器:因为原有低频时钟为50MHZ,如果直接用这个时钟信号同时实现计时和显示部分,故需两个分频器,分别将时钟频率分为1Hz和1kHz,1Hz用来控制倒计时和游戏运行过程中的计时,1kHz用来控制点阵和数码管的显示。

北邮数电实验报告

北邮数电实验报告

北京邮电大学实验报告实验名称: 数电电路与逻辑设计实验学院:信息与通信工程学院班 级: 姓 名: 学 号: 班内序号:日期:一. 实验一:QuartusII 原理图输入法设计1. 实验名称和实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块 元。

(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号入信号。

(3)用3线-8线译码器(74LS138)和逻辑门设计实现函数F=A B C +A B C +AB C +A B C 。

2.实验原理图及波形图(1)半加器(2)全加器(3)74LS383.仿真波形图分析(1)半加器:输入为a,b,输出S,CO(进位)。

当ab都为0时,半加和s=0,进位端co=0。

当ab都为1时,半加和s=0,进位端co=1。

当a=1,b=0或a=0,b=1时,半加和s=1,进位端co=0。

(2)全加器:输入a,b,输出S,CO(进位),ci(低进位)。

当a=0,b=0,ci=0,输出s=0,co=0。

当a=0,b=1或a=1,b=0又ci=0,输出s=1,co=0。

当a=0,b=0,ci=1,输出s=1,co=0。

(3)74LS138输入A,B,C,输出为3。

四个输出对应F中的四个最小项,Y0、Y2、Y4、Y7,以实现函数功能。

二.实验二:用VHDL设计与实现组合逻辑电路1.实验名称和实验任务要求(1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能。

要求用拨码开关设定输入信号,7段数码管显示输出信号。

(2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个’1’时,输出为’1’,否则输出’0’,仿真验证其功能。

北邮数电上实验报告

北邮数电上实验报告

北京邮电大学数字电路与逻辑设计实验学院:班级:姓名:学号:班内序号:实验一Quartus II原理图输入法设计一、实验目的:(1)熟悉Quartus II原理图输入法进行电路设计和仿真。

(2)掌握Quartus II 图形模块单元的生成与调(3)熟悉实验板的使用二、实验所用器材:(1)计算机(2)直流稳压电源(3)数字系统与逻辑设计实验开发板三、实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

(2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。

(3)用VHDL语言实现全加器。

四、实验原理图和实验波形图1、全加器实验原理图。

2、全加器实验波形图。

五、仿真波形分析由仿真波形可以看出,当a,b,ci有两个或者两个以上为1时,产生进位,即co输出为1,而输出s则是当a,b,ci输入偶数个1时为0,奇数个1时为1,满足实验原理,仿真波形正确。

实验三VHDL组合逻辑电路设计一、实验目的:(1)熟悉Quartus II原理图输入法进行电路设计和仿真。

(2)掌握Quartus II 图形模块单元的生成与调(3)熟悉实验板的使用二、实验所用器材:(1)计算机(2)直流稳压电源(3)数字系统与逻辑设计实验开发板三、实验任务要求(1)用VHDL语言设计将8421计数器,分频器和数码管译码器连接使用,实现在指定数码管滚动显示0-9,其余数码管不亮,并带有清零功能,并下载到实验板显示计数结果。

四、实验VHDL代码和仿真波形图(1)VHDL代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xianshi isport(clk,clr:in std_logic;b:out std_logic_vector(6 downto 0); cat:out std_logic_vector(5 downto 0)); end xianshi;architecture a of xianshi issignal ctmp:std_logic_vector(3 downto 0); signal tmp:integer range 0 to 1249999; signal clktmp:std_logic;signal e:std_logic_vector(6 downto 0); beginp1:process(clk,clr)beginif clr='0' thentmp<=0;elsif clk'event and clk='1' thenif tmp=1249999 thentmp<=0;clktmp<=not clktmp;elsetmp<=tmp+1;end if;end if;end process p1;p2:process(clktmp)beginif clr='0' then ctmp<="0000";elsif(clktmp'event and clktmp='1')then if ctmp="1001"thenctmp<="0000";elsectmp<=ctmp+1;end if;end if;end process p2;p3:process(ctmp,clr)beginif(clr='0')then cat<="111111";elsecase ctmp iswhen"0000"=>e<="1111110";--0when"0001"=>e<="0110000";--1 when"0010"=>e<="1101101";--2 when"0011"=>e<="1111001";--3 when"0100"=>e<="0110011";--4 when"0101"=>e<="1011011";--5 when"0110"=>e<="1011111";--6 when"0111"=>e<="1110000";--7 when"1000"=>e<="1111111";--8 when"1001"=>e<="1111011";--9 when others=>e<="0000000"; end case;cat<="110111";end if;b<=e;end process p3;(2)仿真波形图五、仿真波形分析由仿真波形图可以看出,输出cat始终未110111,只有第三个数码管亮,输出b在循环变化,b控制数码管显示不同的数字,所以这是一个0~9滚动显示数码管的波形图。

北邮数电实验报告

北邮数电实验报告

北邮数电实验报告1. 实验目的本实验的目的是通过实际操作和实验验证,加深对数字电路的理解和掌握。

具体实验内容包括: 1. 实现各种基本逻辑电路(与门、或门、非门、异或门等)的电路设计。

2. 学习使用开关和LED灯进行数字信号输入和输出。

3. 掌握数字电路实验中常用的仪器设备的使用方法。

2. 实验器材和环境本实验所使用的器材和环境如下: - FPGA实验箱 - 数字逻辑集成电路(与门、或门、非门、异或门等) - 电源 - 接线板 - 数字电路实验仪器3. 实验步骤3.1 实验准备首先,我们需要将实验所需的器材连接好,包括将数字逻辑集成电路插入到FPGA实验箱上的插槽中,并将电源正确连接。

3.2 电路设计与布线根据实验要求,我们需要设计不同的基本逻辑电路。

比如,要设计一个与门电路,可以通过将两个输入端分别与两个开关连接,将输出端连接到一个LED灯上。

其他的逻辑电路同样可以设计类似的方式。

在设计和布线的过程中,需要注意保持电路的连通性,并避免出现短路等问题。

3.3 输入和输出信号设置根据实验要求,我们需要设置输入和输出信号。

可以通过控制开关的开合状态来设置输入信号,然后观察LED灯的亮灭情况来判断输出信号的状态是否符合预期。

3.4 实验数据记录和分析在实验过程中,我们需要记录每个逻辑电路的输入和输出信号状态,并进行分析。

可以通过绘制真值表或者逻辑门表来记录并分析数据。

4. 实验结果与分析根据实验步骤中记录的数据,我们可以得出实验结果,并进行进一步的分析。

比如,可以通过比对设计的逻辑电路输出和预期输出的差异,来判断实验是否成功完成。

5. 总结与反思通过本次实验,我深入了解和掌握了数字电路的基本原理和实验方法。

通过设计和实验验证,加深了对基本逻辑电路的理解,并熟悉了数字电路实验所使用的仪器设备。

在实验过程中,我遇到了一些问题,比如电路连接错误导致的信号不稳定等,但通过仔细调试和排查,最终解决了这些问题。

数电实验报告北邮(3篇)

数电实验报告北邮(3篇)

第1篇一、实验名称数字电路基础实验二、实验目的1. 熟悉数字电路的基本原理和组成。

2. 掌握常用数字电路元件(如逻辑门、触发器、计数器等)的功能和使用方法。

3. 培养动手能力和实验技能。

三、实验原理数字电路是由逻辑门、触发器、计数器等基本元件组成的。

逻辑门是数字电路的基本单元,用于实现基本的逻辑运算。

触发器是数字电路中的记忆单元,用于存储信息。

计数器是数字电路中的时序单元,用于实现计数功能。

四、实验仪器与设备1. 数字电路实验箱2. 万用表3. 导线4. 74LS00集成电路5. 74LS20集成电路五、实验内容1. 组合逻辑电路分析(1)搭建一个4输入与非门电路,输入端分别为A、B、C、D,输出端为Y。

(2)搭建一个2输入与非门电路,输入端分别为A、B,输出端为Y。

(3)搭建一个4输入与非门电路,输入端分别为A、B、C、D,输出端为Y。

要求输出Y为A、B、C、D的异或运算结果。

2. 触发器应用(1)搭建一个D触发器电路,输入端为D,输出端为Q。

(2)搭建一个JK触发器电路,输入端为J、K,输出端为Q。

(3)搭建一个计数器电路,使用D触发器实现一个4位二进制计数器。

3. 计数器应用(1)搭建一个十进制计数器电路,使用74LS90集成电路实现。

(2)搭建一个任意进制计数器电路,使用74LS90集成电路实现。

(3)搭建一个分频器电路,使用计数器实现。

六、实验步骤1. 根据实验原理和电路图,在实验箱上搭建实验电路。

2. 使用万用表测试电路的各个节点电压,确保电路连接正确。

3. 根据实验要求,输入不同的信号,观察输出结果。

4. 记录实验数据,分析实验结果。

七、实验结果与分析1. 组合逻辑电路分析(1)4输入与非门电路:当A、B、C、D都为0时,Y为1;否则,Y为0。

(2)2输入与非门电路:当A、B都为0时,Y为1;否则,Y为0。

(3)4输入与非门电路:当A、B、C、D中有奇数个1时,Y为1;否则,Y为0。

数字电路实验报告_北邮

数字电路实验报告_北邮

一、实验目的本次实验旨在通过实践操作,加深对数字电路基本原理和设计方法的理解,掌握数字电路实验的基本步骤和实验方法。

通过本次实验,培养学生的动手能力、实验技能和团队合作精神。

二、实验内容1. 实验一:TTL输入与非门74LS00逻辑功能分析(1)实验原理TTL输入与非门74LS00是一种常用的数字逻辑门,具有高抗干扰性和低功耗的特点。

本实验通过对74LS00的逻辑功能进行分析,了解其工作原理和性能指标。

(2)实验步骤① 使用实验箱和实验器材搭建74LS00与非门的实验电路。

② 通过实验箱提供的逻辑开关和指示灯,验证74LS00与非门的逻辑功能。

③ 分析实验结果,总结74LS00与非门的工作原理。

2. 实验二:数字钟设计(1)实验原理数字钟是一种典型的数字电路应用,由组合逻辑电路和时序电路组成。

本实验通过设计一个24小时数字钟,使学生掌握数字电路的基本设计方法。

(2)实验步骤① 分析数字钟的构成,包括分频器电路、时间计数器电路、振荡器电路和数字时钟的计数显示电路。

② 设计分频器电路,实现1Hz的输出信号。

③ 设计时间计数器电路,实现时、分、秒的计数。

④ 设计振荡器电路,产生稳定的时钟信号。

⑤ 设计数字时钟的计数显示电路,实现时、分、秒的显示。

⑥ 组装实验电路,测试数字钟的功能。

3. 实验三:全加器设计(1)实验原理全加器是一种数字电路,用于实现二进制数的加法运算。

本实验通过设计全加器,使学生掌握全加器的工作原理和设计方法。

(2)实验步骤① 分析全加器的逻辑功能,确定输入和输出关系。

② 使用实验箱和实验器材搭建全加器的实验电路。

③ 通过实验箱提供的逻辑开关和指示灯,验证全加器的逻辑功能。

④ 分析实验结果,总结全加器的工作原理。

三、实验结果与分析1. 实验一:TTL输入与非门74LS00逻辑功能分析实验结果表明,74LS00与非门的逻辑功能符合预期,具有良好的抗干扰性和低功耗特点。

2. 实验二:数字钟设计实验结果表明,设计的数字钟能够实现24小时计时,时、分、秒的显示准确,满足实验要求。

北邮 数电实验报告

北邮 数电实验报告

北邮数电实验报告北邮数电实验报告数电实验是电子信息科学与技术专业的一门重要课程,通过实验可以帮助学生巩固理论知识,培养实践能力。

本次实验我们进行了基于数字逻辑电路的设计与实现,探索了数字电路的原理和应用。

以下是对本次实验的总结和分析。

1. 实验目的本次实验的主要目的是学习数字逻辑电路的设计与实现,了解数字电路的基本原理和应用。

通过实验,我们可以熟悉数字电路的搭建过程,掌握数字电路的设计方法和测试技巧。

2. 实验原理本次实验主要涉及到的数字逻辑电路有与门、或门、非门、异或门等。

这些逻辑门可以通过逻辑运算实现各种功能,如加法器、减法器、比较器等。

我们需要根据实验要求,设计并搭建相应的数字电路,然后通过示波器等仪器进行测试,验证电路的正确性。

3. 实验步骤首先,我们根据实验要求,设计了一个4位全加器电路。

通过逻辑门的组合,实现了4位二进制数的加法运算。

然后,我们搭建了一个4位比较器电路,用于比较两个4位二进制数的大小关系。

最后,我们设计了一个4位减法器电路,实现了4位二进制数的减法运算。

4. 实验结果通过实验,我们成功搭建了4位全加器、4位比较器和4位减法器电路,并进行了测试。

实验结果表明,我们设计的电路能够正确地完成加法、比较和减法运算,符合预期的逻辑规则。

5. 实验总结通过本次实验,我们深入了解了数字逻辑电路的设计与实现过程。

我们学会了使用逻辑门进行电路设计,并通过实验验证了电路的正确性。

实验过程中,我们也遇到了一些问题,如电路连接错误、示波器读数不准确等。

但通过仔细分析和调试,我们最终解决了这些问题,并取得了满意的实验结果。

6. 实验感想数电实验是一门非常重要的实践课程,通过实验我们不仅巩固了理论知识,还培养了实践能力和解决问题的能力。

在实验过程中,我们需要细心观察、仔细分析,并灵活运用所学的知识。

实验不仅考验了我们的动手能力,还锻炼了我们的思维能力和团队合作精神。

7. 实验的意义数电实验的意义在于将理论知识与实际应用相结合,帮助我们更好地理解和掌握数字电路的原理和应用。

北邮数电综合实验报告

北邮数电综合实验报告

北邮数电综合实验报告北邮数电综合实验报告一、实验目的与背景数电综合实验是北邮电子信息工程专业的重要实践环节,旨在通过实际操作,巩固和应用学生在数字电路、模拟电路、通信原理等相关课程中所学到的理论知识。

本实验报告将对数电综合实验的内容、过程和结果进行详细描述和分析。

二、实验内容本次数电综合实验的主要内容为设计一个数字电子钟。

该电子钟具备显示时间、日期、闹钟功能,并能实现闹钟的设置、开关控制等基本操作。

实验中,我们需要使用数字集成电路、显示模块、按键开关、时钟模块等元件进行电路设计和搭建。

三、实验过程1. 硬件设计与连接根据实验要求,我们首先进行电路设计。

根据数字电子钟的功能需求,我们需要选取适当的集成电路和模块。

通过分析电路原理图,我们将各个模块进行连接,保证信号的正确传递和控制。

2. 软件编程与调试在硬件连接完成后,我们需要进行软件编程。

通过使用C语言或者Verilog等编程语言,我们可以实现数字电子钟的各项功能。

在编程过程中,我们需要考虑到时钟频率、显示模块的控制、按键开关的响应等因素。

3. 实验调试与测试完成软件编程后,我们需要进行实验调试和测试。

通过连接电源,观察电子钟的各项功能是否正常工作。

如果发现问题,我们需要进行调试,找出问题所在,并进行修复。

四、实验结果与分析经过实验调试和测试,我们成功实现了数字电子钟的设计和搭建。

该电子钟能够准确显示时间和日期,并能根据用户的设置进行闹钟的开关和响铃。

通过实验过程,我们对数字电路的原理和应用有了更深入的理解。

五、实验心得与收获通过参与数电综合实验,我深刻体会到了理论与实践的结合的重要性。

在实验中,我们需要将课堂上所学的知识应用到实际中,通过实际操作来巩固和加深对知识的理解。

同时,实验中也锻炼了我们的动手能力和解决问题的能力。

在实验过程中,我们还学会了团队合作的重要性。

在设计和搭建电路的过程中,我们需要相互配合,互相帮助,共同解决问题。

通过与同学们的合作,我们不仅解决了实验中遇到的各种问题,还加深了与同学们的交流和友谊。

北邮数电实验报告

北邮数电实验报告

数字电路与逻辑设计实验报告一、要求要求:设计制作一个简易计算器,实现最大输入两位十进制数字的加减乘运算。

基本要求:1、实现最大输入两位十进制数字的加减乘运算;八个拨码开关按两位8421bcd码输入。

2、能够实现多次连算(无优先级,从左到右计算结果),如12+34×56-78=2498。

3、最大长度以数码管最大个数为限,溢出报警。

提高要求:1、有正负数区分。

2、实现除法(不能整除时小数保留2位有效数字)。

3、其它扩展功能。

二、系统设计:设计思路:1、将该程序进行分模块设计。

可以将程序分为:主程序、译码模块和防抖模块。

其中,主程序负责将输入的数据进行存储,对数据进行运算,将数据输出到数码上等;防抖模块负责对按键输入的数防抖;译码模块负责对输入的数据进行译码(由8421bcd码转化为十进制的编码)。

2、分模块进行相应模块的编写。

3、对编好的模块进行测试。

4、编写主程序并进行调试。

总体框图:流程图:分块设计:(按实际操作的分块)输入模块:由符号开关和拨码开关构成。

采用序列存储的方式存储相应的输入。

输入译码模块:将输入的符号序列转化成先用状态,以便选取对应的计算方法;将输入的8421bcd码转化成相应的两位十进制数。

数码显示模块:将寄存器内的数进行输出到数码管上。

显示所输入的第一个数以及最后的结果。

计算模块:调用相应的计算方式,对所输入的数进行计算。

防抖模块:在用按键输入时,所得到的信号可能会有抖动,因此加入此抖动电路。

三、仿真波形及波形分析:分析(波形仿真时,为了方便观察,将8421bcd码输入方式,该为了十进制的直接输入方式,并将输出,有原来的数码管显示改成了直接数字显示)由图中可以看出,当输入12 ,按下“确定”,数字就输入到了寄存器中,输入“+”号(对应仿真中的fuhao“100000”),在输入一个数35,按下“确定”,该计算器就件寄存器中的数与第二次输入的数进行相加,得到结果47。

此时该结果又被直接保存到了寄存器中,继续输入运算符“-”(对应仿真中得fuhao“010000”),输入第三个数18,按下“确定”,计算器对其做减法运算,得到结果29,该结果又在寄存器中存储着。

北邮数电实验报告

北邮数电实验报告
counterout: out std_logic_vector(3 downto 0)
);
end component;
component seg is
port (
a: in std_logic_vector(3 downto 0);
b: out std_logic_vector(6 downto 0);
2.VHDL语言将复杂的门电路设计连接工作抽象成为了简单的、可读性强的类似自然语言的语句,极大地便利了数字逻辑电路的设计工作。
通过本课程的学习,我还认识到了学习英语的重要性。在随堂测验中,某同学提出因不会拼写英语单词而无法完成代码的编写,这真是令人尴尬。中国有句话,叫做“闷声发大财”。我们要积极学习英语,学习西方发达国家先进的文化知识,才能为中华民族的伟大复习事业做出一点微小的贡献。
参考文献
1.Volnei A Pedroni. VHDL数字电路设计教程[M]. 北京:电子工业出版社, 2013.
2.袁东明, 史晓东, 陈凌霄. 现代数字电路与逻辑设计实验教程[M]. 北京:北京邮电大学出版社, 2013.
else
nextnum <= nextnum + 1;
end if;
end if;
end process;
使得不在时钟沿if语句外修改nextnum寄存器,代码编译通过并运行正确。
总结和结论
通过本次数字实验课,我深刻地认识到了数字电路的巨大魅力。
通过VHDL语言的学习,明白了VHDL的几个特性:
1.VHDL语言是一种硬件编程语言。它有着与高级语言不同的性质。VHDL语言本质上是并发运行的语言,是用来描述硬件行为的语言,和高级软件语言行为截然不同;
用VHDL设计与实现组合逻辑电路

北邮数电综合实验报告

北邮数电综合实验报告

北邮数电综合实验报告1. 引言本报告旨在总结和分析北邮数电综合实验的结果和过程。

该实验旨在培养学生的综合能力,包括数字电路设计、程序编写和硬件调试。

本文将按照实验步骤的顺序,逐步介绍实验的内容和结果。

2. 实验准备在开始实验之前,我们需要准备以下材料和设备:•Altera Quartus II软件:用于数字电路设计和仿真。

•FPGA(现场可编程门阵列)开发板:用于实际测试和验证设计。

•USB数据线:用于将设计传输到FPGA开发板上。

•数字电路实验板:用于连接外部电路和FPGA开发板。

3. 实验步骤3.1 实验一:基本逻辑门电路设计在本实验中,我们首先设计了基本逻辑门电路,包括与门、或门和非门。

通过使用Quartus II软件,我们可以绘制原理图并进行逻辑仿真。

在验证正确性后,将设计下载到FPGA开发板上进行物理验证。

3.2 实验二:二进制加法器设计在第二个实验中,我们设计了一个4位二进制加法器。

通过使用逻辑门和触发器,我们可以将两个4位二进制数相加,并输出结果。

使用Quartus II软件进行综合、布线和仿真,然后将设计下载到FPGA开发板上进行物理验证。

3.3 实验三:7段数码管驱动器设计在本实验中,我们设计了一个7段数码管驱动器。

通过使用逻辑门和触发器,我们可以将4位二进制数转换为相应的7段显示。

使用Quartus II软件进行综合、布线和仿真,然后将设计下载到FPGA开发板上进行物理验证。

3.4 实验四:有限状态机设计在最后一个实验中,我们设计了一个简单的有限状态机。

该状态机可以通过输入信号的变化而改变其状态,并根据当前状态和输入信号来产生输出。

使用Quartus II软件进行综合、布线和仿真,然后将设计下载到FPGA开发板上进行物理验证。

4. 结果与讨论通过对实验的各个步骤进行详细的设计和验证,我们成功完成了北邮数电综合实验。

通过使用Quartus II软件进行仿真和物理验证,我们验证了设计的正确性和可行性。

北邮大二下 数电实验报告

北邮大二下 数电实验报告

北京邮电年夜学之迟辟智美创作数字电路与逻辑设计实验学院:班级:姓名:学号:班内序号:实验一一、实验名称Quartus II 原理图输出法设计(一)半加器二、实验任务要求用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单位.三、设计思路和过程◎设计思路半加器电路是指对两个输入数据位进行加法,输出一个结果位和进位,不产生进位输入的加法器电路,是实现两个一位二进制数的加法运算电路.数据输入:被加数AI、加数BI数据输出:半加和SO、进位CO◎ 设计过程 (1)列出真值表*表中两个输入是加数AI 和BI ,输出有一个是和SO ,另一个是进位CO.(2)根据真值表写出输出逻辑表达式该电路有两个输出端,属于多输出组合数字电路,电路的逻辑表达式如下:BI AI SO ⊕=,BI AI CO ⋅=.所以,可以用一个两输入异或门和一个两输入与门实现. ◎实验原理图四、仿真波形图及分析根据仿真波形比较半加器真值表,可以确定电路实现了半加器的功能.但我们也可以发现输出SO 呈现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲.(二)全加器二、实验任务要求用实验内容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号. 三、设计思路和过程 ◎设计思路全加器与半加器的区别在于全加器有一个低进位CI ,从外部特性来看,它是一个三输入两输出的器件. ◎设计过程(1)全加器的真值表如下*其中AI 为被加数,BI 为加数,CI 为相邻低位来的进位数.输出本位和为SO ,向相邻高位进位数为CO. (2)根据真值表写出逻辑表达式:CI BI AI SO ⊕⊕=,BI AI CI BI AI CO ⋅+⋅⊕=)(根据逻辑表达式,可以知道只要在半加器的基础上再加入一个异或门、一个两输入与门和两输入或门即可实现全加器.◎实验原理图四、仿真波形图及分析根据仿真波形比较全加器真值表,可以确定电路实现了全加器的功能.(三)3线—8线译码器二、实验任务要求用3线—8线译码器(74LS138)和逻辑门设计实现函数CBF++=,仿真验证其功能,并下载到实验板测+AACBABCBAC试.要求用拨码开关设定输入信号,发光二极管显示输出信号.三、设计思路和过程◎设计思路74LS138是一个3线—8线的译码器,其输出为低电平有效,使能端G1为高电平有效,G2、G3为低电平有效,当其中一个为高电平,输出端全部为 1.在中规模集成电路中译码器的几种型号里,74LS138使用最广泛.要实现的函数用最小项暗示如下:F(C,B,A)=∑m(0,2,4,7)只要将相应输出用一个四输入与非门实现即可.◎注意(1)74LS138的输出是低电平有效,故实现逻辑功能时,输出端不成接或门及或非门(因为每次仅一个为低电平,其余皆为高电平);(2)74LS138与前面分歧的是,其有使能端,故使能端必需加以处置,否则无法实现需要的逻辑功能. ◎实验原理图四、仿真波形图及分析当且仅当ABC 输入为000、010、100、111时,F=1;可知电路实现了函数CBA A B C A B C A B C F +++=.实验二一、实验名称VHDL 组合逻辑电路设计(一)奇校验器二、实验任务要求用VHDL 语言设计实现一个4位二进制奇校验器,输入奇数个‘1’时,输出为‘1’,否则输出为‘0’,仿真实现验证其功能,并下载到实验板测试.要求用拨码开关设定输入信号,发光二极管显示输出信号.三、设计思路和过程输入元素:a3,a2,a1,a0 输出元素:b四、VHDL法式LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY hy_check ISPORT(a: IN STD_LOGIC_VECTOR (3 downto 0); b: OUT STD_LOGIC);end hy_check;ARCHITECTURE hy_arch OF hy_check ISPROCESS(a)BEGINCASE a IS WHEN"0000" => b <='0'; WHEN"0001" => b <='1'; WHEN"0010" => b <='1'; WHEN"0011" => b <='0'; WHEN"0100" => b <='1'; WHEN"0101" => b <='0'; WHEN"0110" => b <='0'; WHEN"0111" => b <='1'; WHEN"1000" => b <='1'; WHEN"1001" => b <='0'; WHEN"1010" => b <='0'; WHEN"1011" => b <='1'; WHEN"1100" => b <='0'; WHEN"1101" => b <='1'; WHEN"1110" => b <='1'; WHEN"1111" => b <='0'; END CASE;END PROCESS;五、仿真波形图及分析根据仿真波形比较奇校验码的真值表,可以确定电路实现了奇校验器的功能.(二)数码管译码器二、实验任务要求用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验板测试.要求用拨码开关设定输入信号,7段数码管显示输出信号.三、设计思路和过程输入元素:A3—A0输出元素:B6—B0,C5—C0*真值表由数码管显示的原理确定.四、VHDL法式LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY hy_encoder1 ISPORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); C:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)); END hy_encoder1;ARCHITECTURE encoder_arch OF hy_encoder1 IS BEGINPROCESS(A)BEGINC<="101111";CASE A ISWHEN"0000"=>B<="1111110";--0 WHEN"0001"=>B<="0110000";--1 WHEN"0010"=>B<="1101101";--2 WHEN"0011"=>B<="1111001";--3 WHEN"0100"=>B<="0110011";--4WHEN"0101"=>B<="1011011";--5WHEN"0110"=>B<="1011111";--6WHEN"0111"=>B<="1110000";--7WHEN"1000"=>B<="1111111";--8WHEN"1001"=>B<="1111011";--9WHEN OTHERS=>B<="ZZZZZZZ";END CASE;END PROCESS;END encoder_arch;五、仿真波形图及分析根据仿真波形比较数码管译码器的真值表,可以确定实现了数码管译码器的功能.(三)8421码到余三码二、实验任务要求用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能,并下载到实验板测试.要求用拨码开关设定输入信号,发光二极管显示输出信号..三、设计思路和过程输入数据:A3—A0输出数据:B3—B0*余三码就是在8421码的基础上+3.四、VHDL法式LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY hy_trans1 ISPORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END hy_trans1;ARCHITECTURE trans_ex3 OF hy_trans1 IS BEGINPROCESS(A)BEGINCASE A ISWHEN "0000"=>B<="0011";WHEN "0001"=>B<="0100";WHEN "0010"=>B<="0101";WHEN "0011"=>B<="0110";WHEN "0100"=>B<="0111";WHEN "0101"=>B<="1000";WHEN "0110"=>B<="1001";WHEN "0111"=>B<="1010";WHEN "1000"=>B<="1011";WHEN "1001"=>B<="1100";WHEN OTHERS=>B<="ZZZZ";END CASE;END PROCESS;END trans_ex3;五、仿真波形图及分析根据仿真波形比较真值表,可以确定电路实现了8421码到余三码的转换.实验三一、实验名称VHDL时序逻辑电路设计(一)分频器二、实验任务要求用VHDL语言设计实现一个分频输出信号占空比为50%的分频器.要求在Quartus II 平台上设计法式并仿真验证设计.三、设计思路和过程◎设计思路确定分频系数N后,以21-N为计数标准,一旦计数满21-N,输出n Q.◎设计过程选取N=20,以0-4计数,到4取反.输入元素:clk,clear输出元素:clk_out四、VHDL法式LIBRARY IEEE;USE IEEE. STD_LOGIC_1164. ALL;USE IEEE. STD_LOGIC_UNSIGNED. ALL; ENTITY hy_div ISPORT(clk,clear:IN STD_LOGIC;clk_out:OUT STD_LOGIC);END hy_div;ARCHITECTURE a OF hy_div ISSIGNAL tmp:INTEGER RANGE 0 TO 9; SIGNAL clktmp:STD_LOGIC;BEGINPROCESS(clear,clk)BEGINIF clear='0' THENtmp<=0;ELSIF clk'event AND clk='1' THENIF tmp=9 THENtmp<=0; clktmp<=NOT clktmp;ELSE tmp<=tmp+1;END IF;END IF;END PROCESS;clk_out<=clktmp;END a;五、仿真波形图及分析分析仿真波形,可以确定电路实现了20倍分频的功能.(二)十进制计数器二、实验任务要求用VHDL语言设计实现一个带异步复位的8421码十进制计数器,仿真验证其功能.三、设计思路和过程◎设计思路满10异步复位.◎设计过程输入元素:clk,clear输出元素:q3,q2,q1,q0四、VHDL法式LIBRARY IEEE;USE IEEE. STD_LOGIC_1164. ALL;USE IEEE. STD_LOGIC_ARITH. ALL; ENTITY hy_count ISPORT(clk,clear:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END hy_count;ARCHITECTURE a OF hy_count ISSIGNAL cn:INTEGER RANGE 0 TO 9; BEGINPROCESS(clk)BEGINIF clear='0' THENcn<=0;elsIF(clk'event AND clk='1') THENIF cn=9 THENcn<=0;ELSE cn<=cn+1;END IF;END IF;END PROCESS;q<=CONV_STD_LOGIC_VECTOR(cn,4);END a;五、仿真波形图及分析分析仿真波形,可以确定电路实现了十进制计数器的功能.(三)十进制计数器的数码管显示二、实验任务要求将2中的8421码十进制计数器下载到实验板测试.要求用按键设定输入信号,发光二极管显示输入信号.三、设计思路和过程◎设计思路此系统中应包括分频器、十进制计数器、数码管译码器.◎设计过程输入元素:ain,bin,cin输出元素:cout(0-6),cat(0-5)四、VHDL法式LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY hy_union ISPORT(ain:IN STD_LOGIC;bin:IN STD_LOGIC;cin:IN STD_LOGIC;cout:OUT STD_LOGIC_VECTOR(6 downto 0); cat:OUT STD_LOGIC_VECTOR(5 downto 0) );end hy_union;ARCHITECTURE zonghe_arch OF hy_union IS COMPONENT div50m——分频器PORT(clk_in : in std_logic;clk_out : out std_logic);END COMPONENT;COMPONENT hy_count——计数器PORT(clk,clear:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 downto 0));END COMPONENT;COMPONENT yima——数码管译码器PORT(a:IN STD_LOGIC_VECTOR(3 downto 0);b:OUT STD_LOGIC_VECTOR(6 downto 0);c:OUT STD_LOGIC_VECTOR(5 downto 0));end COMPONENT;SIGNAL d,e:STD_LOGIC;SIGNAL f:STD_LOGIC_VECTOR(3 downto 0);BEGINu1:div50m PORT MAP(clk_in=>ain,clk_out=>d);u2:hy_count PORT MAP(clk=>d,clear=>cin,q=>f);u3:yima PORT MAP(a=>f,b=>cout,c=>cat);END zonghe_arch;实验四一、实验名称数码管扫描显示控制器设计与实现二、实验任务要求用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这六个分歧的数字图形到六个数码管上,仿真验证其功能,并下载到实验板测试.三、设计思路和过程◎设计思路多个数码管静态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环依次点亮多个数码管,利用人眼的视觉暂留现象,只要扫描的频率年夜于50Hz,将看不到闪烁现象.当闪烁显示的发光二极管闪烁频率较高时,我们将观察到继续点亮的现象.同理,当多个数码管依次显示,当切换速度足够快时,我们将观察到所有数码管都是同时在显示.一个数码管要稳定显示要求显示频率年夜于50Hz,那么六个数码管则需要50*6=300Hz以上才华看到继续稳定点亮的现象.◎设计过程数据输入:clk,clear数据输出:B(0-6),C(0-5)四、VHDL法式LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HY ISPORT(clk,clear:IN STD_LOGIC;B:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);C:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));END HY;ARCHITECTURE behave OF HY ISSIGNAL tmp:INTEGER RANGE 0 TO 5;SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);——count决定哪个数码管有示数SIGNAL f_temp:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINp1:PROCESS(clk)——排次第BEGINIF clk'EVENT AND clk='1' THENIF tmp=5 THENtmp<=0;ELSEtmp<=tmp+1;END IF;END IF;END PROCESS p1;p2:PROCESS(tmp)——数码管显示数BEGINIF (clear='0')THEN count<="111111";CASE tmp IS——依次逐个输出0-5WHEN 0=>count<="011111";f_temp<="1111110";--0WHEN 1=>count<="101111";f_temp<="0110000";--1WHEN 2=>count<="110111";f_temp<="1101101";--2WHEN 3=>count<="111011";f_temp<="1111001";--3WHEN 4=>count<="111101";f_temp<="0110011";--4WHEN 5=>count<="111110";f_temp<="1011011";--5END CASE;else count<="111111";END IF;END PROCESS p2;C<=count;B<=f_temp;END behave;五、仿真波形图分析波形易知,C确实实现了六个数码管的交替显示,B则控制着各对应管输出0-5相应的数字.数电实验总结【故障和问题分析】故障一:仿真时设置clk脉冲宽度为1us,报错解决法子:经检查发现,未更改end time设置,把end time重置为50us.故障二:下载后,按键没有反应.解决法子:检验相应管脚是否设置正确,检查管脚是否失效,下载把持是否正确.故障三:数码管显示乱码.解决法子:一开始我直接检查代码,检查了好久都没发现毛病,后来换了个实验板,重新下载后就好了.另:实验过程中,唯一的问题是对多输入电路,静态功能冒险还是会存在的,在这种情况下应该加入选通脉冲来消除静态功能冒险.【总结与结论】本学期的四次实验均较为简单,只要认真听讲、细心把持,基本没有太年夜的问题.难点主要是对VHDL语言的学习和对Quartus II软件的熟悉. 起初接触Quartus II,感觉毫无头绪.在预习过课本之后,再结合数字电路理论课上所学的知识,终于有了一些思路.顺着这思路,对所求元件进行了相应的功能设计,然后开始了相应代码的编写.在编写过程中,遇到了很多关于VHDL语言的困扰,经过不竭的调整和适应,终于掌握了相关的语法规则.通过这次实验,我收获最多的还是熟悉了数字电路的设计过程,之前所学习的还是理论上的知识.理论固然重要,但一味纸上谈兵,是不成能掌握实际技能的.希望今后能够多一些类似的实验、实践活动的机会,让我们提高入手能力、培养实用技能.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京邮电大学实验报告实验名称:数电实验学院:信息与通信工程学院班级:姓名:学号:日期:2015年5月目录1、实验一 (4)(1)实验名称和任务要求 (4)(2)原理图 (4)(3)仿真波形及分析 (5)2、实验二 (5)(1)实验名称和任务要求 (5)(2)VHDL代码 (6)(3)模块连接图 (8)(4)仿真波形及分析 (8)3、实验三 (9)(1)实验名称和任务要求 (9)(2)VHDL代码 (10)(3)连接VHDL代码 (11)(4)图形模块 (12)(5)仿真波形及分析 (12)(6)端口说明 (13)4、实验四 (13)(1)实验名称和任务要求 (13)(2)VHDL代码 (13)(3)图形模块 (16)(4)仿真波形及分析 (18)(5)端口说明 (21)5、故障及问题分析 (21)6、总结 (21)一:实验一1、实验名称和任务要求实验名称:Quartus2原理图输入法设计实验目的:1、熟悉用Quartus2原理图输入法进行电路设计和仿真2、掌握Quartus2图形模块单元的生成与调用3 、熟悉实验板的使用实验内容:1 、用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

2 、用实验内容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。

3 、用3线-8线译码器(74LS138)和逻辑门设计实现函数F=/C/B/A+/CB/A+C/B/A+CBA,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

2、原理图(1)半加器(2)全加器(3)译码器3、仿真波形及分析仿真波形:(1)全加器(2)译码器分析:(1)全加器:当全加器2个输入端都为0时,即a=b=0时,若低位进位输入cnp=0,则Si=0,进位输出端cn=0。

若低位进位输入cnp=1,则Si=1,进位输出端cn=0.当全加器2个输入端有一个为1时,即a =0,b=1或a=1,b=0时,若低位进位输入cnp=0,则Si=1,进位输出端cn=0。

若低位进位输入cnp=1,则S=0,进位输出端cn=1.当全加器2个输入端都为1时,即a=b=1时,若低位进位输入cnp=0,则Si=0,进位输出端cn=1。

若低位进位输入cnp=1,则Si=1,进位输出端cn=1.(2)译码器:当输入zhi=0时,译码器不工作,当输入为1时,译码器正常工作;当输入信号a[2]a[1]a[0]=000,010,100,111时输出f=1;其他情况f=0。

二:实验二1、实验名称和任务要求实验名称: VHDL组合逻辑电路设计实验目的:1、熟悉用VHDL语言设计组合逻辑电路的方法2、熟悉用Quartus2文本输入法进行电路设计3、熟悉不同的编码及其之间的转换实验内容:1 、用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,7段数码管显示输出信号。

2 、用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。

3 、用VHDL语言设计实现一个4位二进制奇校检验器,输入奇数个‘1’时,输出为‘1’,否则输出为‘0’,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。

2、VHDL代码(1)数码管library ieee;use ieee.std_logic_1164.all;entity seg isport(a:in std_logic_vector (3 downto 0);b:out std_logic_vector (6 downto 0));end seg;architecture sega of seg isbeginprocess(a)begincase a iswhen "0000"=>b<="1111110";--0when "0001"=>b<="0110000";--1when "0010"=>b<="1101101";--2when "0011"=>b<="1111001";--3when "0100"=>b<="0110011";--4when "0101"=>b<="1011011";--5when "0110"=>b<="1011111";--6when "0111"=>b<="1110000";--7when "1000"=>b<="1111111";--8when "1001"=>b<="1111011";--9when others =>b<="0000000";end case;end process;end;(2)8421码转换为余3码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity guo isport (a:in std_logic_vector (3 downto 0);b:out std_logic_vector (3 downto 0));end;architecture guoa of guo isbeginprocess(a)beginif a<"1010"then b<=a+"0011";else b<="0000";end if;end process;end;(3)奇校检验器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jing isport(a:in std_logic_vector (3 downto 0);b:out std_logic);end jing;architecture jinga of jing isbeginprocess(a)beginif a ="0001" then b<='1';elsif a = "0010"then b<='1';elsif a ="0100" then b<='1';elsif a ="1000"then b<='1';elsif a ="1110" then b<='1';elsif a ="1101" then b<='1';elsif a ="1011"then b<='1';elsif a ="0111" then b<='1';else b<='0';end if;end process;end;3、模块连接图4、仿真波形及分析分析:8421码转余3码:当输入a[3]a[2]a[1]a[0]小于或等于1001时,输出b[3]b[2]b[1]b[0]=a[3]a[2]a[1]a[0]+0011,其余情况输出为0000;奇校检验器:当输入a[3]a[2]a[1]a[0]为0001,0010,0100,1000,0111,1011,1101,1110时,输出b=1,其余输出为0;数码管:利用输出b[7]与offset、offset4、offset5、offset6、offset7控制只有一个数码管亮,当输入a[3]a[2]a[1]a[0]=0000时输出b[6]b[5]b[4]b[3]b[2]b[1]b[0]=1111110;a[3]a[2]a[1]a[0]=0010时输出b[6]b[5]b[4]b[3]b[2]b[1]b[0]=0110000;a[3]a[2]a[1]a[0]=0011时输出b[6]b[5]b[4]b[3]b[2]b[1]b[0]=1101101;a[3]a[2]a[1]a[0]=0100时输出b[6]b[5]b[4]b[3]b[2]b[1]b[0]=1111001;a[3]a[2]a[1]a[0]=0101时输出b[6]b[5]b[4]b[3]b[2]b[1]b[0]=0110011;a[3]a[2]a[1]a[0]=0110时输出b[6]b[5]b[4]b[3]b[2]b[1]b[0]=1011011;a[3]a[2]a[1]a[0]=0111时输出b[6]b[5]b[4]b[3]b[2]b[1]b[0]=1110000;a[3]a[2]a[1]a[0]=1000时输出b[6]b[5]b[4]b[3]b[2]b[1]b[0]=1111111;a[3]a[2]a[1]a[0]=1001时输出b[6]b[5]b[4]b[3]b[2]b[1]b[0]=1111011;其他情况输出为0000000。

三:实验三1、实验名称和任务要求实验名称: VHDL时序逻辑电路设计实验目的:1、熟悉用VHDL语言设计时序逻辑电路的方法2、熟悉计数器的设计与应用3、熟悉用Quartus2文本输入法进行电路设计4、熟悉不分频器懂的设计方法实验内容:1 、用VHDL语言设计实现一个带异步复位的8421码十进制计数器,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号。

2 、用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器。

要求在Quartus2平台上设计程序并仿真验证设计。

2、VHDL代码(1)计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY guo ISPORT(CLK,CLEAR:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END guo;ARCHITECTURE a OF guo ISSIGNAL temp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLEAR)BEGINIF CLEAR='1' THEN temp<="0000";ELSIF(CLK'EVENT AND CLK='1') THENIF temp<"1001" THEN temp<=temp+1;ELSE temp<="0000";END IF;END IF;END PROCESS;Q<=temp;END a;(2)分频器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jing isport(clk:in std_logic;clear:in std_logic;q:out std_logic);end jing;architecture jinga of jing issignal b :integer range 0 to 5;signal cl:std_logic;beginprocess(clear,clk)beginif clear='1' thenb<=0;cl<='0';elsif clk' event and clk='1' thenif b=5 then b<=0;cl<=not cl;elseb<=b+1;end if;end if;end process;q<=cl;end jinga;3、连接VHDL代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY feng ISPORT(feng_clear,feng_rest,feng_clk:in STD_LOGIC;feng_out:out STD_LOGIC_VECTOR(6 DOWNTO 0);feng:out STD_LOGIC_VECTOR(5 DOWNTO 0));END feng;ARCHITECTURE abc OF feng ISCOMPONENT jingPORT(clk:IN STD_LOGIC;clear:IN STD_LOGIC;q:OUT STD_LOGIC);END COMPONENT;COMPONENT guoPORT(clk,clear:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT segPORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);b:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COMPONENT;SIGNAL x:STD_LOGIC;SIGNAL y:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINu1:jing PORT MAP(clear=>feng_clear,clk=>feng_clk,q=>x); u2:guo PORT MAP(clk=>x,clear=>feng_rest,q=>y);u3:seg PORT MAP(a=>y,b=>feng_out);feng<="111110";END abc;4、图形模块5、仿真波形及分析(1)计数器(2)分频器(3)组合分析:计数器:当clear=1时,输出置0;当clear=0时,计数器开始计数,从0000计数到1001,当输出为1001时,输出0000;分频器:当clear=1时,输出为0;当clear为0时,每6个时钟变换一次状态。

相关文档
最新文档