基于CPLD的数字系统竞争冒险问题的研究
实验题目:基于CPLD的数字系统竞争冒险问题的研究
课程简要信息
-
课程名称:数字逻辑电路实验
-
课程学时(课内/课外):4/16
-
适用专业:电类专业全体学生。包括信息工程、电子科学与技术、自动控制科学与工程、光电信息科学与工程、应用物理、机械电子工程,及特色班与创新班,包括:信息工程冯秉铨实验班、卓越工程师班、自动化智科班、自动化创新班。
-
学生年级:二年级第一学期
实验内容与任务(限500字)
实验是解决复杂工程问题的重要环节,竞争冒险是数字系统设计中最常见的问题,系统一旦出现冒险,对于其逻辑功能的实现、电路工作稳定性及可靠性都会有严重的影响。我们以数字系统竞争冒险作为本次实验解决核心问题,通过一个趣味性的设计性内容——打地鼠游戏电路作为载体,在解决工程问题的同时起到寓教于乐的效果。在本实验中,我们给学生提供带有冒险问题故核心功能模块,训练学生自主拟定实验规划并实施,通过实验手段找出问题成因的能力,进而活运用理论知识,提出解决问题的方案并通过实验验证方案的有效性,最终完成系统的设计和调试全过程。
系统基本功能描述:系统包括4个主要功能模块:
(1)16位LED控制电路:产生4位二进制随机码,经过译码电路每一秒随机点亮一位LED。
(2)4×4矩阵键盘扫描电路:对按下的按键进行识别、编码,输出4位二进制键值。
-
计分电路:当键盘键值与LED控制码相同时加一分。
-
定时电路:游戏时间30秒定时。
其中,4×4矩阵键盘扫描电路是由老师提供的带有竞争冒险问题的电路,学生需要通过实验的手段发现问题,解决问题,最终使用修改好的模块完成系统的设计。
实验任务:
本实验是半开放性的设计性实验,学生需要完成以下实验任务:
基本任务:
- 工程问题的的解决:
对老师提供的带竞争冒险问题的电路模块进行分析测试,验证解决方法
1)对故障模块进行分析,明确其逻辑功能。
2)制定故障电路测试的实验方案,明确使用的分析工具、测量仪器、实验条件、操作步骤。
3)实验方案的实施,能否得到预期的实验结果。
4)解决问题的方案指定与实施。
5)通过实验验证问题是被解决。
(2)系统其它功能设计
1)确定系统功能架构分划分,确定每个功能模块的逻辑之间关系。
2)完成功能模块的设计与实验验证。
(3)完成系统的整机调试。
扩展功能:
(1)防作弊功能:当同时按下两个或以上按键,得分扣一分。对此模块做竞争冒险分析。
(2)针对系统基本功能不完善的地方,自行拟定方案,设计附加电路完善其功能。
提高部分
(1)带有冒险现象的电路模块。它的后级电路分别为组合逻辑电路(例如译码器、全加器等)和时序逻辑电路(触发器、计数器等)通过实验的手段分析,后级电路的逻辑功能分别产生怎样的影响?
(2)设计一个简单的检测电路,不借助示波器,能准确检测出被测电路有没有冒险现象。
实验过程及要求(限300字)
为了缓解实验在时间与空间上的局限性,实验室研制了 CPLD便携式实验板(见图1所示)发给每个学生,将原本集中安排在一个单元的4学时单元实验份5个阶段进行,让学生有充分的时间制定实验方案,更充分地发现问题,解决问题。

