北邮数字电路与逻辑设计实验上 综合实验报告

合集下载

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

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

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

基本要求: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行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

北邮数字电路与逻辑设计实验-实验报告(上)

北邮数字电路与逻辑设计实验-实验报告(上)

北京邮电大学电路实验中心<数字电路与逻辑设计实验(上)>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx)学号: 2xxx实验时间: xxxx评定成绩:目录实验1 Quartus II 原理图输入法设计与实现 (3)一、实验目的 (3)二、实验所用器材 (3)三、实验任务要求 (3)四、实验原理图 (3)五、实验仿真波形图及分析 (4)实验2 用VHDL 设计与实现组合逻辑电路 (5)一、实验目的 (5)二、实验所用器材 (5)三、实验任务要求 (5)四、VHDL代码 (5)五、实验仿真波形图及分析 (7)实验3 用VHDL 设计与实现时序逻辑电路 (8)一、实验目的 (8)二、实验所用器材 (8)三、实验任务要求 (8)四、模块端口说明及连接图 (8)五、VHDL代码 (9)六、实验仿真波形图及分析 (10)实验4 用VHDL 设计与实现数码管动态扫描控制器 (10)一、实验目的 (10)二、实验所用器材 (11)三、实验任务要求 (11)四、模块端口说明及连接图 (11)五、VHDL代码 (11)六、实验仿真波形图及分析 (15)故障及问题分析 (16)总结和结论 (17)实验1 Quartus II 原理图输入法设计与实现一、实验目的(1)熟悉用Quartus II原理图输入法进行电路设计和仿真;(2)掌握Quartus II 图形模块单元的生成与调用;(3)熟悉实验板的使用。

