VHDL课程设计S键盘.docx
文本预览下载声明
目录
TOC \o 1-5 \h \z 一、 课程设计的目的与任务 2
二、 课程设计题目 3
1、 指定题目: 3
2、 自选题目: 3
三、 课程设计的内容与要求 4
1、 设计内容 4
2、 设计要求 4
四、 实验仪器设备 4
五、 设计方案 5
1、 PS2 解码 5
2、 设计思路 11
3、 模块设计 11
4、 各模块分析 13
(1) PS2时钟检测模块 13
(2) PS2解码模块 16
(3) PS2组合模块 21
控制LED模块 25
PS2总的组合模块 28
六、 综合与仿真 31
1、 综合 31
2、 仿真 31
电平检测模块仿真 31
LED灯控制模块仿真 32
PS2_module 总模块仿真 33
七、 硬件下载 38
八、 心得体会 39
九、 参考文献 39
一、课程设计的目的与任务
熟练掌握EDA工具软件Quartusll的使用;
熟练用VHDL硬件描述语言描述数字电路;
学会使用VHDL进行大规模集成电路设计;
学会用CPLD\FPGA使用系统硬件验证电路设计的正确性;
初步掌握EDA技术并具备一定的可编程逻辑芯片的幵发能力;
二、课程设计题目
1、 指定题目:
0 :多功能计数器; 1 :数字秒表; 2 :简易数字钟; 3 :简易频率计;
4 :彩灯控制器; 5 :交通灯控制器; 6 :四路智力竞赛抢答器;
7 :简易微波炉控制器; 8 :表决器; 9 :数字密码锁;
我的的学号尾数是 2,所以我要做的题目是简易数字钟。由于我之前已经学过 Verilog HDL和VHDL所以简易数字钟相对于我比较简单,我完成了简易数字钟并 验收后,再选择了另一个自选题目来完成。
简易数字钟:设计一个以“秒”为基准信号的简易数字钟,显示时、分、秒, 同时可实现整点报时和清零(我已经完成,而且已经验收了) 。
2、 自选题目:
在完成了数字钟的设计后, 我选择了另一个设计的题目, 那就是PS2键盘扫描 所以这次课程设计我的报告主要详细写的是 PS2键盘扫描的程序,而不是简易数字
钟。
PS键盘扫描:设计一个 PS键盘扫描程序,能接受键盘的输入时钟和数据,区 别哪一个键输入,同时解译通码和断码,使用 LED灯来显示收到的数据。
三、课程设计的内容与要求
1、设计内容
( 1)系统功能的分析;
( 2)实现系统功能的实际方案;
(3)编写各功能模块的 VHDL语言程序;
( 4)对各功能模块进行编译、综合、仿真、分析;
( 5)顶层文件设计
( 6)对整个系统进行编译、综合、仿真、分析;
(7)在CPLDFPGA实验幵发系统试验箱上进行硬件验证;
( 8)写实验报告;
2、设计要求
( 1)按所布置的题目要求,每一位学生独立完成全过程;
( 2)分模块层次化设计;
VHDL语言设计,(3)各功能模块的底层文件必须用 VHDL
VHDL语言设计,
也可以用原理图设计。
四、实验仪器设备
PC机;
Quartusll 软件;
黑金FPGA实验幵发系统,芯片为 Cyclone II的EP2C5Q208C;
五、设计方案
1、PS2解码
图1为PS2的接口图。我使用的的右边的 PS2接口,即1脚为数据脚,5脚为 时钟脚,同时我编写的 VHDLf弋码只对1脚和5脚操作。
PS2CLK 二idle
PS2CLK 二
idle
V
¥
可」
PS2DATA
Start
DO
D1
02
D3
D4
D5
D6 D7
P
Stop
图 2 PS2
协议时序图图2为PS2协议时序图。由图可以解读出, PS2协议对数据的读取时“ CLK的下
降沿”有效,而数据的放置时在“ CLK的上升沿” 。PS2频率比较慢,大概为10KHN
第N位
属性
0
幵始位
1~8
数据位
9
校验位
10
结束位
表1 PS2数据说明
PS2的一帧数据时11位。对PS2进行解码,我们需要得到的是1?8位的数据位。 其他的位,可以使用取巧的方法编写。
键盘的编码有“通码(Make)和“断码(Break)”之分。通码相当于某个按键 按下了,断码相当于某个按键释放了。假设,我们按下了“ Z”键不放,大约每秒有
10个X “ 1A的通码(10KHZ,而当我们释放“ Z”键,就会输出断码 X “F0”和X
“ 1A”。同时,键盘编码一次只能有一个输出,即多个按键同时按下时,只有一个有
效。
下表为第二套PC键盘扫描码
键名
通
码
断
码
-
键名
通码
断码
-
键名
通
码
断码
A
1C
F0,1C
9
46
F0,46
[
54
FO,54
B
32
F0,32
、
0E
F0,0E
INSERT
*0,70
E0,F0,
70
C
21
F0,21
-
4E
F0
显示全部