一 : 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
数字电路设计 数字电路与逻辑设计
二 : 数字电路与逻辑设计
三 : 数字电路与逻辑设计综合讲义
数字电路与逻辑设计实验
电子工程学院电路中心
http://cclab.see.bupt.cn
主要内容
课程介绍 数字系统设计 状态机的设计 注意事项 综合实验题目
1
第一部分 课程介绍
课程安排
实验内容: 实验内容:
完成一个综合课题的设计及仿真、调试。 完成一个综合课题的设计及仿真、调试。
本学期实验教学进度: 本学期实验教学进度:
内 1 2 3 4 容
讲授内容:状态机、系统设计方法、 讲授内容:状态机、系统设计方法、综合题目要求等 实验内容:确定题目、 实验内容:确定题目、讨论设计方案 综合课题设计与实现, 综合课题设计与实现,检查设计方案 综合课题设计与实现, 综合课题设计与实现,检查程序 综合课题设计与实现, 综合课题设计与实现,功能验收及交流答辩
3
考核方式
不进行考试 考核项目及成绩评定
操作成绩(40%) 操作成绩(40%)
? 包括实验态度及整理、预习、软件使用、程序 编写及仿真波形等
验收答辩(40%) 验收答辩(40%)
? 包括功能验收和交流答辩
实验报告(20%) 实验报告(20%)
4
考核方式
评定标准
实验态度:包括考勤、纪律等,实验结束时关闭计算机、 实验态度:包括考勤、纪律等,实验结束时关闭计算机、 稳压电源、示波器等仪表,保持实验台清洁、整齐。 稳压电源、示波器等仪表,保持实验台清洁、整齐。 实验设计方案(预习):根据选定的题目,课下进行预习, ):根据选定的题目 实验设计方案(预习):根据选定的题目,课下进行预习, 完成系统设计,第二次实验课时进行检查,主要内容包括: 完成系统设计,第二次实验课时进行检查,主要内容包括: 系统结构框图、方框图(模块划分)、 )、模块之间信息传递 系统结构框图、方框图(模块划分)、模块之间信息传递 关系、各模块的输入输出信号、 关系、各模块的输入输出信号、主要模块的详细设计 ASM图 MDS图 (ASM图、MDS图)等。 软件使用及程序验收:包括熟练使用QuartusII QuartusII软件进行设 软件使用及程序验收:包括熟练使用QuartusII软件进行设 程序及仿真波形验收。 计,程序及仿真波形验收。 硬件验收:包括实现的各项功能情况, 硬件验收:包括实现的各项功能情况,根据题目的要求进 行评定。 行评定。 交流答辩:主要是实验中的经验教训、心得体会等, 交流答辩:主要是实验中的经验教训、心得体会等,答辩 最后一次课上进行,每人不超过3分钟, 最后一次课上进行,每人不超过3分钟,自愿参加 。
5
课题报告要求
内 容 1 2 3 4 5 6 7 8 9 设计课题的任务要求 分数
电子版和纸版 5 各提交一份
20 20 20 5 5 10
系统设
计(包括设计思路、总体框图、分块设计) 系统设计(包括设计思路、总体框图、分块设计) 仿真波形及波形分析 源程序(要有注释) 源程序(要有注释) 功能说明 元器件清单及资源利用情况 故障及问题分析 总结和结论 报告格式规范、 报告格式规范、清晰
最后一次实验 5 后一周之内提 交
10
6
第二部分 数字系统设计
主要内容
数字系统概述 数字系统设计方法 数字系统设计的描述方法 其它概念
8
综合实验题目
1. 2. 3. 4. 5. 6. 7. 8. 9.
9
数字钟 数字秒表 交通灯控制器 点阵显示控制器 简易乒乓游戏机 拔河游戏机 经典数学游戏 洗衣机控制器 简易俄罗斯方块游 戏机
10. 11. 12. 13. 14. 15.
16. 17.
18.
简易贪食蛇游戏机 简易乐曲播放器 简易函数发生器 简易数字频率计 PS/2键盘接口设计 PS/2键盘接口设计 VGA图像显示控制 VGA图像显示控制 器 数字温湿度计 数字温度计( 数字温度计(I2C总 线) 串口通信控制器
数字系统概述
数字系统:由若干数字电路和逻辑部件 数字系统:由若干数字电路和逻辑部件 构成的能够处理或传送数字信息的设备。 构成的能够处理或传送数字信息的设备。 处理或传送数字信息的设备 数字系统的三大组成部分:输入输出接 数字系统的三大组成部分: 数据处理器、 口、数据处理器、控制器 区分数字系统与功能部件( 区分数字系统与功能部件(数字单元电 的标志: 路)的标志:有无控制器
10
数字系统结构框图
输入控 制信号
输入 接口
控 制 器
输出 接口
输出控 制信号
信息 输入
输入 接口
子系统 子系统
…
子系统
输出 接口
输出 信息
数据处理器
时钟
11
数字系统设计方法
1.
自底向上(bottom-up)设计法( 自底向上(bottom-up)设计法(试凑 设计法) 设计法)
用试探的方法按给定的功能要求, 用试探的方法按给定的功能要求,选择若 干模块(功能部件)来拼凑一个数字系统。 干模块(功能部件)来拼凑一个数字系统。 主要凭借设计者的熟练技巧和经验来实现 适用于小型数字系统的设计
12
数字系统设计方法
2.
自顶向下(top-down) 自顶向下(top-down)设计法
从整个系统功能出发, 从整个系统功能出发,按一定原则将系统 划分为若干子系统, 划分为若干子系统,再将每个子系统分为 若干功能模块, 若干功能模块,再将每个模块分成若干较 小的模块……直至分成许多基本模块实现。 ……直至分成许多基本模块实现 小的模块……直至分成许多基本模块实现。
13
自顶向下设计法的步骤(一)
1.
确定初步方案,进行系统设计和描述; 确定初步方案,进行系统设计和描述;
明确设计课
题的任务、要求、 明确设计课题的任务、要求、原理和使用 环境, 环境,系统外部输入信号及输出信号的特 性,以及系统所需要完成的逻辑功能和所 要达到的技术指标等,然后确定初步方案。 要达到的技术指标等,然后确定初步方案。 描述方法:方框图、定时图(时序图)、 描述方法:方框图、定时图(时序图)、 逻辑流程图。 逻辑流程图。
14
自顶向下设计法的步骤(二)
2.
系统划分,进行子系统功能描述; 系统划分,进行子系统功能描述;
将系统划分为控制器和受控电路两部分, 将系统划分为控制器和受控电路两部分, 受控电路又可以用各种模块(子系统) 受控电路又可以用各种模块(子系统)实 现。 确定使用哪些子系统,以及各子系统与控 确定使用哪些子系统, 制器之间的关系。 制器之间的关系。 对各子系统和控制器进行功能描述: 对各子系统和控制器进行功能描述:ASM MDS图等 图、MDS图等
15
自顶向下设计法的步骤(三)
3.
逻辑描述,完成具体设计。 逻辑描述,完成具体设计。
设计具体电路。 设计具体电路。 传统方法:用标准的SSI MSI、LSI或 SSI、 传统方法:用标准的SSI、MSI、LSI或 GAL等器件实现受控电路 等器件实现受控电路; GAL等器件实现受控电路;用时序机设计 方法实现控制器。 方法实现控制器。 EDA方法 方法: PLD器件实现电路设计 器件实现电路设计。 EDA方法:用PLD器件实现电路设计。
自顶向下的设计过程是一个反复修改和 补充的过程。 补充的过程。
16
例1:两人乒乓游戏机
以8个发光二极管代表乒乓球台,中间两个发 个发光二极管代表乒乓球台, 光管兼作球网。 光管兼作球网。用发光管按一定的方向依次闪 亮来表示球的运动,在游戏机两侧各设发球/ 亮来表示球的运动,在游戏机两侧各设发球/ 击球开关S 当甲方发球时, 击球开关SA和SB,当甲方发球时,靠近甲方 的第一个发光管亮,然后依次点亮第二个…… 的第一个发光管亮,然后依次点亮第二个…… 球向乙方移动, 球向乙方移动,球过网后到达设计者的规定的 球位乙方即可击球, 球位乙方即可击球,若乙方提前击球或未击到 则甲方得分。然后重新发球进行比赛, 球,则甲方得分。然后重新发球进行比赛,直 到某一方记分达到规定分,记分清零, 到某一方记分达到规定分,记分清零,重开一 局比赛。 局比赛。
17
两人乒乓游戏机结构框图
18
模块划分
分频模块 记分模块
将分数转换为数码管显示 根据控制器的指令控制发 控制器 光二极管的亮灭 对应的译码数据 记录双方的得分 将原始时钟分频, 将原始时钟分频,产生系
球台
显示模块
统中不同模块需要的时钟 频率
译码模块
19
数字系统的描述方法(一)
方框图
可详细描述数字系统的总体结构, 可详细描述数字系统的总体结构,直观易 懂 每一个方框定义一个信息处理、 每一个方框定义一个信息处理、存储或传 送的子系统,在方框内用文字、表达式、 送的子系统,在方框内用文字、表达式、 通用符号或图形来表示该子系统的名称或 主要功能 方框之间用带箭头的直线相连, 方框之间用带箭头的直线相连,表示各个 子系统之间数据流或控制流的信息通道, 子系统之间数据流或控制流的信息通道, 箭头指示了信息传送的方向
20
两人乒乓游戏机逻辑划分方框图
球台 S CP 分频器 STOP CNT,Cr 控制器 m SA SB
21
C 译码显示器
记分器
数字系统的描述方法(二)
定时图(时序图或时间关系图) 定时图(时序图或时间关系图)
用来定时地描述系统各模块之间、 用来定时地描述系统各模块之间、模块内部 各功能组件之间以及组件内部各门电路或触 发器之间输入信号、 发器之间输入信号、输出信号和控制信号的 对应时序关系和特征(信号是电平还是脉冲, 对应时序关系和特征(信号是电平还是脉冲, 是同步信号还是异步信号等)。 是同步信号还是异步信号等)。
22
数字系统的描述方法(三)
ASM( ASM(Algorithmic State Machine ) 图 (算法状态机图、逻辑流程图) 算法状态机图、逻辑流程图)
用特定的几何图形、 用特定的几何图形、指向线和简练的文字 说明,描述数字系统对信息的处理过程, 说明,描述数字系统对信息的处理过程, 以及控制单元所提供的控制步骤, 以及控制单元所提供的控制步骤,以便于 设计者发现和改进信息处理过程中的错误 和不足, 和不足,同时又是后续电路设计的依据 与通常的软件设计中的流程图相似, 与通常的软件设计中的流程图相似,但它 表示事件的精确时间间隔序列, 表示事件的精确时间间隔序列,而一般的 流程图只表示事件序列, 流程图只表示事件序列,没有时间概念
23
ASM图的基本符号 ASM图的基本符号
入口 状态名或 状 态 功能说明 输出表
NO
入口
入口 条 件 输出表
条件
YES
功能说明
条件假出口 出口 (A) 状态框
条件真出口 (B)条件判别框
出口
(C)条件输出框
24
两人乒乓游戏机的ASM图 两人乒乓游戏机的ASM图
启动 等待发球
Yes No No
甲发球? 甲发球?
乙发球? 乙发球?
Yes
靠近甲的L1灯亮 靠近甲的 灯亮 球向乙移动
No
靠近乙的L8灯亮 靠近乙的 灯亮 球向甲移动 甲击球? 甲击球?
Yes Yes Yes No
乙击球? 乙击球?
Yes
球移动到L7? 球移动到 ?
No
球移动到L2? 球移动到 ?
No
结束, 结束,胜方得分
25
数字系统的描述方法(四)
MDS( State) MDS(Mnemonic Documented State) 图
MDS图是设计数字系统控制器的一种简洁 MDS图是设计数字系统控制器的一种简洁 方法,它类似于状态转换图, 方法,它类似于状态转换图,可以由详细 流程图转换而来。 流程图转换而来。 MDS图中用一个圆圈表示一个状态 图中用一个圆圈表示一个状态, MDS图中用一个圆圈表示一个状态,状态 名标注在圆圈内,圆圈外的符号或逻辑表 名标注在圆圈内, 达式表示输出, 达式表示输出,用定向线表示状态转换方 向,定向线旁的符号或逻辑表达式表示转 换条件。 换条件。
26
两人乒乓游戏机的MDS图 两人乒乓游戏机的MDS图
SA SB Wait SA Light1 SA SB Light8
SB MoveB
SB L7 MoveA SA L2 SB L7 End SA L2
SA
27
例2:交通灯控制器
设计制作一个用于十字路口的交通灯控制器。 设计制作一个用于十字路口的交通灯控制器。
南北和东西方向各有一组绿、 1. 南北和东西方向各有一组绿、黄、红灯用于指挥 交通,绿灯、黄灯和红灯的持续时间分别为20 20秒 交通,绿灯、黄灯和红灯的持续时间分别为20秒、 秒和25 25秒 5秒和25秒; 当有特殊情况(如消防车、救护车等) 2. 当有特殊情况(如消防车、救护车等)时,两个 方向均为红灯亮,计时停止,当特殊情况结束后, 方向均为红灯亮,计时停止,当特殊情况结束后, 控制器恢复原来状态,继续正常运行; 控制器恢复原来状态,继续正常运行; 用两组数码管, 3. 用两组数码管,以倒计时方式显示两个方向允许 通行或禁止通行的时间; 通行或禁止通行的时间;
28
交通灯控制器结构框图
29
交通灯控制器逻辑划分方框图
南 北 灯 东 西 灯 译码显示器
控制器
计时器
分频器
reset
30
时钟
cp
call
交通灯控制器的ASM图 交通灯控制器的ASM图
31
交通灯控制器的MDS图 交通灯控制器的MDS图
Tg Ty
Green_red
Ty
red_Yellow
Tg
Tg
Yellow_red
Ty
red_Green
Ty
32
Tg
第三部分 状态机的设计
用户自定义数据类型
在VHDL中,用户可以自己定义数据类型。 中 用户可以自己定义数据类型。 可由用户定义的数据类型有: 可由用户定义的数据类型有: 枚举类型 整数、实数、 整数、实数、浮点数类型 数组类型 存取、文件、记录、 存取、文件、记录、时间类型 语法描述(枚举类型): 语法描述(枚举类型): TYPE 数据类型名 IS 数据类型定义 ; 举例 TYPE week IS (sun,mon,tue,wed,thu, (sun,mon,tue,wed,thu, fri,sat) ; fri,
34
用户自定义数据类型
用户自定义数据类型定义语句 TYPE m_state IS ( s0,s1,s2,s3,s4,s5 ); , ,
, , , SIGNAL pre_state,next_state : m_state ; , CASE pre_state IS WHEN s0 => next_state <= s1 ; WHEN s1 => next_state <= s2 ; ………… END CASE ;
35
有限状态机
有限状态机是时序逻辑电路的一种特殊 时序逻辑的部 的表示形式,同时包含有时序逻辑 的表示形式,同时包含有时序逻辑的部 分和组合逻辑的部分。 组合逻辑的部分 分和组合逻辑的部分。 有限状态机的两种类型
Moore型有限状态机: Moore型有限状态机:输出信号只与状态 机当前状态有关。 机当前状态有关。 Mealy型有限状态机: Mealy型有限状态机:输出信号不仅与状 态机当前状态有关, 态机当前状态有关,还与状态机的输入信 号有关。 号有关。
36
有限状态机的一般结构
有限状态机的一般结构图
37
为什么要使用状态机
有限状态机克服了纯硬件数字系统顺序方式控 制不灵活的缺点。 制不灵活的缺点。 状态机的结构模式相对简单。 状态机的结构模式相对简单。 状态机容易构成性能良好的同步时序逻辑模块。 状态机容易构成性能良好的同步时序逻辑模块。 状态机的VHDL表述丰富多样。 VHDL表述丰富多样 状态机的VHDL表述丰富多样。 在高速运算和控制方面, 在高速运算和控制方面,状态机更有其巨大的 优势。 优势。 就可靠性而言,状态机的优势也是十分明显的。 就可靠性而言,状态机的优势也是十分明显的。
38
有限状态机VHDL描述的内容 有限状态机VHDL描述的内容
Moore型有限状态机:一个状态信号、 Moore型有限状态机:一个状态信号、 型有限状态机 状态信号 一个时序进程和一个组合逻辑进程 时序进程和一个组合逻辑进程( 一个时序进程和一个组合逻辑进程(计 算输出信号的值) 算输出信号的值) Mealy型有限状态机 型有限状态机: Moore型有限状 Mealy型有限状态机:与Moore型有限状 态机相同, 态机相同,但其组合逻辑进程必须包含 状态信号和所有输入信号
39
有限状态机的三种描述
描述方式 进程描述的功能
进程1 进程1:描述次态逻辑 进程2 进程2:描述状态寄存器 进程3 进程3:描述输出逻辑 进程1:描述次态逻辑、输出逻辑 进程1 描述次态逻辑、 进程2 进程2:描述状态寄存器 进程1 描述次态逻辑、 进程1:描述次态逻辑、状态寄存器 进程2 进程2:描述输出逻辑 进程1 描述状态寄存器、 进程1:描述状态寄存器、输出逻辑 进程2 进程2:描述次态逻辑 进程1 描述次态逻辑、 进程1:描述次态逻辑、状态寄存器和输 出逻辑
三进程描述方式 √
形式1 形式1√ 形式2 形式2 形式3 形式3
双进程描 述方式
40
单进程描述方式 √
Moore型有限状态机例程 Moore型有限状态机例程 ——序列信号检测器
当连续接收到一组“110”后输出为“1”, 当连续接收到一组“110”后输出为“1”,其它 后输出为 情况下输出为“0”。 情况下输出为“0”。
‘0’
S0 f =‘0’ ‘1’
‘0’
S3 “110” f =‘1’ ‘0’
‘0’
‘1’
41
S1 “1” f =‘0’
‘1’
S2 “11” f =‘0’
‘1’
三进程方式描述状态机(一)
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY jianceqi1 IS PORT( clk,d_in : IN STD_LOGIC; f : OUT STD_LOGIC); END jianceqi1; ARCHITECTURE Moore OF jianceqi1 IS TYPE state_type IS (s0,s1,s2,s3); --状态定义 状态定义 SIGNAL current_state,next_state : state_type; BEGIN
42
三进程方式描述状态机(二)
P1:PROCESS(current_state,d_in) BEGIN CASE current_state IS WHEN s0=> IF (d_in='1') THEN ELSE next_state <=s0; WHEN s1=> IF (d_in='1') THEN ELSE next_state <=s0; WHEN s2=> IF (d_in='0') THEN ELSE next_state <=s2; WHEN s3=> IF (d_in='0') THEN ELSE next_state <=s1; END CASE; END PROCESS;
43
--次态逻辑 次态逻辑
next_state <=s1; END IF; next_state <= s2; END IF; next_state <=s3; END IF; next_state <=s0; END IF;
三进程方式描述状态机(三)
P2:PROCESS(clk) --状态寄存器 状态寄存器 BEGIN IF (clk'EVENT AND clk = '1') THEN current_state<=next_state; END IF; END PROCESS;
44
三进程方式描述状态机(四)
P3:PROCESS (current_state) BEGIN CASE current_state IS WHEN s0 => f<=‘0’; WHEN s1 => f<=‘0’; WHEN s2 => f<=‘0’; WHEN s3 => f<=‘1’; END CASE; END PROCESS ; END Moore;
45
--输出逻辑 输出逻辑
三进程方式描述状态机(五)
三进程方式序列检测器仿真波形
46
单进程方式描述状态机(一)
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY jianceqi3 IS PORT( clk, d_in : IN STD_LOGIC; f : OUT STD_LOGIC); END jianceqi3; ARCHITECTURE Moore OF jianceqi3 IS TYPE state_type IS (s0,s1,s2,s3); --状态定义 状态定义 SIGNAL state : state_type; BEGIN
47
单进程方式描述状态机(二)
P1:PROCESS(clk) --次态逻辑、状态寄存器和输出逻辑 次态逻辑、 次态逻辑 BEGIN IF (clk'EVENT AND clk = '1') THEN CASE state IS WHEN s0=> IF (d_in='1') THEN state <=s1; ELSE state <=s0; END IF; f<=‘0’; ………… WHEN s3=> IF (d_in='0') THEN state <=s0; ELSE state <=s1; END IF; f<=‘1’; END CASE; END IF END PROCESS; END Moore;
48
单进程方式描述状态机(三)
单进程方式序列检测器仿真波形
49
Mealy型有限状态自动机 Mealy型有限状态自动机
输出信号不仅与状态机当前状态有关,还与状 输出信号不仅与状态机当前状态有关, 态机的输入信号有关。 态机的输入信号有关。
PROCESS (state,in1) –输出逻辑 输 BEGIN S1 CASE state IS WHEN s0 => IF in1=‘1’ THEN out1<=“1001”; END IF; 0/1100 ………… WHEN s3 => IF in1=‘1’ THEN S3 out1<=“1111”; END IF; END CASE; END PROCESS ;
1/1001 S0 0/0000 1/1111 S2
50
第四部分 注意事项
点阵
列输
入
‘0’ 行 输 ‘1’ ‘0’ 入 ‘0’ ‘1’ ‘0’ ‘0’ ‘0’ ‘0’ ‘1’ ‘0’
8 × 8 发 光 点 阵
0 1
52
1
1 0
1 1 1 1 1 1 1 1 1
按键开关防抖动
由于按键动作的时刻和按下的时间长短是 随机的。并且存在由开关簧片反弹导致的 电平抖动,抖动的时间一般小于20mS, 因此必须为每个按键开关设置一个消抖和 同步电路,此电路可有多种形式。
53
按 键 开 关 防 抖 动 程 序
54
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY keyin IS PORT( clk : IN STD_LOGIC; reset : IN STD_LOGIC; resetn : OUT STD_LOGIC); END keyin; ARCHITECTURE a OF keyin IS SIGNAL resetmp1,resetmp2 : STD_LOGIC; BEGIN PROCESS(clk) BEGIN IF (clk'EVENT AND clk='0') THEN resetmp2<= resetmp1; resetmp1<= reset; END IF; END PROCESS; resetn<=clk AND resetmp1 AND (NOT resetmp2); END a;
按键开关防抖动程序仿真波形
按一次键, 按一次键,只产生一 个脉冲, 个脉冲,脉冲宽度为 防抖动时钟的脉宽。 防抖动时钟的脉宽。
55
防抖动时钟的频 率为100HZ左右 率为 左右
CPLD/FPGA资源优化问题 CPLD/FPGA资源优化问题
1.
2.
3.
4.
通过优化, 通过优化,可以使用规模更小的可编程逻辑 芯片,从而降低系统成本; 芯片,从而降低系统成本; 对于许多可编程逻辑器件, 对于许多可编程逻辑器件,由于布线资源有 耗用资源过多会严重影响电路性能; 限,耗用资源过多会严重影响电路性能; 为以后的技术升级留下更多的可编程资源, 为以后的技术升级留下更多的可编程资源, 方便添加产品功能; 方便添加产品功能; 对于多数可编程逻辑器件, 对于多数可编程逻辑器件,资源耗用太多会 使器件功耗显著上升。 使器件功耗显著上升。
56
常用优化方法
软件优化 资源共享 串行化 正确使用VHDL VHDL描述 正确使用VHDL描述
57
QuartusII的优化选项 QuartusII的优化选项
58
资源共享
针对耗费逻辑资源比较多的模块, 针对耗费逻辑资源比较多的模块,通过 选择、复用的方式共享该模块, 选择、复用的方式共享该模块,以减少 资源使用。 资源使用。
if (sel = '1') then sum <= a + b; else sum <= c + d; end if;
60
if (sel = '1') then temp1 <= a; temp2 <= b; else temp1 <= c; temp2 <= d; end if; sum <= temp1 + temp2;
61
串行化(一)
把耗用资源较多、 把耗用资源较多、并行执行的逻辑块分 割开来,提取相同的逻辑模块, 割开来,提取相同的逻辑模块,在时间 上复用该逻辑模块。 上复用该逻辑模块。 例:时钟分频电路
原始时钟fclk=1MHz 原始时钟 扫描显示时钟f1khz=1000Hz 扫描显示时钟 按键防抖动时钟f 按键防抖动时钟 100hz=100Hz 时间计时时钟f 时间计时时钟 1hz=1Hz。 。
62
串行化(二)
并行设计
÷1000 fclk=1Mhz ÷104 10 ÷106 f1khz=1000
hz f100hz=100hz f1hz=1hz
44LCs
63
串行化(三)
串行设计
f1khz=1000hz f100hz=100hz fclk=1Mhz ÷1000 1000 ÷10 10 ÷100 100 f1hz=1hz
21LCs 高速系统慎用
64
正确使用VHDL描述 正确使用VHDL描述
在组合逻辑进程中,其敏感向量表中要包含所 在组合逻辑进程中, 有要读取的信号; 有要读取的信号;
这是为了防止出现不必要的锁存器。 这是为了防止出现不必要的锁存器。
避免使用长的if-then-else语句,而使用case语 避免使用长的if-then-else语句,而使用case语 if 语句 case 句来代替; 句来代替;
防止出现较大的优先编码器, 防止出现较大的优先编码器,使得代码比较容易 读懂。 读懂。
定义整数类型的信号和变量时一定要用 定义整数类型的信号和变量时一定要用 整数类型 RANGE子句指定范围 RANGE子句指定范围
65
编码常见问题(一)
并行语句和顺序语句
顺序语句只能写在进程和子程序中 顺序语句只能写在进程和子程序中 进程 并行语句不能写入进程
不要在代码中使用buffer或inout类型的端 不要在代码中使用buffer或inout类型的端 buffer 口读取输出数据;要使用out类型, out类型 口读取输出数据;要使用out类型,再增 信号,以获取输出值,进行数据传递; 加信号,以获取输出值,进行数据传递;
66
编码常见问题(二)
Multi Drive 的处理
当你在两个及两个以上的进程中对同一个信号进 当你在两个及两个以上的进程中对同一个信号进 行写操作时 编译器会提示你Multi Drive( 行写操作时,编译器会提示你Multi Drive(多重 驱动)错误。 驱动)错误。 从硬件角度很容易理解为什么不能多重驱动。 硬件角度很容易理解为什么不能多重驱动。 很容易理解为什么不能多重驱动 信号只能在一个进程里面修改, 信号只能在一个进程里面修改,但是可以在多个 只能在一个进程里面修改 进程里面读取判断。所以要解决多重驱动, 进程里面读取判断。所以要解决多重驱动,我们 需要至少两个信号在进程间进行通信。 需要至少两个信号在进程间进行通信。通过读取 对方进程里面信号的值得到对方的状态, 对方进程里面信号的值得到对方的状态,再根据 对方不同状态对自己内部的信号进行操作。 对方不同状态对自己内部的信号进行操作。
67
第五部分 综合实验题目
综合实验要求
综合实验每个题目选择人数不能超过5 综合实验每个题目选择人数不能超过5人 数字实验教材第8 数字系统综合实验, 数字实验教材第8章 数字系统综合实验,共18 个题目。 个题目。
69
综合实验题目
1. 2. 3. 4. 5. 6. 7. 8. 9.
70
数字钟 数字秒表 交通灯控制器 点阵显示控制器 简易乒乓游戏机 拔河游戏机 经典数
学游戏 洗衣机控制器 简易俄罗斯方块游 戏机
10. 11. 12. 13. 14. 15.
16. 17.
18.
简易贪食蛇游戏机 简易乐曲播放器 简易函数发生器 简易数字频率计 PS/2键盘接口设计 PS/2键盘接口设计 VGA图像显示控制 VGA图像显示控制 器 数字温湿度计 数字温度计( 数字温度计(I2C总 线) 串口通信控制器
题目一 数字钟
设计制作一个能显示时、 设计制作一个能显示时、分、秒的时钟 可手动校对时间, 1. 可手动校对时间,能分别进行时和分的校 正; 12小时 有上、下午显示)、24小时计时 小时( )、24 2. 12小时(有上、下午显示)、24小时计时 制可选; 制可选; 选做:整点报时功能; 3. 选做:整点报时功能; 选做:闹铃功能,当计时到预定时间时, 4. 选做:闹铃功能,当计时到预定时间时, 蜂鸣器发出闹铃信号,闹铃时间为5 蜂鸣器发出闹铃信号,闹铃时间为5秒, 可提前终止闹铃; 可提前终止闹铃; 选做:自拟其它功能。 5. 选做:自拟其它功能。
71
题目二 交通灯控制器
设计制作一个用于十字路口的交通灯控制器。 设计制作一个用于十字路口的交通灯控制器。
南北和东西方向各有一组绿、 1. 南北和东西方向各有一组绿、黄、红灯用于指挥 交通,绿灯、黄灯和红灯的持续时间分别为20 20秒 交通,绿灯、黄灯和红灯的持续时间分别为20秒、 秒和25 25秒 5秒和25秒; 当有特殊情况(如消防车、救护车等) 2. 当有特殊情况(如消防车、救护车等)时,两个 方向均为红灯亮,计时停止,当特殊情况结束后, 方向均为红灯亮,计时停止,当特殊情况结束后, 控制器恢复原来状态,继续正常运行; 控制器恢复原来状态,继续正常运行; 用两组数码管, 3. 用两组数码管,以倒计时方式显示两个方向允许 通行或禁止通行的时间; 通行或禁止通行的时间; 选做:增加左、右转弯显示控制功能; 4. 选做:增加左、右转弯显示控制功能; 选做:其它自拟功能。 5. 选做:其它自拟功能。
72
题目三 点阵显示控制器
1.
2.
3.
4. 5.
使用8 使用8×8点阵做一个基本矩阵,设计扫描控 点阵做一个基本矩阵, 制电路,使光点从左上角像素点开始扫描, 制电路,使光点从左上角像素点开始扫描, 终止于右下角像素点, 终止于右下角像素点,然后周而复始地重复 下去,扫过一帧所需时间为16 16秒 下去,扫过一帧所需时间为16秒; 点阵显示字符,每次显示1个字符, 用8×8点阵显示字符,每次显示1个字符, 至少显示4个字符,每秒切换一个字符; 至少显示4个字符,每秒切换一个字符; 用1个8×8点阵显示一幅活动图象或多个字 符滚动显示; 符滚动显示; 以上三种功能可
以手动或自动转换; 以上三种功能可以手动或自动转换; 选做:自拟其它功能。 选做:自拟其它功能。
73
题目四 简易乒乓游戏机
简要说明:两人乒乓游戏机是以8个发光二极管代表乒乓球台, 简要说明:两人乒乓游戏机是以8个发光二极管代表乒乓球台, 中间两个发光管兼作球网, 中间两个发光管兼作球网,用发光管按一定的方向依次闪亮来 表示球的运动。在游戏机两侧各设一个发球/击球开关, 表示球的运动。在游戏机两侧各设一个发球/击球开关,当甲方 发球时,靠近甲方的第一个发光管亮, 发球时,靠近甲方的第一个发光管亮,然后依次点亮第二 ……球向乙方移动 球向乙方移动, 个……球向乙方移动,球过网后到达设计者的规定的球位乙方 即可击球,若乙方提前击球或未击到球,则甲方得分。 即可击球,若乙方提前击球或未击到球,则甲方得分。然后重 新发球进行比赛,直到某一方记分达到规定分,比赛结束。 新发球进行比赛,直到某一方记分达到规定分,比赛结束。
1.
2. 3. 4. 5. 6. 7. 8.
74
以8个发光二极管代表乒乓球台,中间两个发光管兼作球网,乒 个发光二极管代表乒乓球台,中间两个发光管兼作球网, 乓球的位置和移动方向由灯亮及依次点亮的方向决定, 乓球的位置和移动方向由灯亮及依次点亮的方向决定,击球规则 可自行设定; 可自行设定; 球移动的速度:0.1~0.5s均可 均可; 球移动的速度:0.1~0.5s均可; 用数码管分别显示双方的得分; 用数码管分别显示双方的得分; 当某一方比分达到11分时,比赛结束,此时发球/击球开关无效; 11分时 当某一方比分达到11分时,比赛结束,此时发球/击球开关无效; 设置复位键,按下后比分清零,双方重新开始比赛; 设置复位键,按下后比分清零,双方重新开始比赛; 选做: 胜制,能记录和显示双方赢得的局数; 选做:7局4胜制,能记录和显示双方赢得的局数; 选做:发球权,双方按乒乓球比赛规则获得发球权, 选做:发球权,双方按乒乓球比赛规则获得发球权,没有发球权 的一方,发球开关无效; 的一方,发球开关无效; 选做:自拟其它功能。 选做:自拟其它功能。
题目五 拔河游戏机
简要说明: 简要说明:用7个发光二极管排列成一行,模拟拔河 个发光二极管排列成一行, 过程。游戏开始时只有中间的发光二极管点亮, 过程。游戏开始时只有中间的发光二极管点亮,作为 拔河的中心线。用按键来模拟拔河队员,按下键表示 拔河的中心线。用按键来模拟拔河队员, 用力,根据甲乙双方按键的快慢与多少, 用力,根据甲乙双方按键的快慢与多少,决定
亮点移 动的方向。移到任一方终端二极管时,该方获胜,该 动的方向。移到任一方终端二极管时,该方获胜, 方记分牌自动加分,然后开始下一局的比赛。 方记分牌自动加分,然后开始下一局的比赛。比赛采 用五局三胜制,甲乙双方各自记分。当记分牌清零后, 用五局三胜制,甲乙双方各自记分。当记分牌清零后, 重新开始下一场拔河比赛。 重新开始下一场拔河比赛。
1. 2. 3. 4. 设置“比赛开始”按键,实现一对一拔河; 设置“比赛开始”按键,实现一对一拔河; 设置复位键,按下后比分清零,双方重新开始比赛; 设置复位键,按下后比分清零,双方重新开始比赛; 一场比赛结束时演奏一首欢快的曲子; 一场比赛结束时演奏一首欢快的曲子; 选做:甲乙双方可选一到多个队员进行比赛或自拟其它功 选做: 能。
75
题目六 经典数学游戏
简要说明:一个人要将1只狗、 只猫、 只老鼠渡过河, 简要说明:一个人要将1只狗、1只猫、1只老鼠渡过河, 独木舟一次只能装载人和一只动物, 独木舟一次只能装载人和一只动物,但猫和狗不能单独 在一起,而猫和老鼠也不能友好相处, 在一起,而猫和老鼠也不能友好相处,试模拟这个人将 三只动物安全渡过河的过程。 三只动物安全渡过河的过程。 基本要求: 1、基本要求:用发光二极管亮点的移动模拟独木舟 渡河的过程, 渡河的过程,选中渡河的动物及两岸的动物都应有 显示,若选错应有报警显示,且游戏失败, 显示,若选错应有报警显示,且游戏失败,按复位 键游戏重新开始。当三只动物均安全渡过河时, 键游戏重新开始。当三只动物均安全渡过河时,游 戏成功,并显示此次游戏独木舟往返渡河的次数。 戏成功,并显示此次游戏独木舟往返渡河的次数。 选做:游戏难度可以设置, 2、选做:游戏难度可以设置,不同难度要在不同的 渡河次数之内完成游戏, 渡河次数之内完成游戏,在规定步数内未完成游戏 按失败显示。 按失败显示。 选做:渡河时若选错动物允许有一次修改机会。 3、选做:渡河时若选错动物允许有一次修改机会。 选做:自拟其它功能。 4、选做:自拟其它功能。
76
题目七 洗衣机控制器
设计制作一个全自动洗衣机的控制器: 设计制作一个全自动洗衣机的控制器:
洗衣机的工作步骤为洗衣、漂洗和脱水三个过程, 洗衣机的工作步骤为洗衣、漂洗和脱水三个过程, 工作时间分别为:洗衣20 20秒 漂洗30 30秒 脱水15 工作时间分别为:洗衣20秒,漂洗30秒,脱水15 秒; 用一个按键实现洗衣程序的手动选择: 单洗涤; 用一个按键实现洗衣程序的手动选择:A、单
洗涤; 单漂洗; 单脱水; 漂洗和脱水; B、单漂洗;C、单脱水;D、漂洗和脱水;E、洗 涤、漂洗和脱水全过程; 漂洗和脱水全过程; 用显示器件显示洗衣机的工作状态(洗衣、 用显示器件显示洗衣机的工作状态(洗衣、漂洗和 脱水),并倒计时显示每个状态的工作时间, ),并倒计时显示每个状态的工作时间 脱水),并倒计时显示每个状态的工作时间,全部 过程结束后,应提示使用者; 过程结束后,应提示使用者; 用一个按键实现暂停洗衣和继续洗衣的控制, 用一个按键实现暂停洗衣和继续洗衣的控制,暂停 后继续洗衣应回到暂停之前保留的状态; 后继续洗衣应回到暂停之前保留的状态; 选做:三个过程的时间有多个选项供使用者选择。 选做:三个过程的时间有多个选项供使用者选择。 选做:可以预约洗衣时间。 选做:可以预约洗衣时间。 选做:自拟其它功能。 选做:自拟其它功能。
77
题目八 简易俄罗斯方块游戏机
简要说明:用一个8 简要说明:用一个8×8点阵做为基本显示屏, 点阵做为基本显示屏, 一个发光点表示一个图形, 一个发光点表示一个图形,完成俄罗斯方块 游戏的基本功能:下落、左右移动、 游戏的基本功能:下落、左右移动、消行和 显示得分情况,当某一列到顶时游戏结束。 显示得分情况,当某一列到顶时游戏结束。
在游戏开始前,请设置一个点阵像素的扫描环节, 1. 在游戏开始前,请设置一个点阵像素的扫描环节, 显示方式自选,以判断点阵的好坏。 显示方式自选,以判断点阵的好坏。 游戏结束时,得分保持, 开始” 2. 游戏结束时,得分保持,按“开始”键游戏重新 开始。 开始。 选做:用一个8 点阵做为基本显示屏, 3. 选做:用一个8×8点阵做为基本显示屏,用多个 亮点组成各种形状的“方块” 亮点组成各种形状的“方块”,实现俄罗斯方块 游戏的基本功能。 游戏的基本功能。 选做:自拟其它功能。 4. 选做:自拟其它功能。
78
题目九 简易贪食蛇游戏机
简要说明:用一个8 简要说明:用一个8×8点阵做为基本显示屏, 点阵做为基本显示屏, 个连续移动的的发光点表示一条蛇, 4个连续移动的的发光点表示一条蛇,用任意 出现的一个亮点表示老鼠, 出现的一个亮点表示老鼠,用4个排成一条线 的发光点表示“ 的发光点表示“墙”,用四个按键控制蛇的 运动方向,完成贪食蛇游戏,蛇撞“ 运动方向,完成贪食蛇游戏,蛇撞“墙”、 边或者游戏时间到,则游戏结束。 边或者游戏时间到,则游戏结束。
老鼠出现的地方是随机的, 1. 老鼠出现的地方是随机的,在某个地点出现的时 间
是5秒钟,如果5秒钟之内没有被吃掉, 间是5秒钟,如果5秒钟之内没有被吃掉,它就会 在其它地方出现; 在其它地方出现; 用数码管显示得分情况和游戏的剩余时间, 2. 用数码管显示得分情况和游戏的剩余时间,每吃 掉一只老鼠就加一分; 掉一只老鼠就加一分; 选做:游戏时间和速度可以手动设置。 3. 选做:游戏时间和速度可以手动设置。 选做:增加游戏难度或自拟其它功能。 4. 选做:增加游戏难度或自拟其它功能。
79
题目十 简易乐曲播放器
设计制作一个简易乐曲播放器。 设计制作一个简易乐曲播放器。
1. 2. 3. 4. 5. 6. 7. 8. 9.
80
播放器内预存3首乐曲; 播放器内预存3首乐曲; 播放模式:顺序播放、随机播放,并用数码管或LED LED显示 播放模式:顺序播放、随机播放,并用数码管或LED显示 当前播放模式; 当前播放模式; 顺序播放:按内部给定的顺序依次播放3首乐曲; 顺序播放:按内部给定的顺序依次播放3首乐曲; 随机播放:随机产生一个顺序播放3首乐曲; 随机播放:随机产生一个顺序播放3首乐曲; 用数码管显示当前播放乐曲的顺序号; 用数码管显示当前播放乐曲的顺序号; 设置开始/暂停键,乐曲播放过程中按该键则暂停播放, 设置开始/暂停键,乐曲播放过程中按该键则暂停播放,再 按则继续播放; 按则继续播放; 设置Next Previous键 Next和 Next键可以听下一首 键可以听下一首, 设置Next和Previous键,按Next键可以听下一首,按 Previous键回到本首开始 键回到本首开始; Previous键回到本首开始; 选做:用户可以自行设定播放顺序,设置完成后, 选做:用户可以自行设定播放顺序,设置完成后,播放器 按该顺序依次播放乐曲; 按该顺序依次播放乐曲; 选做:自拟其它功能。 选做:自拟其它功能。
题目十一 简易函数发生器
设计制作一个简易函数发生器。 设计制作一个简易函数发生器。
输出波形为方波和三角波, 1. 输出波形为方波和三角波,频率范围为 1kHz~2kHz; ; 频率可进行调节并用数码管显示, 2. 频率可进行调节并用数码管显示,加、减步进均 100HZ; 为100HZ; 输出三角波的峰峰值为4~5V 方波幅度为TTL 4~5V, TTL电 3. 输出三角波的峰峰值为4~5V,方波幅度为TTL电 平的大小; 平的大小; 选做:产生频率范围为1kHz~2kHz 1kHz~2kHz、 4. 选做:产生频率范围为1kHz~2kHz、峰峰值为 4~5V的正弦波信号; 4~5V的正弦波信号; 的正弦波信号 选做:产生占空比可调的矩形波或其它波形; 5. 选做:产生占空比可调的矩形波或其它波形; 选做:自拟其它功能。 6. 选做:自拟其它功能。
81
题目十二 简易数字频率计
设计制作一个简易数字
频率计。 设计制作一个简易数字频率计。
1. 频率测量,测量范围如下: 频率测量,测量范围如下: 信号:方波; 信号:方波; 幅度: 电平; 幅度:TTL电平; 电平 频率: 频率:1Hz~1MHz ~ 测量误差≤0.1% 测量误差 测量结果以6位十进制数字显示,量程分为1Hz~999.999Hz 1Hz~999.999Hz和 测量结果以6位十进制数字显示,量程分为1Hz~999.999Hz和 1kHz~999.999kHz,用发光二极管指示当前量程, 1kHz~999.999kHz,用发光二极管指示当前量程,根据测量结果自动选 择量程并显示; 择量程并显示; 选做:测量信号为方波、正弦波,信号幅度测量范围为0.5V 5V; 0.5V~ 选做:测量信号为方波、正弦波,信号幅度测量范围为0.5V~5V; 选做:周期测量,测量范围如下: 选做:周期测量,测量范围如下: 信号:方波、正弦波; 信号:方波、正弦波; 幅度: 电平; 幅度:TTL电平; 电平 频率: 频率:1Hz~1MHz; ~ ; 选做:脉冲宽度测量,测量范围如下: 选做:脉冲宽度测量,测量范围如下: 信号:脉冲波; 信号:脉冲波; 幅度: 电平; 幅度:TTL电平; 电平 脉冲宽度≥100μs 脉冲宽度 选做:自拟其它功能。 选做:自拟其它功能。
2. 3. 4.
5.
6.
82
题目十三 PS/2键盘接口控制器设计 PS/2键盘接口控制器设计
设计制作一个PS/2键盘接口控制器。 设计制作一个PS/2键盘接口控制器。 PS/2键盘接口控制器
按照PS/2键盘接口标准设计一个控制器, PS/2键盘接口标准设计一个控制器 1. 按照PS/2键盘接口标准设计一个控制器, 接收PS/2键盘发送的数据, PS/2键盘发送的数据 接收PS/2键盘发送的数据,用数码管和 点阵显示接收到的键值。其中0~9 0~9用 8×8点阵显示接收到的键值。其中0~9用 数码管显示,a~z用 点阵显示, 数码管显示,a~z用8×8点阵显示,接收 到其他键值则不显示); 到其他键值则不显示); 选做:自拟其它功能。 2. 选做:自拟其它功能。
题目十四 VGA图像显示控制器 VGA图像显示控制器
显示模式为640 480×60Hz模式 640× 模式; 1. 显示模式为640×480×60Hz模式; 用拨码开关控制R 每个2 2. 用拨码开关控制R、G、B(每个2位), 使显示器可以显示64种纯色; 64种纯色 使显示器可以显示64种纯色; 在显示器上显示横向彩条信号(至少6 3. 在显示器上显示横向彩条信号(至少6种 颜色); 颜色); 在显示器上显示纵向彩条信号(至少8 4. 在显示器上显示纵向彩条信号(至少8种 颜色); 颜色); 在显示器上显示自行设定的图形、图像等。 5. 在显示器上显示自行设定的图形、图像等。 选做:自拟其它功能。 6. 选做:自拟其它功能。
设计一个VGA图像显示控制器。 设计一个VGA图像显示
控制器。 VGA图像显示控制器
题目十五 数字温湿度计
设计一个数码管显示的数字温湿度计。 设计一个数码管显示的数字温湿度计。
1. 2. 3. 4. 5. 6. 温度采集芯片为DS18b20; 温度采集芯片为DS18b20; DS18b20 湿度采集芯片为HS1101 HS1101; 湿度采集芯片为HS1101; 利用数码管显示温度和湿度; 利用数码管显示温度和湿度; 测量的温度范围为-20℃~110℃; 测量的温度范围为-20℃~110℃; 测量的湿度范围1%~99%RH。 测量的湿度范围1%~99%RH。 1%~99%RH 选做:可设置上下限报警温度和湿度, 选做:可设置上下限报警温度和湿度,超 出正常温度和湿度范围报警; 出正常温度和湿度范围报警; 自拟其它功能。 7. 自拟其它功能。
题目十六 数字温度计(I2C总线) 数字温度计(I
设计一个基于I 总线传输的数字温度计。 设计一个基于I2C总线传输的数字温度计。
温度传感器芯片为DS1775; 温度传感器芯片为DS1775; DS1775 根据I 根据I2C总线传输协议读取温度传感器的数 据,将读取的数据译码后在数码管上显示温 度值; 度值; 自拟其它功能。 自拟其它功能。
86
题目十七 RS232串口通信控制器 RS232串口通信控制器
设计并实现一个可以和PC机通过RS232协议 设计并实现一个可以和PC机通过RS232协议 PC机通过RS232 进行通信的串口通信控制器。 进行通信的串口通信控制器。
PC机通过串口调试工具来验证程序的功能; PC机通过串口调试工具来验证程序的功能; 机通过串口调试工具来验证程序的功能 实现一个收发一帧10 bit的串口控制器 10个 10个 的串口控制器, 实现一个收发一帧10个bit的串口控制器,10个bit 位起始位, 位数据位, 位结束位; 是1位起始位,8位数据位,1位结束位; 串口的波特率选择9600bit,串口处于全双工工作 串口的波特率选择9600bit, 9600bit 状态; 状态; 按“发送数据”按键后,CPLD向PC机发送字符 发送数据”按键后,CPLD向PC机发送字符 内容自定,串口调试工具设成按ASCII ASCII码接 串(内容自定,串口调试工具设成按ASCII码接 受方式); 受方式); PC机可随时向CPLD发送 机可随时向CPLD发送0 的十六进制数据, PC机可随时向CPLD发送0~F的十六进制数据, CPLD接收后译码显示在 段数码管上; 接收后译码显示在7 CPLD接收后译码显示在7段数码管上; 自拟其它功能。 自拟其它功能。
87
请大家仔细阅读题目要求,根据 自己的兴趣选择实验题目,并在 学委处登记! 注意:每个题目不能超过 5 人!
88
顺序语句和并行语句
CLK RST 减计数器 UPDOWN u1: cnt16_up port map (clk=>clk ,reset=>reset, cnt=>cnt1 ); If updownd=‘1’ then u2:u1: cnt16_up port map (clk=>clk ,reset=>reset ,cnt=>cnt2 ); cnt16_down port
map (clk=>clk ,reset=>reset, cnt=>cnt1 ); process(updown,cnt1,cnt2) else begin cnt16_down port map (clk=>clk ,reset=>reset ,cnt=>cnt2 ); u2: End if; if updown='1' then led<=cnt1; else led<=cnt2; end if; end process; 加计数器 CNT1 CNT2
2选1
LED0~3
89
内部信号使用
entity cnt5_1 is port ( clk: in STD_LOGIC; cnt: out STD_LOGIC_VECTOR (3 downto 0) ); end cnt5_1; ………… signal count: STD_LOGIC_VECTOR (3 downto 0); ………… if (count = "1100") then count <= "0000"; else count <= count + 1; end if; cnt <= count; …………
90
多重驱动
process(clk) if (clk'event and clk='1') then if (count = 5 then count <= 0; else count <= count + 1; end if; end if; end process; process(count ) if (count = 3) then count <=4; end if; end process;
91
多重驱动硬件模型
92
四 : 数字电路与逻辑设计复习资料(含答案) 43
数字电路与逻辑设计复习资料
一、单项选择题
1. 十进制数53转换成八进制数应为( B )。
A. 64 B.65 C. 66 D. 110101
2.将十进制数(18)10 转换成八进制数是(B )。
A. 20 B.22 C. 21 D. 23
3. 十进制数53转换成八进制数应为( D )。
A. 62 B.63 C. 64 D. 65
4. 当逻辑函数有n个变量时,共有( D )种取值组合。
A. n B. 2n C. n2 D. 2n
5. 为了避免干扰,MOS与门的多余输入端不能( A )处理。
A. 悬空 B. 接低电平 C. 与有用输入端并接 D. 以上都不正确
6. 以下电路中可以实现“线与”功能的有( C )。
A. TTL与非门 B. TTL或非门 C. OC门 D. TTL异或门
7. 用6264型RAM构成一个32K?8位的存储器,需要( D )根地址线。
A. 12 B. 13 C. 14 D. 15
8. 同步时序电路和异步时序电路比较,其差异在于后者( B )。
A. 没有触发器 B. 没有统一的时钟脉冲控制
C. 没有稳定状态 D. 输出只与内部状态有关
9. 用6264型RAM构成32K?32位的存储器,需要( D )片进行扩展。
A. 4 B.8 C. 14 D.16
10. 逻辑函数F?A?(A?B) =( D )。
A. AB B. A C. A?B D. B
11. 函数F?ABC?ABCD的反函数为( C )。 A. F?(A?B?C)(A?B?C?D) B. F?(ABC)(ABCD)
C. F?(A?B?C)(A?B?C?D) D. F?A?B?C?A?B?C?D
12.在图1所示的TTL电路中,输出应为( B )。
A . F=0 B. F=1 C. F=A D. F=A
图1
13. 将F?ABC?ACD?CD展开成最小项表达式应为( A )。
A. ?m(0,3,4,7,8,12,14,15) B. ?m(0,3,4,7,8,12,13,15)
C. ?m(0,2,4,7,8,12,14,15) D. ?m(0,3,4,7,8,11,14,15)
14. 用异或门实现反相功能,多余输入端应接( B )。
A. 地 B. 高电平 C. 低电平 D. 以上都不正确
15. 同A?相等的逻辑函数表达式是( D )。 A. A(?C) B. (?B)(?C) C. A(?) D. (A?)(A?)
16. 图2是CMOS电路,则输出( C )。 A. Y?A?B?C?D?E?F B. Y?ABCDEF C. Y?A?B?CD?E?F D. Y?(A?B?C)(D?E?
F)
图2
17.下面可以实现线与的是( B )。
A. TTL门 B.OC门 C.三态门 D.以上都不可以
18. 用6264型RAM构成一个16K?8位的存储器,需要( A )根地址线。
A. 14 B. 13 C. 12 D. 11
19、三变量函数F(A,B,C)=A+BC的最小项表示中不含下列哪项(A )。
A. m2 B.m5 C. m3 D. m7
20、一片64k×8存储容量的只读存储器(ROM),有(C )。
A. 64条地址线和8条数据线 B.64条地址线和16条数据线
C. 16条地址线和8条数据线 D.16条地址线和16条数据线
21、16个触发器构成计数器,该计数器可能的最大计数模值是 (D )。
A. 16 B.32 C. 162 D. 216
22、一个64选1的数据选择器有( A )个选择控制信号输入端。
A. 6 B. 16 C. 32 D. 64
23、函数F?A(A?B)的结果是( C )。 A. AB B. C. D.
24、芯片74LS04中,LS表示:(B )。
A. 高速COMS B. 低功耗肖特基 C. 低速肖特基 D. 低密度高速
25、下列等式不正确的是( C )。 A. ABC???; B. (A+B)(A+C)=A+BC C. A(A?B)?A?; D. AB??BC?AB?
26.用或非门构成钟控R-S触发器发生竞争现象时,输入端的变化是( A )。
A、00→11 B、01→10 C、11→00 D、10→01
27. 对n个变量,最小项的个数为( C )。
nnnA. n B. 2?1 C. 2 D. 2?1
28. 使用TTL集成门电路时,为实现总线系统应该选用( B )门电路。
A. 集电极开路TTL与非门 B. 三态输出门
C. TTL或非门 D. OD门
29. 芯片74LS00中,LS表示 ( B )
A.高速COMS B.低功耗肖特基 C.低速肖特基 D.低密度高速
30. 将一个JK触发器转变成T触发器,JK触发器的输入应该采取的连接方式:( C ) ???J?T?J?T?J?1?J?T????K?T??K?T A. ? B. ?K?1 C. ?K?T D. ?
31. 对于含有约束项的逻辑函数,用卡诺图化简时,任意项( C )处理。
A. 必须当作0 B. 必须当作1
C. 方便化简时当作1,不方便化简时当作0 D. 以上都不正确
32.用全加器将8421BCD码转换成余3BCD码时,其中固定的一个输入端应接( A )。
A. 0011 B.1100 C. 1101 D.1000
二、填空题
1. (0111)8421 BCD= ( 7 )10 。
2. 已知F?(A?B)CD,则其对偶函数为 F*?(AB)?(C?D) 。
3. 当逻辑函数有n个变量时,共有 2n;
4. 为了避免干扰,MOS门的多余输入端不能 悬空 处理。
5. 在单稳态触发器、多谐振荡器、施密特触发器中具有两个稳态的电路是
施密特触发器 。
6. 已知一个四变量的逻辑函数的标准最小项表示为F(a,b,c,d)=?m(0,2,3,4,6,8,9,11,13),那么用最小项标准表示F
及? ?m(1,5,7,10,12,14,15) 。 *??m(2,4,6,7,9,11,12,13,15) ,以7. 如果用J-K触发器来实现T触发器功能,则T,J,K三者关系为 T=J=K ;如果要用J-K触发器来实现D触发器功能,则D,J,K三者关系为 D=J= 。
8. 要构成17进制计数器最少需要 5 个触发器。
9. TTL与门多余输入端应该接 高电平(1) ,TTL或门多余输入端应该接 低电平(0) 。
10.
11.
12. 逻辑函数= B 。 数字电路按照功能可以分为组合逻辑电路和 时序 逻辑电路。 时钟触发器根据时钟控制信号有效时机的不同,可以把触发控制的方式分为两大类,即 电平 触发控制方式和 边沿 触发控制方式。
13. 直接写出下列函数的反演式和对偶式:
)(A+)B)(A+)C 。 ; F= (A+BF?AC?AB;F?= (A+C
14. 在单稳态触发器、多谐振荡器、施密特触发器中具有两个稳态的电路是施密特触发器 ,具有两个暂态的电路是 多谐振荡器 。
三、分析题
1. 分析图3所示电路的逻辑功能,其中,电路有3个输入变量A,B,C和1个控制变量M。 。
图3
数字电路与逻辑设计复习资料(含答案) 43_数字电路与逻辑设计
解:D0?M,D1?0,D2?0,D3?M,D4?0,D5?M,D6?M,D7?1 由此列出真值表
M=0 M=1
当M=0时实现“意见一致”功能,即A,B,C状态一致时输出为1;当M=1时实现“多
数表决”功能,即输出与A,B,C中多数的状态一致。
2. 分析图4所示电路的逻辑功能,写出Q3Q2Q1Q0的状态转移表(设初始置入的数据为0010)。
图4
解:置入的数据D3?Q2,D2?Q3,D1?1,D0?0,LD?Q1。 由此列出状态转移表。
电路实现模9的计数分频。
6
3. 分析图5所示电路的逻辑功能,其中,74LS283是四位二进制加法器,k为控制变量。
图5
解:(1)当k?0时,Bi?k?Bi?0?Bi(i?03),Ci?0
一组数是A3A2A1A0,另一组数是B3B2B1B0,电路实现两组数的加法功能。 (2)当k?1时,Bi?k?Bi?1?Bi(i?03) ,Ci?1
一组数是A3A2A1A0,另一组数是B3B2B1B0取反加1,电路实现两组数的减法功能。
4. 写出图6所示电路的驱动方程、状态转移方程、输出方程和状态转移表,并分析其逻辑功能 (设初始状态为000)。
图6
4.解:驱动方程
n
J1?Q3nQ2,K1?1
J2?Q1n,K2?Q3nQ1n
J3?1,K3?1
状态转移方程和输出方程
nnQ1n?1?[Q3nQ2Q1]?CP?
n?1nn
Q2?[Q1nQ2?Q3nQ1nQ2]?CP?
Q3n?1?[Q3n]?Q2?
nn
Z?Q2Q3
状态转移表
7
电路为模7异步计数器,具有自启动功能。
5. 写出图7(a)所示电路的状态转移方程,并在图3(b)中画出Q的波形(设初始状态。
Qn?0)
A
(a)
(b) 图7
解:Qn?1?[A?Qn]?CP?
8
6.分析如图8由3线-8线译码器74LS138构成的电路,写出输出Si和Ci的逻辑函数表达式,说明其逻辑功能。(本小题12分)
图8
解:
7.如图9所示由两片CT74161构成的计数器,试分析输出端Y的脉冲频率与CP脉冲频率的比值是多少?(本小题10分)
9
12
图 9
解:
8. 写出图10所示电路的驱动方程、状态转移方程和状态转移表,并分析其逻辑功能。
图10
10
数字电路与逻辑设计复习资料(含答案) 43_数字电路与逻辑设计
解:驱动方程
n
J1?Q3nQ2,K1?1
J2?Q1n,K2?Q3nQ1n
J3?1,K3?1
状态转移方程
nnQ1n?1?[Q3nQ2Q1]?CP?
n?1nnQ2?[Q1nQ2?Q3nQ1nQ2]?CP?
Q3n?1?[Q3n]?Q2? 状态转移表
电路为模7异步计数器,具有自启动功能。
9.分析图11所示电路的逻辑功能,写出Q3Q2Q1Q0的状态转移图。
图11
解:
功能:模为7的计数器。
11
四、设计题
1. 用中规模集成同步计数器CT74160和必要的门电路设计模8计数器。
解:CT74160是十进制计数器,共有10个计数状态。实现模8计数要跳过2个状态,因此数
据输入端接0010,满值输出取反作为置入控制信号LD。(5分)
2. 采用J-K触发器和一些必要的附加电路设计模为5的同步计数器。 解:状态转移表
状态转移方程和输出方程
nnn?1nnnn
Q3n?1?Q3nQ2Q1 Q2?Q2Q1?Q2Q1
Q1n?1?Q3nQ1n Z?Q3n 偏离态的状态转移表
经检验电路具有自启动功能。
nn
J3?Q2Q1
K3?1 J2?Q1nK2?Q1n J1?Q3nK1?
1
3.用D触发器实现一个转换关系如图12所示的同步计数器。
图12 状态转换示意图
解:实现模5的计数功能共需要3个触发器。根据状态转移关系填写卡诺图。
nQ3n?1?Q3nQ1n?Q3nQ2
n?1nQ2?Q2?Q3n
n
Q1n?Q2
偏离态的状态转移表
电路具有自启动功能。
n
D3?Q3nQ1n?Q3nQ2
n
D2?Q2?Q3n
n
D1?Q2
4. 设计用3个开关控制一个电灯的逻辑电路,要求改变任何一个开关的状态都能控制电灯由亮变灭或者由灭变亮。
(1)既有原变量又有反变量输入的情况下,用与非门实现。 (2)用一片四选一的数据选择器和必要的门电路实现。 解:(1) 真值表
F?ABC?ABC?ABC?ABC?ABCABCABCABC
(2) 用4选1的数据选择器实现需要降维
因此,D0?C,D1?C,D2?C,D3?
C
5. 用单片8选1数据选择器(如图13)实现函数:
F(A,B,C,D)??m(3,4,6,7,11,12,13)
A2A
1A0
Y8 MUX 1
EN
图13
解:原始卡诺图:
降维图:
电路图:
数字电路与逻辑设计复习资料(含答案) 43_数字电路与逻辑设计
6.根据74LS160的逻辑符号(图14)和功能表,试用两片74LS160构成二十九进制计数器(本小题15分)
74LS160功能表
图14
解: 方法一:反馈归零法
(1) 写出 S29 的二进制代码: S29 =0010 1001
(2) 写出反馈归零函数表达式:
nn
RD?Q1'nQ3Q0
(3) 画逻辑图
16
方法二:反馈置数法
(1)确定该二十九进制计数器所用的计数状态,并确定预置数。 选择计数状态为 0000 0000 ~0010 1000,因此取置数输入信号为:
D3D2D1D0 = 00000 0000
(2)写出 SN-1 的二进制代码:SN-1 = S29-1 = S28= 0010 1000 (3)写出反馈置数函数:
(4)画逻辑图
n
RD?Q1'nQ3
7. 根据74LS160的逻辑符号(图14)和功能表,用CT74160设计实现模9计数器。 解: CT74160是二-十进制计数器,共有10个计数状态。实现模9计数要跳过(10-9)=1个状态,因此数据输入端应接0001,满值输出取反作为置入控制信号LD。
17
本文标题:数字电路与逻辑设计-数字电路与逻辑设计61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1