二、实验所用器材(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。

三、实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

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

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

北京邮电大学数字电路实验报告

北京邮电大学数字电路实验报告

北京邮电大学数字电路与逻辑设计实验实验报告实验名称:QuartusII原理图输入法设计与实现学院:北京邮电大学班级:姓名:学号:一.实验名称和实验任务要求实验名称:QuartusII原理图输入法设计与实现实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。

⑵掌握QuartusII图形模块单元的生成与调用;⑶熟悉实验板的使用。

实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑门设计实现一个半加器,生成新的半加器图像模块。

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

⑶用3线—8线译码器(74L138)和逻辑门实现要求的函数:CBAF+C+=,仿真验证其+BCBAAABC功能,,并能下载到实验板上进行测试,要求用拨码开关设定输入信号,发光二级管显示输出信号。

二.设计思路和过程半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。

a表示加数,b表示被加数,s表示半加和,co表示向高位的进位。

⑵由数字电路与逻辑设计理论知识可知b a s ⊕=;b a co •=选择两个逻辑门:异或门和与门。

a,b 为异或门和与门的输入,S 为异或门的输出,C为与门的输出。

(3)利用QuartusII 仿真实现其逻辑功能,并生成新的半加器图形模块单元。

(4)下载到电路板,并检验是否正确。

全加器的设计实现过程:⑴全加器可以由两个半加器和一个或门构成。

全加器有三个输入值a,b,ci ,两个输出值s,co :a 为被加数,b 为加数,ci 为低位向高位的进位。

⑵全加器的逻辑表达式为:c b a s ⊕⊕=b a ci b a co •+•⊕=)(⑶利用全加器的逻辑表达式和半加器的逻 辑功能,实现全加器。

用3线—8线译码器(74L138)和逻辑门设计实现函数CBA A B C A B C A B C F +++=设计实现过程:⑴利用QuartusII 选择译码器(74L138)的图形模块单元。

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

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

北京邮电大学数字电路与逻辑设计实验发光二极管走马灯的电路设计与实现实验报告学院:信息与通信工程学院班级:27姓名:付莹学号:班内序号:23【实验目的】(1)进一步了解时序电路描述方法;(2)熟悉状态机的设计方法。

【实验所用仪器及元器件】(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。

【实验任务要求】设计并实现一个控制8个发光二极管亮灭的电路,仿真验证其功能,并下载到实验板测试。

(1)单点移动模式:一个点在8个发光二极管上来回的亮(2)幕布式:从中间两个点,同时向两边依次点亮直到全亮,然后再向中间点灭,依次往复。

【实验设计思路及过程】(1)设计思路实验要求有两个,一个是单点移动模式,一个是幕布式。

通过CASE-WHEN 语句实现走马灯的变化。

分别定义一个8个变量的数据类型和一个13变量的数据类型,表示一个周期内的灯的变化,并设计一个变量在两种状态间进行切换。

此时,需要把所有状态罗列到case-when中去。

(2)VHDL代码LIBRARY IEEE;USE ABC ISPORT(A,CLK,RESET:IN STD_LOGIC;DENG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ABC;ARCHITECTURE A OF ABC ISTYPE STATE_TEMP is(s0,s1,s2,s3,s4,s5,s6,s7);TYPE STATE_TEMP1 is(s0,s1,s2,s3,s4,s5,s6,s7,s00,s01,s02,s03,s04,s05);signal STATE:STATE_TEMP;signal STATE1:STATE_TEMP1;BEGINPROCESS(CLK,RESET)BEGINIF RESET='1' THENDENG<="00000000";ELSIF(CLK'EVENT AND CLK='0')THENIF A='0'THEN --KAIMUSHICASE STATE1 ISWHEN s0 => STATE1<=s1;DENG<="";WHEN s1 => STATE1<=s2;DENG<="01000000";WHEN s2 => STATE1<=s3;DENG<="00100000";WHEN s3 => STATE1<=s4;DENG<="00010000";WHEN s4 => STATE1<=s5;DENG<="00001000";WHEN s5 => STATE1<=s6;DENG<="00000100";WHEN s6 => STATE1<=s7;DENG<="00000010";WHEN s7 =>STATE1<=s00;DENG<="00000001";WHEN s00=>STATE1<=s01;DENG<="00000010";WHEN s01=>STATE1<=s02;DENG<="00000100";WHEN s02=>STATE1<=s03;DENG<="00001000";WHEN s03=>STATE1<=s04;DENG<="00010000";WHEN s04=>STATE1<=s05;DENG<="00100000";WHEN s05=>STATE1<=s0;DENG <="01000000";END CASE;ELSECASE STATE ISWHEN s0 => STATE<=s1;DENG<="00011000";WHEN s1 => STATE<=s2;DENG<="00111100";WHEN s2 => STATE<=s3;DENG<="01111110";WHEN s3 => STATE<=s4;DENG<="";WHEN s4 => STATE<=s5;DENG<="01111110";WHEN s5 => STATE<=s6;DENG<="00111100";WHEN s6 => STATE<=s7;DENG<="00011000";WHEN s7 => STATE<=s0;DENG<="00000000";END CASE;END IF;END IF;END PROCESS;END A;【仿真波形及分析】1.仿真波形(1)单点移动式(2)幕布式(3)复位信号2.波形分析(1)单点移动式由图可以看出,当A为0时程序实现单点移动功能,如图所示DENG[7]开始亮,之后依次为DENG[6], DENG[5], DENG[4], DENG[3], DENG[2],DENG[1], DENG[0],然后DENG[1]也开始亮,依此类推,实现了功能要求(2)幕布式由图可以看出,当A为1时,如图所示,先是中间的两个灯DENG[4], DENG[5]亮,然后扩展到四个灯亮DENG[3]至DENG[6]亮,接下来是DENG[2]~DENG[7]亮,最后全亮,接着DENG[2]~DENG[7]亮,继而循环下去。

北邮数电综合实验报告

北邮数电综合实验报告

北京邮电大学数字电路与逻辑设计实验学院:信息与通信工程学院班级: 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双色点阵模拟风扇转动、风扇转动分四个档位(每个档位对应“四种”状态)、通过环境温度控制档位的自动选择、设计定时模式、开关机状态。

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

北邮数字电路与逻辑设计实验上-综合实验报告

北邮数字电路与逻辑设计实验上-综合实验报告

数字电路与逻辑设计实验综合实验报告目录一、实验题目和任务要求 (3)(一)Quartus II原理图输入法设计与实现 (3)(二)用VHDL设计与实现组合逻辑电路 (3)(三)用VHDL设计与实现时序逻辑电路 (3)(四)用VHDL设计与实现相关电路 (4)二、实验内容、原理图、VHDL代码和仿真波形分析 (4)(一)Quartus II原理图输入法设计与实现 (4)1. 半加器 (4)2. 全加器 (5)3. 3-8线译码器 (6)(二)用VHDL设计与实现组合逻辑电路 (6)1. 数码管译码器 (6)2. 8421码转余3码 (6)3. 奇校验器 (7)(三)用VHDL设计与实现时序逻辑电路 (8)1. 8421十进制计数器 (8)2. 分频器 (8)3. 组合电路实现数码管0到9循环显示 (8)(四)用VHDL设计与实现相关电路 (13)1. 数码管动态扫描控制器 (13)2. 点阵行扫描控制器 (16)三、故障及问题分析 (20)四、总结和结论 (21)五、参考文献 (21)一、实验题目和任务要求(一)QuartusII原理图输入法设计与实现实验题目Quartus II原理图输入法设计与实现任务要求1)用逻辑门设计一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

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

3)用3-8线译码器和逻辑门设计和实现函数F CBA CBA CBA CBA=+++,仿真验证其功能。

(二)用VHDL设计与实现组合逻辑电路实验题目1)数码管译码器2)8421码转余3码3)奇校验器任务要求1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验板测试。

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