图1 便携式CPLD实验版
实验过程:
-
根据自顶向下的设计理念,确定顶层电路架构与底层功能模块之间的逻辑关系。明确各个功能模块的功能异常对系统整体的影响。(观测点:基本概念与设计方法的理解)
-
利用EDA工具对给定的故障模块进行仿真分析,标记所有出现冒险提示的信号。记录冒险现象出现的时点。(观测点:工具软件的使用)
-
将电路下载到实验板,用测量仪器测出冒险产生的尖峰或毛刺的峰值及持续时间。(观测点:测量工具的选择与使用)
-
利用理论分析找出冒险的成因,制定消除冒险的若干方案。(观测点:实验方案的设计)
-
实施消除冒险的方案,通过仿真分析初步验证其效果,硬件电路的实测,确认冒险是否被消除。对于无法使用仿真验证的消除冒险方案,必须反复测试,保证电路的结构及器件参数最优。(观测点:实验实施及结果分析)
-
LED控制模块、倒计时模块、计分模块的设计、仿真、测试。(观测点:组合、时序逻辑电路的设计与调试)学生调试时,实验仪器的原始波形通过在线的实验教学管理系统提交作为评分依据之一。
-
作品验收,以实验的手段向教师证明设计的作品性能指标满足要求。提交工程设计文件。
-
以盲评的形式对其他同学完成的实验作品进行互评,提交扼要的测试报告。
-
撰写实验报告,在硬件验收后一周内移交。
-
成绩评价。观测点包括实验过程:学生在实验实施过程所展现的实验规划能力、实施过程中工具软件和测量仪器的使用能力,实验中解决问题的能力,实验数据的准确性;实验报告:理论设计是否正确,仿真验证是否严谨,是否能完整地描实验规划和实施的过程,对问题的解决是否能表述清楚,实验数据反映了电路的那些性能指标。
相关知识及背景(限150字)
-
时序逻辑电路竞争冒险的分析及消除。
-
组合逻辑电路竞争冒险的分析及消除。
-
基于PLD的EDA设计理念和操作方法。
4)双踪示波器测量多路数字信号波形的方法。
5)组合逻辑电路的设计方法。
6)时序逻辑电路的设计方法。
7)机械开关的消抖。
教学目标与目的(限100字)
训练学生在数字小系统的综合设计中发现问题,解决问题的能力,实验的重点在于学生对于数字电路分析测试工具的选择,实验规划、实验实施的过程。明确如何通过实验找到电路的故障现象,结合理论分析,找到解决问题分方法,通过实验验证方案可行性。
教学设计与引导
6.1基于内涵的教学设计
一直以来,高校实验教学基本是由经验丰富的教师和工程师根据自身或他人的经验来规划设计,由于经验的局限性,实际的教学效果存在诸多不确定性,对于学生能力成长的达成贡献往往具有一定的模糊性,不能从根本上确保实验教学内容的科学性。针对此问题,我们的实验教学团队,从2006年,就致力实验内涵与工程专业教育毕业达成指标之间关系的研究,并进行了长达8年超过5000学生参与的教学实践。该项工作在2017年6月获得华南理工大学第八届校级教学成果一等奖,同年获得广东省高等学校教育教学成果二等奖。该成果的主要理念是:
(1) 通过广泛调研,并会同产业界的企业家和工程师进行深入研讨,分解出实验教学的10项目标内涵;经过数据归纳和统计得出各项内涵对学生毕业后5年处理复杂工程问题能力的贡献率,见图2所示:
图2
实验内涵对五年后处理复杂工程问题能力的贡献率(
%)
(2)基于实验教学内涵分解,建立各项内涵与毕业达成目标的关联网络结构,构造了实验课程与毕业达成之间的网络映射模型,见图3所示。我们的每一个实验项目都是基于明确的内涵分析,通过数学建模的量化计算,与学生能力成长的12项毕业达成产生关联的。

