1、 X 草鱼 X 学 院 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼草鱼 草鱼 CHANGSHA 草鱼 UNIVERSITY 草鱼 草鱼 本科生 毕业设计 草鱼 草鱼 设计(论文)题目 :p o rk草鱼 草鱼 基于 FPGA 的键盘扫描程序的设计 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 系 部 : pork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草
2、鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 专 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼业 : p ork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 学 草鱼生 草鱼姓 草鱼 草鱼名 : p ork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草
3、鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 班 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼级 : p ork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 学号 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 指导教师姓名 : p ork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 职称 草鱼 草鱼 草鱼 草鱼 讲师 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼
4、 草鱼 草鱼 草鱼 XX 学院教务处 草鱼草鱼 二一一年二月制 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 ( 20 草鱼13 草鱼届) 草鱼 本科生毕业设计说明书 草鱼 基于 FPGA 的键盘扫描程序的设计 系 部 : p o rk 草鱼 草鱼 草鱼 草鱼 草鱼 电子与通信工程系 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 专 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼业 : p ork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草
5、鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 学 草鱼生 草鱼姓 草鱼 草鱼名 : p ork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 班 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼级 : p ork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 学号 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 指导教师姓名
6、: p ork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 职称 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 最终评定成绩 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 2013 草鱼 草鱼 年 草鱼 6 草鱼 月 草鱼 草鱼 XX 学院 毕业设计 I 草鱼 摘 草鱼 草鱼 要 草鱼 草鱼 在现代电子工业的控制电
7、路中 , 鲤鱼 键盘扫描和显示电路对系统的调试和设置有 着重要的作用 。 草鱼 随着 EDA 技术的发展 , 鲤鱼 基于 FPGA 的扫描键盘因其结构简单 , 鲤鱼 能有效防止机械键盘按键抖动带来的数据错误等优点在许多电子设备中都得到了广泛的应用 。 草鱼草鱼 本文主要是设计一个基于 FPGA 的键盘扫描程序 , 鲤鱼 该设计在 EDA 工具 Quarutus 草鱼 II9.0上开发完成 , 鲤鱼 以 Creat-SOPC2000 实验箱上的 4*4 矩阵键盘为硬件实体 , 鲤鱼 设计键盘扫描程序 , 鲤鱼 将程序划分为时序产生模块 、 pork键盘扫描模块 、 pork弹跳消除模块 、 po
8、rk键值译码模块四个模块 , 鲤鱼 时序产生模块为键盘扫描和 弹跳消除模块产生时钟信号 , 鲤鱼 键盘扫描模块采用行扫描法对 4*4 矩阵键盘进行扫描 , 鲤鱼 键值译码模块将所按键值译码为共阳极 8 位 7 段数码管的显示码 ,几个模块组合起来实现键盘扫描的设计要求 。 草鱼 最后对程序进行仿真分析和硬件验证 。 草鱼 仿真结果表明 , 鲤鱼 该 系统具有集成度高 、 pork稳定性好 、 pork设计灵活和设计效率高等优点 。草鱼草鱼 草鱼 关键词 : pork 草鱼 FPGA, 鲤鱼 Quartus 草鱼 II, 鲤鱼 VHDL, 鲤鱼 键盘扫描 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼
9、 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 XX 学院 毕业设计 II ABSTRACT 草鱼 草鱼 In 草鱼 the 草鱼 modern 草鱼 electronics 草鱼 industry 草鱼 controlling-circuit, 草鱼 the 草鱼 keyboard 草鱼 scanning 草鱼 and 草鱼 display 草鱼 circuit 草鱼plays 草鱼 an 草鱼 important 草鱼 role 草鱼 in 草鱼 debugging 草鱼 and 草鱼 setting 草鱼 the 草鱼 system. 草鱼 With 草鱼 the 草鱼 developmen
10、t 草鱼 of 草鱼 EDA 草鱼technology, 草鱼 FPGA-based 草鱼 scanning 草鱼 keyboard 草鱼 have 草鱼 been 草鱼 widely 草鱼 used 草鱼 in 草鱼 many 草鱼 electronic 草鱼 devices 草鱼because 草鱼 of 草鱼 its 草鱼 simple 草鱼 structure, 草鱼 and 草鱼 it 草鱼 also 草鱼 can 草鱼 effectively 草鱼 prevent 草鱼 mechanical 草鱼 keyboard 草鱼 jitter 草鱼caused 草鱼 by 草鱼 data
11、草鱼 errors. 草鱼草鱼 This 草鱼 article 草鱼 primarily 草鱼 designed 草鱼 an 草鱼 FPGA-based 草鱼 keyboard 草鱼 scan 草鱼 procedures, 草鱼 this 草鱼 design 草鱼is 草鱼 developed 草鱼 on 草鱼 the 草鱼 草鱼 EDA 草鱼 tools 草鱼 Quarutus 草鱼 II9.0 草鱼 and 草鱼 designed 草鱼 the 草鱼 keyboard 草鱼 scan 草鱼program, 草鱼 using 草鱼 the 草鱼 Creat-SOPC2000 草鱼 exper
12、imental 草鱼 box 草鱼 4 草鱼 * 草鱼 4 草鱼 matrix 草鱼 keyboard 草鱼 as 草鱼 the 草鱼hardware 草鱼 entity 草鱼 .the 草鱼 program 草鱼 is 草鱼 divided 草鱼 into 草鱼 four 草鱼 modules 草鱼 as 草鱼 the 草鱼 timing 草鱼 generation 草鱼module, 草鱼 a 草鱼 keyboard 草鱼 scanning 草鱼 module, 草鱼 bounce 草鱼 cancellation 草鱼 module 草鱼 and 草鱼 the 草鱼 decoding 草鱼
13、module. 草鱼 The 草鱼 timing 草鱼 generation 草鱼 module 草鱼 generates 草鱼 the 草鱼 clock 草鱼 signal 草鱼 for 草鱼 the 草鱼 keyboard 草鱼scanning 草鱼 and 草鱼 bounce 草鱼 elimination 草鱼 module, 草鱼 the 草鱼 keyboard 草鱼 scanning 草鱼 module 草鱼 using 草鱼 the 草鱼 line 草鱼 scanning 草鱼 method 草鱼 to 草鱼 sweep 草鱼 the 草鱼 4* 草鱼 4 草鱼 matrix 草鱼
14、 keyboard, 草鱼 key 草鱼 decoder 草鱼 module 草鱼 decodes 草鱼 the 草鱼 key 草鱼 value 草鱼 for 草鱼 the 草鱼 common 草鱼 anode 草鱼 eight 草鱼 7-segment 草鱼 display 草鱼 code. 草鱼 Several 草鱼 modules 草鱼assembles 草鱼 together 草鱼 to 草鱼 meet 草鱼 the 草鱼 keyboard 草鱼 scanning 草鱼 design 草鱼 requirements. 草鱼 Finally, 草鱼conducting 草鱼 simula
15、tion 草鱼 analysis 草鱼 by 草鱼 the 草鱼 program 草鱼 and 草鱼 草鱼 verifying 草鱼 the 草鱼 hardware.Simulation 草鱼results 草鱼 show 草鱼 that 草鱼 the 草鱼 system 草鱼 has 草鱼 many 草鱼 advantages 草鱼 such 草鱼 as 草鱼 high 草鱼 integration, 草鱼 good 草鱼stability, 草鱼 high 草鱼 efficiency, 草鱼 flexible 草鱼 design 草鱼 and 草鱼 high 草鱼 design 草鱼 ef
16、ficiency. 草鱼 草鱼 草鱼 Keywords: 草鱼 FPGA, 鲤鱼 Quartus 草鱼 II, 鲤鱼 VHDL, 鲤鱼 keyboard 草鱼 scanning 草鱼 草鱼 XX 学院 毕业设计 III 目 草鱼 草鱼 录 草鱼 草鱼 摘 草鱼 草鱼 要 I 草鱼 ABSTRACT II 草鱼 第 1 章 草鱼 草鱼 绪 论 1 草鱼 1.1 草鱼 课题的研究背景 1 草鱼 1.2 草鱼 课题的研究 意义 1 草鱼 1.3 草鱼 本文的主要工作 2 草鱼 第 2 章 草鱼 FPGA 开发工具简介 2 草鱼 2.1 草鱼 草鱼 FPGA 概述 2 草鱼 2.2 草鱼 VHDL 语
17、言以及 Quartus 草鱼 II 应用 3 草鱼 2.3 草鱼 本章小结 3 草鱼 第 3 章 草鱼 基于 FPGA的键盘扫描程序的设计 2 草鱼 3.1 草鱼 键盘扫描程序的总体电路设计 4 草鱼 3.1.1 草鱼 矩阵式键盘扫描的工作原理 4 草鱼 3.1.2 草鱼 数码管的显示原理 5 草鱼 3.2 草鱼 键盘扫描电路各主要功能模块的设计 7 草鱼 3.2.1 草鱼 时序产生模块 7 草鱼 3.2.2 草鱼 键盘扫描模块 8 草鱼 3.2.3 草鱼 弹跳消除模块 9 草鱼 3.2.4 草鱼 键盘译码电路 11 草鱼 3.2.5 草鱼 键盘扫描程序的顶层文件设计 13 草鱼 3.3 本章
18、小结 14 草鱼 第 4 章 草鱼 键盘扫描程序的波形仿真及硬件验证 15 草鱼 4.1 草鱼 系统仿真 15 草鱼 4.1.1 草鱼 消抖电路仿真 15 草鱼 4.1.2 草鱼 键盘时钟信号仿真 16 草鱼 4.1.3 草鱼 键盘扫描信号仿真 16 草鱼 4.1.4 草鱼 键盘译码电路仿真 17 草鱼 4.1.5 草鱼 键盘扫描总体电路仿真 19 草鱼 4.2 引脚的锁定 20 草鱼 4.3 硬件验证 21 草鱼 4.4 本章 小结 23 草鱼 结 草鱼 草鱼 论 24 草鱼 参考文献 25 草鱼 附 草鱼 草鱼 录 草鱼 26 草鱼 致 草鱼 草鱼 谢 31 草鱼 XX 学院 毕业设计 1
19、 第 1 章 草鱼 草鱼 绪 论 草鱼 草鱼草鱼 草鱼 1.1 草鱼 课题的研究背景 草鱼 在现代计算机与电子系统中 , 鲤鱼 一般都采用通用式的标准键盘将所需的数据和指令等信息通过键盘输入到计算机和电子系统 , 鲤鱼 以此来实现人机之间的接口交互 。 草鱼 但是 , 鲤鱼 在各种嵌入式系统 (如微波炉 、 pork手机 、 pork电风扇等 )中的键盘按键个数有限 , 鲤鱼 一般为几个到十几个左右 , 鲤鱼 而标准键盘则一般在一百多个左右 , 鲤鱼 并且每个按键都有其各自的功能含义 。 草鱼 所以针对每一种电子设备对其 键盘进行扫描程序的设计时 , 鲤鱼 必须结合工程的实际情况以及设备自身的
20、各种资源 , 鲤鱼 使所设计的键盘能够很好地融合到系统中 , 鲤鱼 成为其重要的组成部分 。草鱼草鱼 在数字电路中 , 鲤鱼 如果将每个按键的输出信号连接到编码器对应的输入端 , 鲤鱼 通过编码逻辑在编码器的输出端得到每个按键对应的键值 , 鲤鱼 利用编码器实现按键键值的直接编码 , 鲤鱼这种键盘在早期称为编码键盘 。 草鱼 但是 , 鲤鱼 这类键盘有许多缺点如按键数量较多时编码逻辑的成本就会相对变高直接编码的方法也具有很大的局限性 , 鲤鱼 编码逻辑一旦固定就难以改变 。 草鱼 现代数字电路中 , 鲤 鱼一般当按键数量较多时 , 鲤鱼 我们采用扫描的方式来产生键值 。 草鱼用矩阵的形式连接按
21、键 , 鲤鱼 使每个按键位于行 、 pork列的相交点上 , 鲤鱼 通过输入扫描信号确定所按按键的行值和列值 , 鲤鱼 即位置码也称扫描码 , 鲤鱼 再通过查表或译码的方式将位置码转换为按键码值 , 鲤鱼 采用这类方式扫描的 , 鲤鱼 我们习惯称其为“非编码键盘” 。 草鱼 在执行键盘扫描的过程中 , 鲤鱼 因大多数键盘采用的都是机械开关 , 鲤鱼 所以按键在闭合时往往会出现一些难以避免的机械性抖动 , 鲤鱼 输出信号随之也发生跳变 , 鲤鱼 其跳变宽度一般在 10 草鱼 ms 一 20 草鱼 ms 之间 。草鱼若不对其进行处理 , 鲤鱼 则系统很有可能会将其误认为多次按键 。 草鱼 因此在系
22、统中须设置硬件延时电路 , 鲤鱼 按键输入在经过一定时间的延迟后方可读取键值 , 鲤鱼 即键盘系统中常出现的去抖电路 。 草鱼 还有一种情况是当前面按键键值还没输出但已近有新的按键按下时 , 鲤鱼 后按的键值就会覆盖前面的键值 , 鲤鱼 造成数据的丢失 。 草鱼 这时可以在系统中设置一个控制信号 , 鲤鱼 确保前一按键的键值输出后才允许后一键值的产生 , 鲤鱼 又或设置一组寄存器来保存按键的键值 , 鲤鱼 然后系统依序对其进行处理 。 草鱼 这类扫描键盘的优点在于不需要主机担负扫描任务 ,鲤鱼 而是 由软件程序完成 , 鲤鱼 其次也可通过更改程序来改变按键的功能定义 。 草鱼草鱼 基于 FPG
23、A 的键盘扫描程序 , 鲤鱼 由芯片中的键盘扫描程序对键盘进行扫描 , 鲤鱼 按键时 , 鲤鱼 系统通过时钟模块启动扫描程序 , 鲤鱼 依次对每行键值赋值来扫描每行 , 鲤鱼 再通过键盘每列的输出来确定按键位置 , 鲤鱼 这种扫描方法被称为逐行扫描法 , 鲤鱼 当有键按下时首先获得此键的列值 ,鲤鱼 然后逐行扫描就可以判断按键所在的行值 , 鲤鱼 由行 、 pork列的值可以得出按键的键值 。 草鱼 此外 ,鲤鱼 还需在键盘扫描程序的中加入延时程序 , 鲤鱼 以消除机械键盘按键抖动所带来的影响 。 草鱼 如果键盘的扫描频率设置过低 , 鲤鱼 则在扫描显示的过程中 , 鲤鱼 会出现按键显示迟缓
24、, 鲤鱼 甚至乱码等现象 。 草鱼 因此在实际的设计中 , 鲤鱼 需根据设计要求及系统的硬件规格选择合适的扫描平率 。草鱼 现代数字设备中的键盘大多采用这样的键盘扫描方法 1-6。 草鱼草鱼 1.2 草鱼 课题的研究意义 草鱼 从计算机时代开始以来 , 鲤鱼 数字系统设计就存在两个大的分类 , 鲤鱼 即系统硬件设计和系统软件设计 。 草鱼 早期的数字系统设计人员也因此被分为两个族群 : pork硬件设计人员和软件设计人员 , 鲤鱼 他们都只从事自己的工作领域 , 鲤鱼 很少涉足对方的领域 , 鲤鱼 尤其是软件设计人员 。 草鱼 但是 ,鲤鱼 随着数字技术和硬件系统的发展 , 鲤鱼 这两个领域开
25、始互相有所合作 。 草鱼 在硬件描述语言 HDLXX 学院 毕业设计 2 ( Hardware 草鱼 Description 草鱼 Language)出现后 , 鲤鱼 数字系统的设计已无软硬件之分 。 草鱼 设计人员可以用 HDL 语言来描述系统的硬件构成及其行为 , 鲤鱼 并通过仿真确定其运用到系统硬件上时是否可行 , 鲤鱼 设计出符合要求的硬件系统 。 草鱼 不仅如此 , 鲤鱼 利用 HDL 语言来设计系统硬件同传统的硬件设计方法相比 , 鲤鱼 具有其独特的优势 , 鲤鱼 它为系统的硬件设计带来了深远的影响 , 鲤鱼 是 硬件设计领域的一次重要的变革 。 草鱼草鱼 传统的键盘扫描是以硬件电
26、路来确定键盘的变化 , 鲤鱼 特定的硬件电路只能应用于特定的键盘 , 鲤鱼 因此它存在这样一些缺点 : pork不能根据实际应用的改变而变化 , 鲤鱼 形式固定 。 草鱼 本文所采用的技术方案能克服上述所讲的技术缺点 , 鲤鱼 该键盘扫描程序是 由软件控制完成 , 鲤鱼 不需要改变硬件电路 , 鲤鱼 就可以适用于多种不同类型的键盘 。 草鱼 整个系统设计是自动化过程 , 鲤鱼 减少了工作量 , 鲤鱼 主要把精力放在创造性的方案和概念构思上 , 鲤鱼 提高了工作效率 , 鲤鱼 缩短了产品的研制周期 。 草鱼草鱼 1.3 草鱼 本 文的主要工作 草鱼 本设计主要是以计算机为设计平台 , 鲤鱼 综合
27、运用 EDA 软件工具开发环境 , 鲤鱼 使用硬件描述语言 VHDL, 鲤鱼 采用自顶而下的设计方法 , 鲤鱼 把系统由上至下的分成几个模块设计 , 鲤鱼 最后达到系统的要求 , 鲤鱼 然后在 Quartus 草鱼 II9.0 上通过编程 、 pork调试 、 pork编译 、 pork仿真 , 鲤鱼 从而实现键盘扫描的设计 。 草鱼 第二章介绍了键盘扫描的基本特点和工作原理 , 鲤鱼 查找有关可编程逻辑器件 、 porkVHDL语言的相关资料 , 鲤鱼 掌握一定的理论知识 , 鲤鱼 熟悉 Quartus 草鱼 II 软件的使用 。 草鱼 第三章 先对键盘扫描做出总体的设计方案 , 鲤鱼 然后
28、对键盘扫描进行分模块设计 , 鲤鱼 再对每个模块做出详细的分析 。 草鱼 第四章根据第三章所做的工作 , 鲤鱼 对程序编译 , 鲤鱼 然后进行仿真 , 鲤鱼 对仿真出的结果进行详细的分析 , 鲤鱼 仿真完把程序下载到实验箱上进行测试 。 草鱼 最后对设计做出总结 。 草鱼草鱼 第 2 章 草鱼 FPGA 开发工具简介 草鱼 草鱼 2.1 草鱼 草鱼 FPGA 概述 草鱼 FPGA 现在已经取代 ASIC, 鲤鱼 实现其功能 。 草鱼 通常 ASIC 包含三种 : pork全定制 , 鲤鱼 半 定制(包括标准单元和阵列) , 鲤鱼 和可编程器件 。 草鱼 对于前面两种 , 鲤 鱼您需要支付的费用
29、项目不能重复使用的 NRE, 鲤鱼 主要用于芯片流片 , 鲤鱼 在分析工程开销 , 鲤鱼 成本一般是 10000 美元以上 , 鲤鱼 数以万计的 。 草鱼 如果不成功 , 鲤鱼 返工 , 鲤鱼 甚至多次返工的成本 , 鲤鱼 成本将上升 。 草鱼 高 成本 , 鲤鱼 高风险 , 鲤鱼 但通常的需求 , 鲤鱼 各种 ASIC 的成本 , 鲤鱼 NRE 费用分配给每一个产品的价格太高 , 鲤鱼 用户 通常是不能接受的 。 草鱼 然而 可编程逻辑器件 PLD 是 可以 解决上述问题的可编程逻辑器件 , 鲤鱼 是一种新型的ASIC, 鲤鱼 它有着 操作灵活 , 鲤鱼 易于使用 , 鲤鱼 投资风险小 和
30、开发迅速的 突出优势 , 鲤鱼 非常 适合产品的前期开发 , 鲤鱼 研究样本开发或 小批 量 的 产品 。 草鱼 FPGA 是一种 新型的 PLD, 鲤鱼 有着 PLD 所具有的优点 , 鲤鱼 而且其规模比一般的 PLD 规模要大 。 草鱼 草鱼 FPGA 主要特点有 : p ork用户不需要投片生产 , 鲤鱼 就能得到合用的芯片 ; porkFPGA 可做其它全定制或半定制 ASIC 电路的中试样片 ; pork其 内部有丰富的触发器和 I/O 引脚 ; pork是 ASIC 电路中设计周期最短 、 pork开发费用最低 、 pork风险最小的器件之一 ; pork 草鱼 FPGA 采用高速
31、 CMOS 工艺 , 鲤鱼 功耗低 ,鲤鱼 可以与 CMOS、 porkTTL 电平兼 容 。 草鱼 可以说 , 鲤鱼 FPGA 芯片是小批量系统提高系统集成度 、 pork可靠性的最佳选择之一 。 草鱼 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的 , 鲤鱼 因此 , 鲤鱼 工作时需要对片内的 RAM 进行编程 。 草鱼 用户可以根据不同的配置模式 , 鲤鱼 采用不同的编程方式 。草鱼 加电时 , 鲤鱼 FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中 , 鲤鱼 配置完成后 , 鲤鱼 FPGA 进入工作状态 。 草鱼 掉电后 , 鲤鱼 FPGA 恢复成白片 , 鲤
32、鱼 内部逻辑关系消失 , 鲤鱼 因此 , 鲤鱼 FPGA 能够反复使用 。 草鱼 FPGA的编程无须专用的 FPGA 编程器 , 鲤鱼 只须用通用的 EPROM、 porkPROM 编程器即可 。 草鱼 当需要修改XX 学院 毕业设计 3 FPGA 功能时 , 鲤鱼 只需换一片 EPROM 即可 。 草鱼 这样 , 鲤鱼 同一片 FPGA, 鲤鱼 不同的编程数据 , 鲤鱼 可以产生不同的电路功能 。 草鱼 因此 , 鲤鱼 FPGA 的使用非常灵活 7-9。 草鱼 草鱼 2.2 草鱼 VHDL 语言以及 Quartus 草 鱼 II 应用 草鱼 草鱼 VHDL 的英文全名是 Very-High-
33、Speed 草鱼 Integrated 草鱼 Circuit 草鱼 Hardware 草鱼 Description 草鱼Language, 鲤鱼 诞生于 1982 草鱼 年 。 草鱼 1987 年底 , 鲤鱼 VHDL 被 IEEE 和 美国国防部 确认为标准硬件描述语言 。 草鱼草鱼 VHDL 主要用于描述 数字系统 的结构 , 鲤鱼 行为 , 鲤鱼 功能和接口 。 草鱼 除了含有许多具有硬件特征的语句外 , 鲤鱼 VHDL 的语言形式和描述风格与句法是十分类似于一般的 计算机高级语言 。 草鱼 VHDL的程序结构特点是将一项 工程设计 , 鲤鱼 或称设计实体(可以是一个元件 , 鲤鱼 一个
34、电路模块或一个系统)分成外部(或称可视部分 , 鲤鱼 及端口)和内部(或称不可视部分) , 鲤鱼 既涉及实体的内部功能和算法完成部分 。 草鱼 在对一个设计实体定义了外部界面后 , 鲤鱼 一旦其内部开发完成后 , 鲤鱼 其他的设计就可以直接调用这个实体 。 草鱼 这种将设计实体分成内外部分的概念是VHDL 系统设计 的基本点 。 草鱼 一个完整的 VHDL 程序通常包括实体 (Entity)、 pork结构体(Architecture)、 p ork配置 草鱼 (Configuration)、 pork程序包集合 (Package)和库 (Library)5 个部分 。 草鱼 前 4 部分是可
35、分别编译的源设计单元 。 草鱼 库 用来 存放已经编译的实体 、 pork结构体 、 pork配置和程序包集合 10-12。 草鱼 草鱼草鱼 Quartus 草鱼 II 支持多种设计输入形式 , 鲤鱼 如 : pork原理图 、 porkVHDL、 porkVerilogHDL 以及 AHDL( Altera 草鱼 Hardware 草鱼 Description 草鱼 Language)等 , 鲤鱼 是一种 综合性 PLD 开发软 件 。草鱼 由于其 内嵌 带 自有的 仿真器和 综合器 , 鲤鱼 因而能够 完成从输入 设计 到配置 硬件 的 整个 PLD 设计流程 。 草鱼 而且它还 支持 A
36、ltera 的 IP 核 和 可编程系统( SOPC) 在 Altera的片上开发 , 鲤鱼 具有 LPM 宏功能 的 模块库 , 鲤鱼 用户可以 使用这些 成熟 的功能 模块 , 鲤鱼 让FPGA 的设计工作变得更简单 。 草鱼 同时 , 鲤鱼 Quartus 草鱼 II 支持很多 第三方 的 EDA 工具 , 鲤鱼因而 用户可以使用 自己 熟悉的第三方 EDA工具 来进行设计工作 。 草鱼 此外 , 鲤鱼 Quartus 草鱼II 草鱼 集合了 Matlab/Simulink 与 DSP 草鱼 Builder 等优秀的 EDA 工具 , 鲤鱼 各种 DSP 应用系统 在其平台上能够很快得以
37、 实 现 ; porkQuartus 草鱼 II是一 个 综合性的开发平台 , 鲤鱼 集嵌入式软件开发 、 pork系统级设计 和 可编程逻辑设计于一体 13-15。 草鱼 草鱼 2.3 草鱼 本章小结 草鱼 本章主要介绍了基于 FPGA 键盘扫描程序的开发工具 , 鲤鱼 简单地概述了 FPGA, 鲤鱼 主要讲述了FPGA 的原理及 FPGA 的设计流程 , 鲤鱼 另外还概述了 VHDL 语言的一些基本知识 , 鲤鱼 最后简单地介绍了 Quartus 草鱼 II软件 。 草鱼草鱼 XX 学院 毕业设计 4 第章 草鱼 基于 FPGA 的键盘扫描程序的设计 草鱼 草鱼 本次设计根据键盘扫描程序的
38、设计思路提出了系统的整体 电路框图 , 鲤鱼 对硬件实体部分即本设计中 4*4 矩阵键盘的扫描原理和 8 位 7段数码管的显示方式进行了简单概述 , 鲤鱼 根据整体的电路构架和硬件的实现原理编写键盘扫描程序 , 鲤鱼 将系统进行模块化设计 , 鲤鱼 主要分为时序产生模块设计 、 p ork键盘扫描模块设计 、 pork弹跳消除模块设计 、 pork键盘译码模块设计 , 鲤鱼用 VHDL 硬件描述语言分别编写各模块的程序 , 鲤鱼 在 QuartusII 中为 VHDL 语言程序分别建立项目 , 鲤鱼 在编译 、 pork仿真通过 , 鲤鱼 证实逻辑功能正确后 , 鲤鱼 在 File 菜单下选择
39、 Create/Update项中的 Create 草鱼 Symbol 草鱼 Files 草鱼 for 草鱼 Current 草鱼 File 即可 为此实体生成一个后缀为 .bsf的组件符号文件 , 鲤鱼 以后就可以在图形编辑器中调用此组件了 。 草鱼 用 Quartus 草鱼 II 图形编辑器将各模块联系起来 , 鲤鱼 形成顶层文件即本次设计的主体 。 草鱼 模块化的设计方法能明确设计思路 ,鲤鱼 也便于调试和修改 。 草鱼草鱼 3.1 草鱼 键盘扫描程序的总体电路设计 草鱼 根据设计思路提出键盘扫描程序的总体电路设计图 , 鲤鱼 如图 3.1 所示 , 鲤鱼 主要由 4*4 矩阵键盘 、 p
40、 ork键盘扫描电路 、 pork时序 产生电路(即分频电路) 、 pork弹跳消除电路 、 pork键盘译码电路 、 pork8位 7 段数码管显示电路构成 。 草鱼 整体的工作原理为 , 鲤鱼 通过对系统时钟提供的频率进行分频 ,鲤鱼 分别为键盘扫描电路和弹跳消除电路提供时钟信号 , 鲤鱼 键盘扫描电路通过由键盘扫描时钟信号控制不断产生的键盘扫描信号对键盘进行行扫描 , 鲤鱼 同时弹跳消除电路实时的对键盘的按键列信号进行采集 、 pork并将采集到的按键列信号传送到键盘译码电路进行译码 , 鲤鱼 译出与之对应的键码 , 鲤鱼 译出的键码将通过数码管显示电路相对应的 8段 7位数码管显示出来
41、 ,鲤鱼 得到最终的 按键结果 , 鲤鱼 完成本次设计的电路设计部分 。 草鱼 草鱼 1 2 3 45 6 7 89 0 A BC D E F弹 跳 消 除电 路键 盘 译 码电 路键 盘 扫 描 电 路键 盘 扫 描 信 号键 盘 输 入 按 键 数 据数 码 管 显 示分 频 电 路弹 跳 消 抖 时 钟 信 号键 盘 扫 描 时 钟 信 号系 统 时 钟 信 号草鱼 图 3.1 草鱼 键盘扫描的电路框图 草鱼 3.1.1 草鱼 矩阵式键盘扫描的工作原理 草鱼 XX 学院 毕业设计 5 1 2 3 45 6 7 89 0 A BC D E FK Y 0 ( 0 0 ) 1 1 1 0K Y
42、 1 ( 0 1 ) 1 1 0 1K Y 2 ( 1 0 ) 1 0 1 1K Y 3 ( 1 1 ) 0 1 1 1键 盘 扫 描 信 号经 提 升 电 阻 至 V C CK X 3K X 2K X 1K X 0草鱼 图 3.2 草鱼 4*4 矩阵式键盘的面板配置 草鱼 矩阵式键盘是一种常用的电子输入装置 , 鲤鱼 在平常的生活中 , 鲤鱼 矩阵式键盘在通信设备如手机 , 鲤鱼 信息终端如计算机 , 鲤鱼 家用电器如油烟机等各式电子产品上都具有很重要的作用 。 草鱼图 3.2 是一个 4*4 矩阵式键盘的 面板配置图 。 草鱼草鱼 键盘上上的每个按键都是一个机械开关 , 鲤鱼 当按键被按下
43、时 , 鲤鱼 则该键的电路便会输出低电平即赋值 0, 鲤鱼 反之 , 鲤鱼 如果没有按下按键则输出高电平即赋值 1。 草鱼 键盘的扫描由行信号 KY0 KY3 控制开始进行行扫描 , 鲤鱼 变化的顺序依次为 1110 1101 1011 0111 1110。 草鱼 每一次扫描一行 , 鲤鱼 依次进行循环 。 草鱼 例如现在的行扫描信号为 1011, 鲤鱼 表示目前正在扫描 9、 pork0、porkA、 porkB 这一行的按键 , 鲤鱼 如果这行当中没有按键按下的话 , 鲤鱼 则 KX3 KX0 输出为 1111; pork反之如果是 9 键按下 , 鲤鱼 则由 KX3 KX0 输出为 01
44、11。 草鱼草鱼 根据上面所述原理 , 鲤鱼 我们可得到各按键的位置与码值的关系如表 3.1 和 3.2 所示 。 草鱼草鱼 草鱼 表 3.1 草鱼 按键位置与数码的关系 KY3-KY0 1110 1110 1110 1110 1101 1101 1101 1101 KX3-KX0 0111 1011 1101 1110 0111 1011 1101 1110 按键号 1 2 3 4 5 6 7 8 草鱼 表 3.2 草鱼 按键位置与数码的关系 KY3-KY0 1011 1011 1011 1011 0111 0111 0111 0111 KX3-KX0 0111 1011 1101 1110 0111 1011 1101 1110 按键号 9 0 A B C D E F 若从 KX3 KX0 读出的值皆为 1 时 , 鲤鱼 代表该列没有按键按下 , 鲤鱼 则不进行按键译码的动作 ,鲤鱼 反之 , 鲤鱼 如果有按键按下时 , 鲤鱼 则应将 KX3 KX0 读出的值送至译码电路进行译码 。 草鱼草鱼 3.1.2 草鱼 数码管的显示原理 草鱼