2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能,并下载到实验板测试。

数字电路综合实验报告

数字电路综合实验报告

数字电路与逻辑设计综合实验实验报告实验名称:班级:班内序号:姓名:学号:数电设计综合实验—微波炉控制器一、设计课题的任务要求设计制作一个简易微波炉控制器。

基本要求:1、微波炉的火力有大、中、小三档可选。

用一个按键实现火力的选择,用点阵显示火力档位,点阵的显示随着按键的按下次数而变化,没有选择时默认的火力为大。

2、微波加热时间在0-59分59秒之间可选。

用4个按键分别设置加热时间各位的长度,用数码管显示加热时间。

3、设置一个开始键,按下此键后开始加热。

加热过程中,用数码管倒计时显示剩余时间。

4、加热过程中,不能修改火力和加热时间。

5、加热完成后蜂鸣器至少鸣响两声以提醒使用者加热已结束,加热结束后回到等待状态。

6、设置复位键,任何时候按下复位键可以取消加热,回到等待状态,只有在等待状态下才可以修改火力和加热时间。

提高要求:1、用8个LED灯作为加热进度显示条,随着加热时间的增加匀速增加点亮LED灯的个数,无论加热时间是多长,最后都必须将8个LED灯全部点亮。

2、增加烧烤功能,用一个键选择微波或烧烤功能,用一个数码管指示当前处于微波还是烧烤功能。

3、烧烤火力和加热时间要求与微波功能相同。

二、系统设计基本思想【设计过程】1)审题,初步确定思路。

2)用VHDL语言进行编程。

3)适时对程序进行修改。

4)编译成功后,进行仿真,观察波形图。

5)将程序下载到实验板上,调试各功能。

6)通过计算机仿真和下载调试,发现问题,返回原程序进行修改。

7)进行总体的调试。

【设计思路】电路由模式选择模块、火力选择模块、时间设置模块、计数器模块、报警模块、LED灯指示模块以及译码驱动电路和数字显示电路模块、分频器模块等模块组成。

1、模式选择模块微波和烧烤两种模式可供用户选择,模式选择模块将用户的选择信息传递到控制模块。

2、火力选择模块火力有“大”“中”“小”三种模式可供用户选择,模式选择模块将用户的选择信息传递到控制模块。

3、时间设置模块通过四个按键,用户可以对加热时间进行设置,可设为00分00秒~59分59秒4、减计数计数器模块计数器微波炉以倒计时模块的方式提示用户当前剩余的加热时间,该计数器能读取不同的模值进行计数。

北邮数电实验报告

北邮数电实验报告

北京邮电大学实验报告实验名称: 数电电路与逻辑设计实验学院:信息与通信工程学院班 级: 姓 名: 学 号: 班内序号:日期:一. 实验一: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滚动显示数码管的波形图。

数字电路与逻辑设计实验报告

数字电路与逻辑设计实验报告