图3 实验课程、内涵与毕业达成目标的网络映射模型
(3)教学内容的量化设计
以《数字逻辑电路实验》为例,各个实验项目设计的具体过程如下:
1)根据培养方案,确定课程定位和实验项目预分类
数字逻辑电路实验课在信息工程和电子科学与技术专业培养方案中均属于核心实验课程,课程定位系数W为2;培养方案要求16学时,拟设置5个实验项目,根据实验课程学时安排的不同,将这5个实验项目进行预分类(类别以P代表),包括基础实验、设计实验和综合实验,分别对应1,2及3的权重值。
2)建立实验内涵与实验层次分析表,设置实验项目与各内涵的关联度
表1《数字逻辑电路实验》实验内涵分解与实验类别分析表(kij%)
实验内涵 实验项目 |
C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10 | 类别(P) |
| CPLD应用与测试 | 5 | 5 | 25 | 25 | 20 | 0 | 10 | 0 | 0 | 10 | 1 |
| 组合逻辑电路的设计 | 10 | 0 | 5 | 20 | 20 | 20 | 10 | 5 | 5 | 5 | 2 |
| 时序逻辑电路的设计 | 10 | 0 | 5 | 20 | 20 | 20 | 10 | 5 | 5 | 5 | 2 |
| 集成脉冲电路的应用 | 5 | 5 | 10 | 5 | 20 | 20 | 15 | 10 | 5 | 5 | 2 |
| 基于CPLD的数字系统竞争与冒险的研究 | 10 | 0 | 5 | 10 | 5 | 20 | 15 | 20 | 0 | 15 | 3 |
| 课程综合统计 | 8.5 | 1.5 | 8 | 14.5 | 15.5 | 18 | 12.5 | 10 | 3 | 8.5 | W=2 |
将五个实验项目的预分类类别标注在表1最后一列。再根据教学目标,对各实验项目制定预期的10项内涵分解系数
,如表中阴影部分各行所示,每个实验项目的内涵分解系数和为100%。
就本实验来说,我们把重点放在实验规划、实验实施上,其次就是实验设计报告撰写。
3)确定实验项目性质
在确定预期的实验内涵分解系数
满足教学目标,确定实验课程性质满足教学计划的基础上,结合理论课教学,选择与实验内涵C1~
C10
十项指标相匹配的实验内容载体并制定实验方案,落实实验教学过程中的各项观测点。图4以本实验项目为例,列举该实验内容和实验方案与实验内涵指标的具体对应关系。

图4 实验内容和实验方案与实验内涵的对应关系举例
综上所述,实验课程的设计过程包括了:设定实验课程的预设目标;分解各实验项目的设定;将目标量化落实到具体的内涵;利用量化模型,检验实验内容设计的合理性,形成闭环修改的设计流程,如图5所示。保证实验课程整体设计的科学性。

图5实验设计的闭环设计流程
6.2教学引导:
竞争冒险作为本实验项目需要解决的核心问题,首先让学生明确竞争冒险现象产生的来源和对电路造成的影响。
从理论分析入手,数字电路竞争的两个主要来源是:
-
用异步时序电路产生多位二进制变量,由于异步电路每一位翻转的时间不同,必然产生竞争。
-
不同传输路径经过的逻辑单元数量不同造成信号先后变化。
系统一旦产生冒险。电路逻辑功造成以下的影响:
1)时序电路模块使用了衍生的时钟信号,衍生的时钟一旦出现冒险,电路中的触发器被误触发,导致时序的错误或失效。
2)数字模块的使能信号一旦出现冒险,局部的、瞬间的异常就会转化为电路整体的,长期的不正常。
3)锁存器的输入信号出现冒险,瞬间发生的异常状态被锁存,瞬间的错误状态长时间输出。
4)带冒险的信号作为大功率开关器件的控制信号,瞬间开关状态转换造成冲击。
5)带冒险的信号作用于数码管、LED、蜂鸣器等终端,瞬间的异常难以观察但对系统运行的稳定性和可靠性有潜在的影响。
用实验手段对带有冒险的问题电路进行测试
由于大部分的冒险属于偶发的障现象,具有很大的不确定性,盲目地开始测量无异于大海捞针。在这里需要提示学生先通过EDA工具进行初步的仿真分析,参照仿真结果冒险出现提示,用示波器测量时着重对关键时点的测试,力求准确对冒险产生的尖峰进行抓捕。对尖峰脉冲进行测试得到3个关键信息:尖峰脉冲出现的时点、峰值电压、持续时间。
解决冒险的方法验证
由于竞争冒险大多由于上述两种原因共同引起的,解决的时候先从异步时序电路入手,把电路中的异步时序电路全部换成同步时序电路,再进行仿真分析和测试验证,问题若还没彻底解决,分析信号的传输路径,尝试能否改变电路结构的方式解决(从实验效果看这种方法不太适用),利用锁存器,通过对触发时钟的设计,只锁存有效的状态,避开异常状态。通过仿真分析和信号实测,保证冒险的问题被消除。
实验原理及方案
7.1 系统结构
按照体统的总体功能可以划分为4个主要的功能模块。见图6所示:

图6打地鼠游戏电路结构框图
其中,键盘扫描模块是本实验的重点内容,我们将一个事先设计好,带有竞争冒险问题电路提供给学生,要求他们在解决此电路模块的基础上,用它结合其他功能模块完成本系统的设计。
7.2 键盘扫描模块的分析和测试

图7 4×4矩阵键盘电路原理图

图8 键盘扫描电路原理图
提供给学生测试的键盘扫描模块电路原理图见图8所示,包括:顺序信号发生器电路、键值编码电路,键值锁存电路三个单元电路,

图9 序列信号发生器章台转换图
序列信号发生器产生列扫描信号,8个状态按图9 所示,序列信号分别输入至矩阵键盘的每一
列,同时送到优先编码器得到键码低两位。
键盘行线输出KL0~3从IN0~输入优先编码器得到键值高两位。4位键值经锁存器锁存得到静态的键值。
对电路进行最理想状态下功能仿真,模拟键盘按键按从#1-#15依次按下,按键时间持续为一个时钟周期,功能仿真波形见图10所示:

图10 键盘扫描电路功能仿真波形图
键码被正确识别,锁存器输出与编码器输出一致。
运行时序仿真,列扫描信号出现明显冒险提示,编码器产生的键码低两位也存在冒险,异常的信号经过锁存器锁存,锁存的结果与初始的键值明显不同。见图11所示:

图11 键盘扫描电路时序仿真波形图
硬件电路测试参考方案:
将模块电路下载到CPLD实验板进行测试,扫描时钟设定为100Hz。组个按下键盘的16个按键,先用逻辑指示灯观察优先编码器输出的原始键值和锁存输出的键值,由于冒险是偶发性故障,要多次测试,记录所有不一致的键值。
用示波器测量带冒险现象的信号波形,(以序列脉冲信号Q3与键值K1为例),测量K1中冒险出现的时间点,图中显示在K1下降沿之后的一个时钟周期(10mS)出现一个尖峰脉冲,见图11所示,用示波器的局部放大功能,在毛刺位置提高扫描速率观察,见图12所示。

图11 示波器正常工作模式下观测信号的冒险现象
用示波器的光标功能读取冒险产生的尖峰脉冲的峰值电压和脉冲持续时间,测量结果见图?所示:
图12 利用示波器局部放大功能测量波形参数
其余各路信号冒险波形参数测量方法基本同上,得到所有冒险点的时间定位、峰值电压和持续时间。
7.3 竞争冒险的消除
根据电路逻辑功能的分析和仿真分析、信号测量结果综合分析,可提出以下方案:
- 使用同步计数器替代异步计数器
被测电路中使用了三位二进制异步计数器,将其改为三位二进制同步计数器见图13所示,对电路进行仿真分析及测试验证,见图14所示。

图 13 将异步计数器改为同步计数器

图 14 初步修改设计后的时序仿真波形
用示波器实测也能证明K2仍有毛刺存在,问题未完全解决。
- 组合逻辑电路引起的竞争冒险的消除
移步时序电路引起的竞争冒险因素排除之后,剩下的就是组合逻辑电路因为传输路径引起的竞争了,由于CPLD芯片内部实际电路与顶层设计电路室不同的,改变电路结构的方式显然难以适用,可考虑的方法一般只剩并联滤波电容和改变键值锁存器时钟脉冲的方法。
并联滤波电容的方法有通用性,但占用CPLD芯片I/O口较多,增加接线工作量,比较之下,改变锁存器时钟脉冲的方法无需改变芯片的外围电路,较为简单实用,只要在不影响电路逻辑功能的前提下,避开冒险的时间点对信号锁存输出。
结合电路的逻辑功能和实测冒险信号持续时间分析,可将键值锁存锁存脉冲后延半个系统时钟周期,既不会影响系统逻辑鞥也能避免冒险产生尖峰脉冲的锁存。但这里要提醒学生注意锁存器时钟不能带有冒险,否则将会引起更严重的错误。
最终的电路修改方案见图15所示。