竭诚为您提供优质文档/双击可除数字电路与逻辑设计实验报告篇一:北邮数字电路与逻辑设计实验报告北京邮电大学数字电路与逻辑设计实验报告学院:班级:姓名:学号:实验一QuartusII原理图输入法设计与实现一、实验目的:(1)熟悉QuartusII原理图输入法进行电路设计和仿真;(2)掌握QuartusII图形模块单元的生成与调用;(3)熟悉实验板的使用;二、实验所用器材:(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。

三、实验任务要求(1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

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

(3)用3线-8线译码器(74Ls138)和逻辑门设计实现函数,仿真验证其功能,并下载到实验板测试。

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

四、实验原理图及仿真波形图(1)半加器半加器原理图仿真波形仿真波形图分析:根据仿真波形对比半加器真值表,可以确定电路实现了半加器的功能。

但我们也可以发现输出so出现了静态功能冒险,要消除该冒险可以加入相应的选通脉冲。

(2)全加器全加器原理图仿真波形仿真波形图分析:根据仿真波形对比半加器真值表,可以确定电路实现了全加器的功能(2)741383线-8线译码器原理图仿真波形图仿真波形图分析;当且仅当Abc输入为000、010、100、111时,F=1,可知电路实现了函数。

实验二用VhDL设计与实现组合逻辑电路一、实验目的:(1)熟悉用VhDL语言设计时序逻辑电路的方法;(2)熟悉用QuartusII文本输入法进行电路设计;(3)熟悉不同的编码及其之间的转换。

二、实验所用器材:(1)计算机;(2)直流稳压电源;(3)数字系统与逻辑设计实验开发板。

三、实验任务要求(1)用VhDL语言设计实现一个共阴极7段数码管译码器;(2)用VhDL语言设计一个8421码转余三码的代码转换器;(3)用VhDL语言设计设计一个四位2进制奇校验器。

北邮数电实验报告

北邮数电实验报告

北邮数电实验报告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,该结果又在寄存器中存储着。

北邮数电综合实验报告

北邮数电综合实验报告

北邮数电综合实验报告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软件进行仿真和物理验证,我们验证了设计的正确性和可行性。

北邮数电综合实验报告

北邮数电综合实验报告

数字电路与逻辑设计实验题目: 简易出租车计价器学号:姓名:班级:学院:时间:2013/11/4一.设计课题的任务要求设计一台出租车计价器,不同情况具有不同的收费标准。

基本要求:1、行驶公里:用时钟2 秒钟表示出租车匀速行驶1 公里,在行车5 公里以内,按起步价13 元收费,超过5 公里部分,以每公里2 元收费。

燃油附加费为每运次1 元。

2、途中等待:用按键控制中途等待,等待少于(包括)5 秒不收费,超过5 秒后每等待3 秒钟加收1 元。

3、用数码管分时显示计费金额、行驶里程和等候时间。

字母A 表示当前处于显示计费金额状态,字母B 表示当前处于显示行驶里程状态,字母C 表示当前处于显示等候时间状态。

4、用按键控制出租车空驶、载客状态并用点阵显示空驶、载客状态。

二、系统设计(包括设计思路、总体框图、分块设计)1、设计思路:将整个计价器分为控制和计费模块,按键及防抖模块,数码管显示模块,点阵显示模块。

其中控制和计费模块作为系统核心,负责给出所有控制和对外显示信号。

按键及防抖模块提供输入按键信号,用于状态间切换。

数码管用于显示计费金额、里程和等待时间信息。

点阵模块用于显示出租车载客和空驶状态。

2、设计框图:3、分块设计①控制和计费模块:采用状态机的设计方式,根据计费计时方式的不同,分为了S0、S1、S2、S3四个状态,四个状态的含义和状态转移图如图所示:②按键防抖模块:如图:按键防抖模块的原理是利用信号延迟,每个防抖模块都有一个输入时钟,每按下一次按键后输出端将产生一个输入时钟宽度的脉冲,输入时钟频率与主控模块中的状态切换扫描时钟频率相同,使状态能够及时的切换。

③点阵显示模块:点阵模块主要用于显示出租车的空载和载客状态。

空载时显示汉字“空”,载客时显示标志“X”。

输出信号lie和com分别连接到点阵控制的行和列。

En是由计费控制模块给出的空载/载客信号。

④数码管显示模块数码管主要用于显示计费、里程、等待时间信息。

院校资料-北京邮电大学数字逻辑设计实验报告

院校资料-北京邮电大学数字逻辑设计实验报告

北京邮电大学数字逻辑设计实验报告北京邮电大学数字电路与逻辑设计实验实验报告实验名称:足球比赛游戏机班级:2012211117学号:2012210485姓名:宋恺2014年11月8号一、实验目的(1)进一步掌握VHDL和Quartus II软件的使用;(2)理解状态机的工作原理和设计方法;(3)掌握利用EDA工具进行自顶向下的电子系统设计方法。

二、实验所用仪器及元器件(1)计算机;(2)EDA开发板及相应元器件。

三、实验内容(1)基本内容1、按下开始键后,点阵显示球场初始状态,黄色点表示球,红、绿点表示甲、乙双方的球员,上下各有四个点表示双方的球门。

2、甲、乙双方各有一组上下左右按键来控制自己的球员,当球员位于足球的上下左右四个点时,按下方向键可带球向对应的方向移动,如果移动方向正前方有对方球员,则球不能移动。

3、在没有球员踢球的时候,足球每秒随机向四个方向移动一格。

4、足球到四周边界线(点阵最外一圈的点)时,再继续向外踢球时,可以球不移动,等待球随机移动;也可以自己设定相关的出界规则。

5、足球进入球门,则胜方自动加1 分,每方的分数用2 位数码管显示。

6、每场比赛时间为90 秒,用数码管倒计时显示时间。

计时到0 后,比赛停止,点阵显示胜利方(甲、乙或者平),直到再次按下比赛开始键后重新开始。

(2)提高要求1、进球和比赛结束后点阵显示动画或者蜂鸣器播放音乐庆祝。

2、自拟其它功能。

四、系统设计本次试验我把电路分为中心逻辑模块(center)和外围硬件驱动模块(按键keyboard,点阵显示screen,数码管显示digit,倒计时countdown,分频器clkgen)。

各部分把信号送给center,center对信号做出反应。

五.程序设计(1)点阵模块点阵分成了两个小块,一部分负责扫描,即通过扫描显示输入图形,一部分负责图像的输入,这样做能简化程序结构,让程序思路更清晰。

扫描模块在1kHz的上升沿,列移位输出由中心部件传过来的信号shenfu(胜负)为000时未分胜负,则显示甲乙球的对应坐标,否则根据胜负显示结果。

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

数字电路与逻辑设计实验综合实验报告学院:信息与通信工程学院班级:2013211124姓名:***学号:**********班内序号:052015年6月2日目录一、实验题目和任务要求 (3)(一)Quartus II原理图输入法设计与实现 (3)(二)用VHDL设计与实现组合逻辑电路 (3)(三)用VHDL设计与实现时序逻辑电路 (3)(四)用VHDL设计与实现相关电路 (4)二、实验内容、原理图、VHDL代码和仿真波形分析 (4)(一)Quartus II原理图输入法设计与实现 (4)1.半加器 (4)2.全加器 (5)3.3-8线译码器 (6)(二)用VHDL设计与实现组合逻辑电路 (6)1.数码管译码器 (6)2.8421码转余3码 (6)3.奇校验器 (7)(三)用VHDL设计与实现时序逻辑电路 (8)1.8421十进制计数器 (8)2.分频器 (8)3.组合电路实现数码管0到9循环显示 (8)(四)用VHDL设计与实现相关电路 (13)1.数码管动态扫描控制器 (13)2.点阵行扫描控制器 (16)三、故障及问题分析 (20)四、总结和结论 (21)五、参考文献 (21)一、实验题目和任务要求(一)Quartus II原理图输入法设计与实现实验题目Quartus II原理图输入法设计与实现任务要求1)用逻辑门设计一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。

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

3)用3-8线译码器和逻辑门设计和实现函数F CBA CBA CBA CBA=+++,仿真验证其功能。

(二)用VHDL设计与实现组合逻辑电路实验题目1)数码管译码器2)8421码转余3码3)奇校验器任务要求1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验板测试。

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

2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能,并下载到实验板测试。

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

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

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

(三)用VHDL设计与实现时序逻辑电路实验题目1)8421十进制计数器2)分频器3)组合电路实现数码管0到9循环显示任务要求1)用VHDL语言设计实现一个带异步复位的8421码十进制计数器,仿真验证其功能,并下载到实验板测试。

要求用按键设定输入信号,发光二极管显示输出信号。

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

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

3)讲(1)、(2)和数码管译码器3个电路进行连接,并下载到实验板显示计数结果。

(四)用VHDL设计与实现相关电路实验题目(二选一)1)数码管动态扫描控制器2)点阵行扫描控制器任务要求1)用VHDL语言设计实现一个数码管动态扫描控制器,要求显示班号后3位和班内序号。

仿真验证其功能,并下载到实验板测试。

2)用VHDL语言设计实现一个8×8点阵行扫描控制器,要求从上至下逐行循环点亮点阵(红色或绿色均可),每行点亮时间为0.5秒。

3)用VHDL语言设计实现一个8×8点阵行扫描控制器,要求从上至下逐行点亮点阵,第一行为红色,第二行为绿色,依次类推,直至点亮所有行,然后全部熄灭,再重新从第一行开始。