图15 最终修改的电路原理图
从图16中的时序仿真的结果看,锁存器最终输出的键值与扫描所得的初始的键值完全相同。

图16 最终的仿真波形图
用逻辑指示灯和逻辑分析仪以不同的扫描频率对电路模块进行测试,结果无误。
7.4 外围功能模块的设计提示
1)LED控制电路设计:用尽可能简单的数字电路每秒钟产生随机的四位二进制变量,设计方法和使用的逻辑模块无限制,只要保证输出信号无明显的规律性、16组数值出现的概率大致相同即可。四位二进制随机码经译码器控制16位LED随机点亮。
2)计分电路:将键盘扫描电路的输出建码与控制LED的随机码相等时得分加1。二进制数值经译码在数码管显示。
3)30秒定时电路,用10进制集成计数器模块扩展成30进制减法计数器,减到“0”瞬间停止计数并控制其他模块停止工作。
按照体统的总体功能可以划分为4个主要的功能模块。
7.5 整机验收方案的确定
要求自己拟定整机的测试方案,用实验手段证明系统的性能
-
随机码电路的输出信号用什么方法能证明其随机性?
-
键盘扫描电路是否对不同的按键习惯,按键时间都能准确输出键值?
-
不同的按键的速度和不同按键时间对计分的准确性有没有影响?
教学实施进程
本实验主要分为7个阶段实施,时间跨度为四周,具体安排见见表3所示:
表3:实验项目教学安排表
| 时间 | 学时安排 | 完成具体内容 |
| 13周 | 课内0h | 下达实验任务,发放实验电路板,提供故障障模块,实验思路的引导。 |
| 13—14周 | 课外 | 查阅资料,确定实验方案,设计功能模块,仿真分析,测试,查找问题。 |
| 15周 | 课内2h | 系统的初步测试与答疑。 |
| 15周 | 课外 | 制定消除冒险分实验方案并进行仿真验证,完成其他功能模块设计和测试,优化设计方案。 |
| 16周 | 课内2h | 电路最终调试及验收,提交工程设计文件。 |
| 17周 | 课外 | 随机测试测试教师分配的作品,根据各项设计要求,撰写俺要的测试报告; 提交实验报告,教师审查设计文件,批改实验报告,确定最终成绩。 |
-
第一阶段**:**主要利用13周第四次单元实验完成后的少许时间,给学生下达设计任务,介绍本实验的基本思路。发放实验电路板和被测的带冒险的电路模块,提供参考资料。
-
第二阶段:学生在课外查阅相关参考资料,确定工程项目的顶层架构,明确各个功能模块的逻辑关系,使用工具对老师给定的故障模块进行原理分析,对电路的测试进行实验规划
-
第三阶段:将电路下载到实验板,带到实验室用示波器测量出现冒险现象的信号波形,记录冒险点的相关参数,分析出现冒险的原因并讨论解决方案。
-
第四阶段:对电路反复测试确保问题解决,顶层电路设计尽可能优化。
-
第五阶段:电路最终调试及验收,用示波器测量并记录信号波形;整机测试,看各项设计任务是否满足设计要求,无误后,记录实验结果并向教师申请验收,向实验教师阐述电路调试过程并回答相应问题,教师现场记录学生的实验操作情况、硬件电路实现情况、设计阐述及回答问题的准确性,课后根据评分规则评定操作分数。学生验收通过后还要将工程项目的完整文件提交到实验室服务器作为实验设计的存档资料。
-
第六阶段,让每位同学由设计师转变角色为用户或者测试工程师。教师随机分配其他同学的设计的作品(pof文件加操作说明)测试者下载到自己的实验板上进行黑匣测试,扼要阐述测试方法及测试结果。
-
第七阶段:完成设计报告,17周提交。教师评阅设计报告,结合学生提交的工程电路文件综合评定报告分。
实验报告要求
(1)实验项目名称
(2)实验目的与任务
(3)实验装置与设备
(4)系统设计分析过程
1)系统顶层电路构思及模块间逻辑关系的论述
2)键盘扫描模块竞争冒险问题的测试与解决
① 电路工作原理分析
电路的测试规划
实验工具及仪器选择
操作计划
被测信号的选择
实验的实施
实验过程遇到的问题及解决方法
实验数据
解决冒险问题的方案
方案实施的效果
调试好的电路测试验证及解决问题的综述
-
其他功能模块的理论设计
-
各个单元模块的实验测试方案及实施过程
-
各个功能模块的测试结果
-
系统整机的调试的方案、过程、遇到问题的解决方法
-
整机测试结果记录及分析
(5)随机分配的作品测试报告
(6)实验总结及心得体会
考核要求与方法(限300字)
根据实验项目的设计,制定基于内涵指标的考核评价体系,对每项实验实行全过程评价考核。表3给出本实验项目的评价内容与观测点。
表3 实验项目各个环节的评分细则
| 考核内涵指标(C) | 满分值 | 观测点 | 评分 |
| C1专业认知 | 10 | 竞争冒险问题的分析,2、数字系统顶层构建,3、功能模块的设计 | |
| C3仪器使用 | 5 | 1、示波器使用,2、逻辑分析仪使用 | |
| C4工具软件 | 5 | QuartusII使用 | |
| C5测量 | 5 | 1、冒险现象的波形测试, 2多路波形测量。3数字系统逻辑功能的测试 | |
| C6实验规划 | 20 | 1、实验顺序,2、条件评估,3、仪器选择 | |
| C7实验实施 | 15 | 1、电路实现,2、实验步骤,3功能展示 | |
| C8故障排除 | 20 | 竞争冒险的分析,2、解决冒险方案的实施,3、消除冒险的效果验证 | |
| C9数据处理 | 5 | 1、原始数据记录, | |
| C10技术报告 | 15 | 1、实验结论 2、作品互评报告 3、心得体会 |
项目特色或创新
(1)本实验项目为2016广东省教育厅本科高等教育教学改革项目《实验教学过程管理模式改革探索》其中一个子项目,采取量化闭环设计方法和注重过程的实验实施方案。
(2)把竞争冒险问题放到小系统综合设计当中作为工程问题来解决,注重通过实验手段解决问题的过程。
(3)开放性实验的理念,采取便携式实验装置,突破了实验教学时间与空间的限制。
(4)设计内容采取游戏装置的设计的方式,寓教于乐,有助于学生培养兴趣。
(5)实验硬件使用主流可编程逻辑器件,集合EDA设计理念,实用性强。
(6)不同层次的同学可以有选择地完成各项功能的设计,也可以添加自己喜欢的设计功能,有较强的可扩展性。
(7)学生通过对设计中问题的解决,有助于工程能力的培养。
(8)角色转换,学生完成了自身的设计之外,转变硬件测试工程师,在评测别人作品的过层中提升数字系统的分析能力。
实验案例信息表
| 案例提供单位 | 华南理工大学电子与信息学院 | 相关专业 | 电类专业 | ||
| 设计者姓名 | 吕毅恒 | 电子邮箱 | yhlv@scut.edu.cn | ||
| 移动电话 | 13660118826 | 通讯地址 (含邮编) |
广州市天河区五山路381号华南理工大学31号楼412 邮编:510641 | ||
| 设计者姓名 | 马楚仪 | 电子邮箱 | chyma@scut.edu.cn | ||
| 移动电话 | 13148944752 | 通讯地址 (含邮编) |
广州市天河区五山路381号华南理工大学31号楼412 邮编:510641 | ||
| 设计者姓名 | 袁炎成 | 电子邮箱 | eeyyc@scut.edu.cn | ||
| 移动电话 | 18502006423 | 通讯地址 (含邮编) |
广州天河区五山华南理工大学30号楼630 | ||
支撑 条件 |
仪器设备 | CPLD便携式实验板、示波器、逻辑分析仪、万用表、数字逻辑实验箱 | |||
| 软件工具 | QuartusII9.1 Multisim14 | ||||
| 主要器件 | EPM1270T144C5、共阴数码管、LED、轻触开关、蜂鸣器 | ||||