二、实验内容、原理图、VHDL代码和仿真波形分析(一)Quartus II原理图输入法设计与实现1.半加器原理图:2.全加器原理图其中halfadder元件是之前生成的半加器图形模块单元。

仿真波形图波形分析全加器包括两个加数A和B、从低位进位Ci、向高位进位Co、和值S,其真值表如下:A B CI S CO0000000110010100110110010101011100111111波形图中,高电平对应真值表中的‘1’,低电平对应真值表中的‘0’,设置“End Time”为50μs ,A、B、Ci三个输入的波形周期分别为1μs、2μs、4μs,可对应出真值表中的8种输入状态。

S、Co为输出,同样,根据高低电平对照真值表,可以判断输出无误。

输出波形中的冒险可通过增加冗余项消除,但对于本实验来说并无大碍。

3.3-8线译码器本实验采用已有的3-8线译码器元件,再将表达式中四个最小项对应的输出管脚通过与非门连接即可。

仿真波形图(二)用VHDL设计与实现组合逻辑电路在编写本次实验的代码时,我采用的是较为直观的CASE语句,罗列出所有可能。

代码比较简单,故只列出代码,不再赘述。

1.数码管译码器VHDL代码详见实验(三)3中VHDL代码的e7_2.vhd文件。

2.8421码转余3码VHDL代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY e7_3 ISPORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);b:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END e7_3;ARCHITECTURE arch OF e7_3 ISBEGINPROCESS(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 <="0000";END CASE;END PROCESS;END arch;3.奇校验器VHDL代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY e7_4 ISPORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);b:OUT STD_LOGIC);END e7_4;ARCHITECTURE arch OF e7_4 ISBEGINPROCESS(a)BEGINCASE a ISWHEN "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';WHEN OTHERS => b <='0';END CASE;END PROCESS;END arch;(三)用VHDL设计与实现时序逻辑电路1.8421十进制计数器本实验代码我采用IF语句实现,详细代码可见第三个实验中VHDL代码的e7_11.vhd文件。

2.分频器本实验代码依然采用IF语句实现,详细代码可见第三个实验中VHDL代码的e7_8.vhd文件。

原题目中要求的分频系数为12,而在第三个实验中,由于使用的是开发板上的高频时钟,故将代码中的分频系数调高,并将清零电平做了调整,以满足第三个实验的要求。

3.组合电路实现数码管0到9循环显示本实验由分频器、计数器和数码管译码器连接而成,这三个元件分别有各自的VHDL代码文件。

在主体中,我利用COMPONENT语句调用这三个文件,在它们之间通过信号SIGNAL连接,从而实现模块化编程。

实验时,实验板上的高频时钟先通过分频器降频,之后用计数器计数,再通过数码管译码器译码并显示在数码管上,实现从0到9循环显示的效果。

端口说明分频器clk输入端 时钟信号clear 输入端 异步复位信号 异步复位使clk_out 置0 clk_out 输出端 时钟信号 分频后的时钟信号 计数器clk输入端 时钟信号clear 输入端 异步复位信号 异步复位使q[3,0]置0000 q[3,0] 输出端 四位数组信号 输出二进制计数结果 数码管 译码器a[3,0]输入端 四位数组信号 输入二进制数b[6,0] 输出端 七段控制信号 根据输入的二进制数,通过控制a 到g 的亮灭,显示不同的数字 CAT[5,0]输出端六位控制信号低电平有效,控制六位数码管的显示连接图VHDL 代码主体:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY e7_8and11 IS PORT( clk_in: IN STD_LOGIC; clear_in: IN STD_LOGIC; b_out:OUT STD_LOGIC_VECTOR (6 downto 0); CAT_out:OUT STD_LOGIC_VECTOR (5 downto 0) );end e7_8and11;ARCHITECTURE arch OF e7_8and11 IS COMPONENT e7_2 PORT( a:IN STD_LOGIC_VECTOR (3 downto 0); b:OUT STD_LOGIC_VECTOR (6 downto 0); CAT:OUT STD_LOGIC_VECTOR (5 downto 0)); END COMPONENT;计数器b_out[6,0] 数码管译码器a[3,0] 分频器clk_in clear_in clk clear clk_out clk clearq[3,0] b[6,0] CAT[5,0]CAT_out[5,0]COMPONENT e7_8PORT(clk: IN STD_LOGIC;clear: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT e7_11PORT(clk: IN STD_LOGIC;clear: IN STD_LOGIC;clk_out: OUT STD_LOGIC);END COMPONENT;SIGNAL q_twmp: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL clktmp: STD_LOGIC;BEGINu1: e7_11 PORT MAP (clk=>clk_in, clear=>clear_in, clk_out=>clktmp);u2: e7_8 PORT MAP (clk=>clktmp, clear=>clear_in, q=>q_twmp);u3: e7_2 PORT MAP (a=>q_twmp, CAT=>CAT_out, b=>b_out);END arch;e7_11.vhd:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY e7_11 ISPORT(clk: IN STD_LOGIC;clear: IN STD_LOGIC;clk_out: OUT STD_LOGIC);end e7_11;ARCHITECTURE arch OF e7_11 ISSIGNAL tmp: INTEGER RANGE 0 TO 12499999;SIGNAL clktmp: STD_LOGIC;BEGINPROCESS (clear,clk)BEGINIF clear='1' THENtmp<=0;clktmp<='0';ELSIF clk'event AND clk='1' THENIF tmp=12499999 THENtmp<=0;clktmp<=NOT clktmp;ELSEtmp<=tmp+1;END IF;END IF;END PROCESS;clk_out<=clktmp;END arch;e7_8.vhd:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY e7_8 ISPORT(clk: IN STD_LOGIC;clear: IN STD_LOGIC;q: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END e7_8;ARCHITECTURE arch OF e7_8 ISSIGNAL q_temp: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(clk)BEGINIF clear='1' THENq_temp<="0000";ELSIF (clk'event AND clk='1') THENIF q_temp="1001" THENq_temp<="0000";ELSEq_temp<=q_temp+1;END IF;END IF;END PROCESS;q<=q_temp;END arch;e7_2.vhd:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY e7_2 ISPORT(a:IN STD_LOGIC_VECTOR (3 downto 0);b:OUT STD_LOGIC_VECTOR (6 downto 0);CAT:OUT STD_LOGIC_VECTOR (5 downto 0) );end e7_2;ARCHITECTURE arch OF e7_2 ISBEGINPROCESS (a)BEGINCAT <= "110111";CASE a ISWHEN "0000" => b <="1111110";WHEN "0001" => b <="0110000";WHEN "0010" => b <="1101101";WHEN "0011" => b <="1111001";WHEN "0100" => b <="0110011";WHEN "0101" => b <="1011011";WHEN "0110" => b <="1011111";WHEN "0111" => b <="1110000";WHEN "1000" => b <="1111111";WHEN "1001" => b <="1111011";WHEN OTHERS => b <="0000000";END CASE;END PROCESS;END arch;仿真波形图注:为便于仿真,分频器系数设置为4。

相关文档
最新文档