

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业论文(设计) 论文题目: 基于 FPGA 的 PS2 键盘控制设计及仿真实现 作者声明 本毕业论文 (设计) 是在导师的指导下由本人独立撰写完成的, 没有 剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。对本论文(设 计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因 本毕业论文(设计)引起的法律结果完全由本人承担。 特此声明 作者专业 作者学号 通信工程 作者签名基于FPGA的PS2键盘控制设计及仿真实现 The Desig n and Simulatio n Impleme ntati on of the PS2 Keyboard Con trol based o
2、n FPGA 2013 年 5 月 10 日-10 - 本文简述了 PS2 键盘的特点和工作原理,重点介绍了在 FPGA 上实现 PS2 键盘的结 构设计和 VHDL 代码设计。 PS2 键盘具有价格低、通用可靠,且连接线少(仅使用 2 根信号线)的特点。并可满足 多种系统的要求。 FPGA( Field Programmable Gate Array)是一类高集成度的可编程逻辑器件,它结合 EDA技术以硬件描述语言、电路原理图、状机等形式输入设计逻辑;并提供功能模拟、时 序仿真等模拟手段,再经过一系列的变换,将输入逻辑转换成 FPGA 器件所需的编程文件, 以实现专用集成电路 ASIC。应用
3、 FPGA 设计 PS2 键盘控制器,不仅有硬件电路简单,更具灵 活性,集成度高更容易移植等特点,更重要的是现代 EDA(电子设计自动化)技术提供了一 种很好的途径,利用 VHDL 硬件描述语言和 FPGA 器件可以很方便地构建键盘扫描模块。 设 计使得使用 VHDL 语言基于 FPGA 芯片实现 PS2 键盘成为研究的方向。 本文对基于 VHDL 的 PS2 键盘实现进行了研究,并设计了 PS2 键盘。所做的主要工 作为: (1) 以 PS2 键盘控制的基本理论为依据,对其进行了详细的讨论。 (2) 本设计中采用了自上而下的层次化、模块化的设计思想,将整个接口划分为多 个模块,同时利用 VH
4、DL 语言的描述方法对各个功能模块进行了设计,最终完成了 PS2 键盘的系统设计。 (3) 运用 ISE 软件进行仿真。 关键词: VHDL ; PS2 键盘;ISE-10 - Abstract This paper describes the characteristics and work ing prin ciple of PS2 keyboard, in troduced in the structure of FPGA to realize the PS2 keyboard design and VHDL code design. PS2 keyboard has low price
5、 and reliable in general and less cables (USES only 2 signal lines). And can meet the requirements of a variety of systems. FPGA (Field Programmable Gate Array) is a kind of high level of integration of Programmable logic devices, it comb ined the tech no logy of EDA with hardware descripti on Ian g
6、uage (such as form in put, circuit prin ciple diagram, mach ine desig n logic; And provide the fun cti on simulatio n and timi ng simulatio n modeli ng tech no logy, the n after a series of tran sformatio n, which con verts the in put logic program ming files n eeded for the FPGA device, in order to
7、 realize the special integrated circuit ASIC. PS2 keyboard controller using FPGA design, not only the hardware circuit is simple, flexibility, high level of integration is more easy to tran spla nt, more importa nt is the moder n EDA (electro nic desig n automati on) tech no logy provides a good way
8、, using the VHDL hardware descripti on Ian guage and FPGA device can be easily con struct the keyboard sca n module. Desig n makes use of VHDL Ian guage based on the FPGA chip to realize the PS2 keyboard become the directi on of research. In this paper, the PS2 keyboard implementation based on VHDL
9、are studied, and design the PS2 keyboard. The mai n work done as follows: (1) to the PS2 keyboard control on the basis of the basic theory, and carries on the detailed discussi on. (2) the design adopts the top-down hierarchical, modular design thought, will the whole in terface is divided into seve
10、ral modules, at the same time, use of VHDL Ian guage descripti on method of each fun ctio n module desig n, fin ally completed a PS2 keyboard system desig n. (3) using ISE software simulation. Key words: VHDL; PS2 keyboard; ISE-10 - 1 概述 . 1 1.1 本选题研究的目的及意义 . .1. 1.2 本选题国内外研究状况综述 . 1. 1.3 本选题研究的主要内容
11、 . 2. 2 PS2 键盘的理论研究 . 3 2.1 PS2 键盘的结构特点 . 3. 2.2 PS2 键盘的工作原理 . 3. 2.3 PS2 协议 . 4. 3 ISE 工具概述 . 7 3.1 硬件描述语言 . 7. 7 ISE 使用方法. 12 4 PS2 接口的设计 . 16 4.1 模块结构设计 . 16 VHDL 代码设计 . 1.6 4.3 仿真验证 . 17 结语 . 18 主要参考文献 . 19 附录 . 20 附录 1 PS2 键盘接口程序设计 .20-10 - 11 本选题研究的目的及意义 现今生活中,随着社会的发展,各式各样的生活用品慢慢地走上了 智能的道路,越 来
12、越令人感觉到方便。这与一个优秀的人机交流界面密不可分。与此同时作为计算机最常 用的输入设备的键盘也日新月异。1981 年 IBM 推出了 IBM PC/XT 键盘及其接口标准。该 标准定义了 83 键,具 5 脚 DIN 连接器和简单的串行协议。采用我们现在提及的作为第一 套扫描码集然则它并没有主机到键盘的命令。为此, 1984 年 IBM 推出了 IBM AT 键盘接 口标准。该标准定义了 84101 键,与 PC 键盘不同的是它采用双向串行通讯协议,此协议 采用第二套键盘扫描码集并设有 8 个主机到键盘的命令。到了 1987 年,IBM 又推出了 PS2 键盘接口标准。该标准仍旧定义了 8
13、4101 键的基础上采用 6 脚 mini-DIN 连接器,此连接 器在封装上比 5 脚 DIN 连接器更小巧,仍然用双向串行通讯协议并且提供有可选择的第三 套键盘扫描码集,同时支持 17 个主机到键盘的命令。现在,市面上的键盘都和 PS2 及 AT 键盘兼容,只是功能不同而已。 在工业电子设备 智能化和升级换代迅速的电路设计中,常常需要使用键盘,而使用 标准 PS2键盘则可简化设计。由于 FPGA 不仅可以用编写代码的方法实现复杂逻辑电路, 而且其内部是由规则的逻辑阵列所组成的。因此利用 FPGA 设计键盘控制器,不仅使硬件 电路简单,设计周期短而且编码过程比通用 MCU 比,更加简单易行。
14、 12 本选题国内外研究状况综述 如果将 CPU 比作电脑的心脏,显示器比作电脑的脸,那么键盘就是电脑的嘴,是它实 现了人和电脑的沟通。它作为嵌入式系统的常用人机接口设备,在嵌入式系统中有着广泛 的应用。目前,无论是国外还是国内,各键盘制造厂商针对使用者对于键盘的功能性及使 用舒适度等需求,在设计上作了相当大的调整,就市场角度来看,键盘技术在可预期的几 年内将朝着以下几个趋势发展: (1) USB 介面设计:USB( Universal Serial Bus)即为一种可联结 127 个装置的万用 序列流排,同时支持 PC97 的一种外接标准,并成为目前电脑界最新的介面标准,因 USB 介面能够
15、提供更简单,更直接的联结方式,即插即用,可高速存取。据市场趋势显示,USB 已经发展为便于利用,增强功能及降低成本的标准。在 WinHEC 大会上,Microsoft 总裁 Bill Gates 大力倡导 USB 的标准下,不仅 Intel 全部新型的主机板均支持 USB 而且几乎所 有 PC 供应商都致力于发展 USB 的系统,因此它被预测成为整个新型 PC 周边设备产品爆 炸性创新的催化剂。 (2) 多媒体功能:键盘的设计已开始走向多媒体世界的舞台,它拥有操控多媒体周 边设备的功能同时,使用者还可依自己的需求,自行设定所需的应用功能于功能键上。多 媒体的市场正在快速发展中,键盘技术的发展也
16、必将顺应着它的潮流而不断改进,面对这 种改进,有人说是把简单的键盘复杂化(因热键必须和软件的驱动程式相配合)。也有人 认为:聪明的键盘就该如此。 (3)人体工学设计: 随着人们对于电脑的日趋依赖,逐渐衍生出了电脑症候群。针 -10 - 对此非必要性的伤害,市场上已逐渐出现并流行起号称符合人体工学原理的键盘。 PS2 键盘是 IBM 于 1987 年正式推出的,在整体设计上与 AT 键盘相差不大,更改的 最多的可能是主机到键盘命令的增加。此外,PS2 键盘出人意料的使用一种古怪的扫描码。 这使得它的兼容性大打折扣。正如大家所熟知的那样, PS2 系统并不流行,后来几乎没人 再用了。到了 20 世
17、纪中期,电子键盘代替了机械键盘,1936 年美国人 Dvorak 在 QWERT 式键盘的基础上发明 Dvorak 键盘。在 20 世纪 70 年代,一位名为 Lilian Malt 的发明家又 对 DVORAK 键盘作了进一步改进发明了 Malt 键盘。键盘的接口有 AT 接口、PS/2 接口和 最新的 USB 接口,高档的品牌机多采用 PS/2 接口,最早也是 IBM 公司的专利俗称 小口 不过越来越多新型主板都开始提供 PS/2 键盘接口。虽然目前 USB 作为新兴的结构,一些 公司迅速推出了 USB 接口的键盘,但 USB接口只是一个卖点,对性能的提高收效甚微, 可以说现在主流的还是
18、PS2 接口,因为它价格低、通用可靠,且连接线少(仅使用 2 根信号 线)并可满足多种系统的要求。 13 本选题研究的主要内容 PS/2 是较早电脑上常见的接口之一,用于鼠标,键盘等设备。虽然 IBM 的 PS/2 电脑 在市场中失败了,但是 PS/2 接口一直沿用至今,键盘是嵌入式系统的重要输入设备, 实现 人机交互的重要途径,随着标准 PS/2 键盘技术的不断成熟,在嵌入式系统中,用标准 PS/2 键盘会越来与广泛。由于 VHDL 所完成的电路设计,可以经过简单的综合与布局,快速的 烧录至 FPGA 上进行测试,因此它成为 IC 设计验证的技术主流。利用 VHDL 通过模块组 合可以实现特
19、定的功能,所以对于标准 PS/2 键盘,用 VHDL 设计基于 FPGA 的标准 PS/2 键盘接口,实现了标准 PS/2 键盘到 Niosll嵌入式 CPU 的数据单向通信。 本文主要分为 5 章,章节安排如下: (1) 绪论。主要介绍了开题的背景和研究意义,以及 PS2 键盘的国内外研究现状以 及课题的研究内容和具体工作等。 (2) PS2 键盘的理论研究。主要介绍 PS2 键盘的基本知识以及其设计的基本方法。 (3) ISE 工具概述。介绍了 VHDL 硬件语言及其设计方法、ISE 软件的运用等。 (4) PS2 键盘控制的设计。介绍了 PS2 键盘控制的设计的模块划分和 PS2 键盘控
20、制 的各模块的实现,并对 PS2 键盘控制设计进行了系统仿真和验证。 (5) 结语。主要介绍本论文中的优点和不足之处。-10 - 2 PS2 键盘控制的理论研究 键盘是嵌入式系统的重要输入工具,是实现人机交互的重要手段之一。随着标准 PS2 键盘技术的成熟和价格的不断下降, 使得在嵌入式系统的设计中用标准的 PS2 键盘取代自 制简易的扫描式矩阵式键盘成为可能。现在主流的是 PS/2 接口,键盘和鼠标都可以使用 PS/2 接口,它内嵌自动去除按键抖动的设计自动地识别键的按下与释放, 软硬件可发简便, 价格便宜、稳定可靠,将 PS2 键盘作为嵌入式系统的输入设备已经成为可行的方案。 2.1 PS
21、2 键盘的结构特点 现在主流的是 PS/2 接口,即具有六脚 mini-DIN 连接器的键盘则称之为 PS/2 键盘。PS/2 最初由 IBM 开发,它的连接端口只有四个脚有意义。分别是第 1 脚 DATA(数据脚)、第 3 脚 Grou nd(电源地)、第 4 脚+5V(电源脚)和第 5 脚 Clock(时钟脚)。 PS2 引脚结构和外形如图 2.1 所示: 图 2.12.1 PS/2PS/2 硬件接口外形图 2.2 PS2 键盘工作原理 PS2 键盘靠 PC 的 PS2 端 口提供+5V 电源,由于 Clock(时钟脚)和 DATA(数据脚)两个脚都 是集电极开路的,则必须接大阻值的上拉电
22、阻。一般上拉电阻设置在主设备中 ,主从设备 之间的数据通信采用双向同步方式传输,时钟信号一般由从设备产生。 它们平时一般保持 高电平,并很容易下拉到地(逻辑 0)任何连接到 PS2 键盘上的设备在时钟和数据线上都必 须接大阻值的上拉电阻,有输出时才会被拉到低电平,之后会自动上浮到高电平。(即置 0 就把线拉低,置 1 就把线上浮成高电平)。数据和时钟的一般接口结构如图 2.2 所示: +5V 各引脚定义为: 1: Data 线 2:未用 3: Ground 线 4: +5V 电源线 5: Clock 线 6:未用 1 Data i_ - Clock c C M D -10 - 图 2.22.2
23、 集电极开路-10 - PS2 键盘通信协议履行一种双向同步串行协议。也就是说每次数据线上发送一位数据 并且每在时钟线上发生一个脉冲就被读人, PS2 键盘可以发送数据到主机,而主机也可以 发送数据到设备,但主机总是在总线上有优先权,因此它只需把时钟拉低就可抑制在任何 时候来自于键盘的通讯。 从键盘发送到主机的数据在时钟信号的下降沿当时钟从高变到低的时候被读取;从主 机发送到键盘的数据在上升沿当时钟从低变到高的时候被读取;不论通讯的方向怎样键盘 总是产生时钟信号,如果主机要发送数据它必须首先告诉设备开始产生时钟信号,这个过 程最大的时钟频率是 33kHz 而且大多数设备工作在 10 20kHz
24、。 2.3 PS2 协议 PS/2 协议是键盘与其他硬件通信时的一种双向半双工通信协议,键盘通过 Data 线向外 发送数据,数据时钟由键盘产生,在协议中数据的传送格式为短帧格式,一般为 11 位,各 位的含义如下图 2.3 所示: Star D0 D1 D2 D3 D4 D5 D6 D7 Parity Stop t 图 2.32.3 数据帧的含义 Start:起始位,总为 0(低电平) D0D7: 8 位数据位(低位在前,高位在后) Parity :奇偶校验位(为奇校验) Stop:停止位,总为1(高电平) (1)设备到主机的通讯: CLOCK DATT 图 2.42.4 键盘发送时序 键盘
25、发送时序如图 2.4 所示。键盘首先会检查 Clock 线和 Data 线是否同时为高电平,如 果不是,那么是主机抑制了通讯设备必须缓冲任何要发送的数据直到重新获得总线的控制 权键盘有 16 字节的缓冲区。如果是,那么键盘则产生 Clock 信号,并将待发的数据按照数 据帧的格式逐位放在数据线上,数据线在时钟的高电平期间改变状态,时钟的下降沿将数 据锁定到数据线上,此时外界就可以到数据线上读取数据。键盘同步时钟的最大频率为 33KHZ, 般情况下使用 1020KHZ 的频率。推荐值在 15kHz 左右,也就是说,Clock(时 钟脚)高、低电平的持续POTT Y THRAP 7 ATAD 6
26、ATAD 5 ATAD 4 ATAD 3 ATAD 2 ATAD 1 ATAD o ATAD -10 - 时间都为 40 卩。每一数据帧包含 1112 个位,具体含义如表 2.2 所示:-10 - 表 2.22.2 数据帧格式说明 1 个起始位 总是逻辑 0 8 个数据位 (LSB )低位在前 1 个奇偶校验位 奇校验 1 个停止位 总是逻辑 1 1 个应答位 仅用在主机对设备的通讯中 表中,如果数据位中 1 的个数为偶数,校验位就为 1;如果数据位中 1 的个数为奇数, 校验位就为 0;总之,如果数据位中 1 的个数加上校验位中 1 的个数总为奇数,那么总进行 奇校验。 (2)主机到设备的通
27、讯: CLOCK I nnrinnnnnnnni DATA-二匚工匚匚匚匸 图 2.52.5 键盘接收时序 键盘接收时序如图 2.5 所示。首先 PS/2 设备总是产生时钟信号如果主机要发送数据, 它必须先下拉时钟线(至少 100us)抑制通信,表示请求发送,然后释放时钟。在时钟 信号的上升沿,数据被锁存读取;在时钟信号的低电平,数据线改变状态。 并且设备应该在不超过 10 ms 的间隔内检查这个状态。当设备检测到这个状态它将开始 产生时钟信号并且时钟脉冲标记下输入八个数据位和一个停止位主机仅当时钟线为低的 时候,改变数据线而数据在时钟脉冲的上升沿被锁存这在发生在设备到主机通讯的过程中 正好相
28、反。 在停止位发送后设备要应答接收到的字节就把数据线拉低并产生最后一个时钟脉冲 如果主机在第 11 个时钟脉冲后不释放数据线设备将继续产生时钟脉冲直到数据线被释放然 后设备将产生一个错误。主机可以在第 11 个时钟脉冲应答位前中止一次传送只要下拉时钟 线至少 100us 即可。 其中主机到设备通讯的详细过程图如图 2.6 所示:POTT YTRAP 7ATAD 6ATAD 5ATAD 4ATAD 3ATAD 2ATAD 1ATAD OATAD -10 - 图 2.62.6 主机到设备的过程 图中描述了两个重要的定时条件:(a)设备开始产生时钟脉冲的时间必须步大于 15ms; (b)数据包被发送
29、的时间必须不大于 2ms。 3 ISE 工具概述 随着计算机软件、硬件和集成电路制造技术的飞速发展,数字电路硬件设计复杂程度 的快速增长,以及产生的设计成果可继承性的需要,对数字电子系统的设计方法产生了极 大的影响,传统的以中小规模集成电路为基础模块、以电路图为表达方式的数字电子系统 的设计方法正逐步被EDA 技术的设计方法所取代。 3.1 硬件描述语言 硬件描述语言(HDL,Hardware Description Language 是 EDA 技术的重要组成部分, 常用的硬件描述语言有 VHDL、Verilog、ABEL 等,VHDL 是 EDA 技术的主流硬件描述语言 之一,也是本文设计
30、所采用的硬件描述语言。 3.1.1 VHDL3.1.1 VHDL 的特点 VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特 征的语句外,VHDL 的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。 VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模 块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体 的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成 后,其他的设计就可以直接调用这个实体。这种将设计实体分成内、外两部分的概念是 VHDL 系统设计的基本点。相对于
31、其他硬件语言的优势如下: (1) VHDL 语言功能强大,设计灵活 VHDL 语言具有强大的语言结构,只需采用简单明确的 VHDL 语言程序就可以描述十 分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外, VHDL 语言能够 同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟 的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计 方法;既支持模块化设计方法,也支持层次化设计方法。 昶昶a - b - CLOCK n - DATA V TOODOOOOOCT TA0OCLOCK n TL DATA 0 1 2 3 4 5 6
32、 7 Y E C V E D A A A A A A T A D A K C A -10 - (2) VHDL 语言覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级 电路;描述方式既可以采用行为描述、 寄存器传输描述或者结构描述, 也可以采用三者的 混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件 电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。 VHDL 语言既 支持标准定义的数据类型, 也支持用户定义的数据类型, 这样便会给硬件描述带来较大的 自由
33、度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在:对于同一个硬件电路的 VHDL 语言描述,它 可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一 个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言具有良好的可读性,且易于修改 VHDL 语言既可以被计算机接受,也容易被人们所理解 ;同时在硬件电路设计过程中, 主要的设计文件是用 VHDL 编写的源代码, 因 VHDL 语言易读和结构化的特点, 所以易于 修改设计。 (5) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时,设计人员并不需要首先
34、考虑选择进行设计的器件。 这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问 题。当硬件电路的设计描述完成以后, VHDL 语言允许采用多种不同的器件结构来实现。 (6) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库(library)的设计方法。在设计过程中,设计人员可以建立各种可 再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设 计,而是一些模块的累加。 这些模块可以预先设计或者使用以前设计中的存档模块, 将这 些模块存放在库中,就可以在以后的设计中进行复用。 3.1.2 VHDL3.1.2 VHDL 的基本程序结构 一个相
35、对较完整的 VHDL 设计由实体(Entity )、结构体(Architecture)、配置 (Con figuration )、程序包和程序包体(Package 以及库(Library) 5 个部分组成。 其各自作用分别为下表 3.1 所示: 表 3.13.1 各部分作用 实体(Entity) 描述所设计的系统的外部接口信号, 定义电路设计中 所有的输入和输出端口 结构体(Architecture) 扌田述系统内部的结构和仃为 包集合(Package) 存放各设计模块能共享的数据类型、常数和子程序等 配置(Configuration) 指定实体所对应的结构体 库(Library) 存放已经编
36、译的实体、结构体、包集合和配置 每一个 VHDL 程序并不是都具备以上四个部分的,只有一个实体和一个与之对应的结 构体是必须具备的。 -10 - VHDL 的基本设计单元结构:程序包说明、实体说明和结构体说明三部分 . 3.1.3 VHDL3.1.3 VHDL 语言的使用 (1)实体 实体描述了设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通 信界面。它也是设计的基本模块和设计的初级单元,在分层次设计中,顶层有顶级实体, 含在顶级实体中的较低层次的描述为低级实体,通过配置可把顶层实体和底层实体连接起 来。实体语句用关键词 ENTITY 开头,实体名 rsff 是描述的符号名,在
37、结束实体语句的 END rsff 之间,实体语句可以用关键词 BEGIN 把实体语句分成两部分:即 BEGIN 之前是实体说 明,BEGIN 之后是实体语句。在 ENTITY 语句的实体说明部分,常用 PORT 付语描述实体对 外界连接的端口(数目、方向和数据类型)。实体 rsff 有 4 个端口,Set/Rese 是输入 IN 模式, Q/QB 是输出 BUFFER (缓冲)模式,都为 BIT 类型。 实体的语法格式如下: ENTITY 实体名 IS GENERIC (常数名:数据类型:设定值; 常数名:数据类型:设定值); PORT (端口名:端口模式 数据类型; 端口名:端口模式 数据类
38、型); END ENTITY 实体名; 实体名由设计者自由命名,用来表示被设计电路芯片的名称,但是必须与 VHDL 程序 的文件名称相同。要与文件名一致; 其中,GENERIC 是用于说明设计实体和其外部环境通信的对象, 规定端口的大小、实 体中子元件的数目、实体的延时特性等。只能用整数类型表示,如整型、时间型等,其他 类型的数据不能逻辑综合。格式如下: GENERIC (CONSTANT属性名称:IN子类型标识:=静态表达式,); PORT 关键字用于定义模块的端口,它的格式如下: PORT(SIGNAL端口名称:方向类型标识BUS:=静态表达式, SIGNAL端口名称:方向类型标识BUS:
39、=静态表达式, J SIGNAL端口名称:方向类型标识BUS:=静态表达式); SIGNAL : SIGNAL 是关键字,但是由于 PORT 之后必须是信号类,所以一般可以 将SIGNAL 关键字省略。 端口方向:IN, OUT,INOUT,BUFFER 表明端口方向的关键字如表 3.2 所示: 表 3.23.2 关键字的含义 -10 - 说明符 含义 IN (输入) 信号进入实体内部,内部的信号不能从该端口输出。 OUT (输出) 信号从实体内部输出,不能通过该端口在实体内部反馈使用 INOUT (双向) 信号不但可以输入到实体内部,还可以从实体内部输出,也 允许用于内部反馈。 BUFFER
40、 (缓冲) 信号输出到实体外部,同时也可以通过该端口在实体内部反 馈使用。 OUT和 BUFFER都可定义输出端口如图 3.1 所示; 图 3.13.1 输出端口引脚图 若实体内部需要反馈输出信号,则输出端口必须被设置为 BUFFER,而不能为 OUT。 (2)结构体 结构体描述实体的行为功能,一个实体可以有多个结构体。结构体是一个基本设计单 元,它具体地指明了所设计模块的行为、元件及内部的连接关系,也就是定义了设计单元 具体的功能。结构体对其基本设计单元的输入/输出关系可以用 3 种方式进行描述,即行为 描述(基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)和结构描述(逻 辑元件连
41、接描述)。不同的描述方式只体现在描述语句上,而结构体的结构是完全一样的。 由于结构体是对实体功能的具体描述,因此它一定要跟在实体的后面。 结构体的语法格式如下: ARCHITECTURE 结构名 OF 实体名 IS 说明语句 BEGIN 功能描述语句; END 结构体名; 其中说明语句用于声明该结构体将用到的信号、数据类型、常数、子程序和元件等。 声明的内容是局部的。而功能描述语句则是具体描述结构体的功能和行为。 VHDL 结构体描述常常用到 3 种语句结构: PROCESS 语句结构 -10 - 进程语句是一种并发处理语句, 在一个结构体中多个 PROCESS 语句可以同时并行运行 (相当于
42、多个 CPU 同时运作)。PROCESS 语句是 VHDL 语言中描述硬件系统并发行为的最 基本语句。PROCESS 语句的格式如下: 进程名:PROCESS(信号 1,信号 2,) BEGIN J END PROCESS; BLOCK 语句结构 BLOCK 语句的格式如下: 块名:BLOCK(条件) 参数 GENERIC 说明;参数映射; 端口说明;端口映射; 块说明语句 BEGIN 并发语句组; END BLOCK 块名; BLOCK 放在结构体的并行语句组中。和 PROCESS句不同,BLOCK 内的语句是并发 执行的。 只要 BLOCK 右边的条件满足, BLOCK 内的语句就被执行。
43、 如果省略条件, 表示 本 BLOCK被无条件执行。 子程序结构 所谓子程序结构就是将一部分实现代码放到公用的程序 (即程序包 Package 文件中实 现。子程序在调用时首先要进行初始化,执行结束后子程序就终止,再调用时要再进行初 始化。因此子程序内部的值不能保持,子程序返回以后才能被再调用,它是一个非重入的 程序。 VHDL 中有两种类型的子程序一过程(Procedure 和函数(Function)。 (a) 过程 过程的格式如下: PROCEDURE 过程名(参数 1;参数 2;, ) IS 定义语句; BEGIN 顺序语句组; END 过程名; 每个参数的说明格式如下: 参数名:方向类
44、型 -10 - 方向一般为 3 种:IN、OUT、INOUT。如果方向为 IN 则可省略方向说明。 (b) 函数 函数的格式如下: FUNCTION 函数名(参数 1;参数 2;, ) RETURN 数据类型 IS 定义语句; BEGIN 顺序语句组; RETURN 返回变量名; END 函数名; 3.2 ISE 使用方法 ISEISE 的主要功能 ISE 的主要功能包括设计输入、仿真、综合、下载和实现,涵盖了可编程逻辑器件开 发的整个过程,从功能上讲,完成 CPLD/FPGA 的设计流程且无需借助任何第三方 EDA 软件。 下面简要说明各功能的作用: (1) 设计输入:ISE 提供的设计输入
45、工具包括用于 HDL 代码输入和查看报告的 ISE 文本 编辑器 (The ISE Text Editor) ,用于原理图编辑的工具, 用于生成 IP Core 的 Core Generato, 用于状态机设计的 StateCAD 以及用于约束文件编辑的 Constraint Editor 等。 (2) 综合:ISE 的综合工具不但包含了 Xilinx 自身提供的综合工具 XST,同时还可以内 嵌Mentor Graphics 公司的 Leonardo Spectrum 和 Synplicity 公司的 Synplify,实现无缝链接。 (3) 仿真:ISE 本身自带了一个具有图形化波形编辑功
46、能的仿真工具 HDL Bencher, 同 时又提供了使用 Model Tech 公司的 Modelsim 进行仿真的接口。 (4) 实现:此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及 增量设计等高级功能。 (5) 下载:下载功能包括了 BitGen,用于将布局布线后的设计文件转换为位流文件, 还包括了 IMPACT,功能是进行芯片配置和通信,控制将程序烧写到 FPGA 芯片中去。 ISEISE 的使用方法 (1) 创建工程 用 ISE 完成一个 HDL 设计的仿真,必须建立一个 ISE 工程。ISE 的向导功能,能帮助开 发者迅速创建仿真工程。 启动 ISE,单击菜单【F
47、ile】/【New Project,就会出现对应的Createew Project 窗口。窗口中包含工程名、工程路径、 Toplevel source type 等。 单击 Create New Project 窗口上的【Next按钮,弹出 Device Properties 的窗口。 直接单击【Next进入下一步,一直点击【Next直到【Finish完成。 完成后在 Sources 窗口中显示工程文件夹以及工程所用芯片。右击可以新建文件,添 -10 - 加已经写好的文件,添加文件并复制该文件到工程文件夹中。新建文件的类型,不同的类 型有着不同的功能和意义。我们选择 VHDL Module 类
48、型,输入一个名字点击【Next,进 入下一级的添加实体端口,输入端口名和端口的类型及位数点击 【Next,就进入了最后的 Summary 窗 口,上面给出了该文件的概要。 输入要运行的程序,这样一个工程就建立完成了。 (2) 编译 代码编写好后, 点击保存, 然后检查看编写代码是否有错误, 如图 3.2 所示, Check Syntax 点击检查后是绿色的勾,则代码没有语法错误,可以进行下一步功能仿真。-10 - Pm li ITa-v 3. f!: Al O l 砂Fafl D X I fL Ben(LVL 0 |CitS41 I j . VUmfK 1 kd-yta u* d sc c3
49、sSOD RZOG VI *w: 四 Imp! FZ 丸 - ff4EK4 E S t B 4-h 41* 1 O X t o * 丿* ”-芥搭尸圈丨士 卞1冃 u E ;尸*? s nmdw L忙 ruA hliSlZ =昶录化 &吩iP li 3SX t3 dii V Jh B K irp. a N-6 JF*X*DP 込吕訊 H*ujrwLixLK S:nm vy/Rvler s 14 si rb Vti i V; i * v Ua ax- 匚口nx tr a xiA x Synth*! E XST Vi HW ETL S c-Ham .-ti c *i T mrie1 v.n
50、r 圭ch Ch.ck Syn l 4-6 7 eft 4 9 50 5X 52 53 5S Imp-14r*4nt 9ti c Gvnwr wt Fr 9 EI- uwn 3 xi F 工 D 1 Fil*i entity top xc IPCirc ( clx xn dlr Ln P-9-2* 口 3.1c a 口曰定超; a亠上口 口 : se J.二 out dip DUE. B ttl_l 口口 JLQ J 青匸耳 丄凸#!.亡工 in 3 c d.-XcgX c j! 1 n ? 1 ri_ J :T0 1. j 口口匸 STD_L.OGTC_VECTOR ( dLownco O
51、J 5TD_L0StC_VECTOR (3 dowut口 O); STD LCX3IC 鼻匸uti VUiHie B-ehavi. 口at top 0 3J.Qrna.X die弓”勻口3.1c : s,cc3_lQa,i.c!1? sxg-no.工 dat 冃1tDI_lciQrXc_Vector (Xd CIDWXI如口 F ankiD-n: nc dii-v-cl 1c 3 poxc ( Cl k i i ft * tdl_ cl lc-4口O : 口ui匸 勻匸. Lag-Xcif sc-ancl k ? out zs t d_L-OQTXC coinxi0nen.c Jc鼻空_3o口
52、Hittl JLM p 曰 * = ar (P. 4!l!d) 一 = KI.lxnxlSE la.b 1 lJE vilGfiiTd. xxac top. vhdl H 讣叫怕 h耳魯、 口只刊 b*%L *C1 X FL 1 ( lop. uaf Runixinf Ftf &C4-XX4S: t*p DdiMd 砲L . DS L tn Sqam u-r/B.rp4r IS 晁 DnX L F: ITt a 1 L li x 曲 jr Vstr CaaiilriiiaHii V if 5yu.tJi EB JiST Vi* RTL Scbw la Yi w T. diGoilp口*
53、 Sh!xi. pi y fkl* JK * - Slu-t | *4 D xicn COUEOI* I d TiUTlFi i CiTj-inr- WZWTWT- Fll心卜 图 3.33.3 添加图形仿真文件 选择测试程序,点【Next】【Finish】 双击测试文件,到如图 3.4 所示界面: -10 - 图 3.43.4 测试程序界面 删除此段程序,添加如图 3.5 所示程序: 0 丁芳E Fra jrjiizt Nivri or (Pw 4 SiO 1 kJcttjlinTirrL t 菲站 1 t, irhcl* 目目 il=昭昭it Pci-j e ct Qurce: prece
54、ss oold Jti.nd.ow L毗毗 out jelp B kJ 白白; Q X | Q |斗尹倉血戸斗尹倉血戸13|巨巨=% H ffl * 軌酋t D E3 gjl 4 VAfi n iyim-ufy 图 3.53.5 修改程序界面 点 Finish 进入波形编辑界面,如图 3.6 所示(rst 是要编辑的波形)Lj x ISim Simulator &2 Fal 83 begin 04 扫吕 for LODn clr-c 1 r; 67 WBXC- f-OE: IQQTig ; QB end pr*口口cass; as praciesa 30 begixn 亡亡 lkWCT
55、f S3 W&1C- f & 2 0 0 A 3 ; 占含 C1X=B1 r ; 94 WQX f or 2 ddna- SS end pEQceSp S7 pzroces SB b*0 ft 勺与 P92tfllt=B0r ; 10D U01 璋璋 for 10*07119; 101 pa2clk-=bl,; 102 w& t for lOQnaj; 103 194 end pro-cessp 105 r&eesa 10 bgln 107 paSdaLt.a=: 0 *; IDS wait for SOOnaf 109- p32da 七七 n丈丈11 f 11
56、0 wait fox 2 0 0 x12; 111 end pjcoe a 4 4 A -wr* - EtQ 5 i nul At i o: iimol ate ISeiiiavujr aJ. model E h-vi or u2L Cliftck Soti-uc -10 - 图 3.63.6 波形编辑界面-10 - 4 PS2 接口的设计 4.1 模块结构设计 本设计则采用自顶向下的方法。考虑需要设计以下几部分模块 :串并转换模块,分拣 接收模块,控制模块,封装发送模块等。这几部分的逻辑关系如图 4.1 所示: Data 图 4.14.1 模块逻辑间关系 其中串并转换模块的主要作用是接收和发
57、送传输数据,并能够将串行数据转变成所需 要的并行数据。 而分拣接收模块的功能则是把串并转换模块传过来的数据包按照一定的要 求进行分拣提取,从而获得有用的信息。控制模块是整个设计模块中的核心,由于 PS/2 接 口是半双工串行总线,因此其发送和接收是不能够同时进行的, 整个设计中控制模块不仅 要对其时序进行严格的控制而且负责协调整其全过程。 同时在本设计中也采用了状态机的 设计思路。封装发送模块和分拣接收模块相似,只是要把要传送的命令数据转变成 PS/2 协 议要求的发送数据包的格式。 Clock 串并转换 控制 分拣接收 封装发送 -10 - 4.2 VHDL 代码设计 整个设计的流程图如图
58、4.2 所示: 当系统上电或复位的时候,主设备会首先向键盘发送初始化信号,在得到键盘的应答 信号后,系统则进入到了总线空闲状态,此时可以进行数据的发送和接收,但由于主设备 拥有更高的优先级,因此正处在接收状态时如果得到发送请求 ,会中断数据接收,直接进 入数据发送状态。使用 ISE 14.4 对设计进行了软件仿真,按照模块化的设计思路分别对每 个模块独立进行了仿真。图 4.3 是接收数据模块的仿真时序图。 图 4.24.2 设计流程图 发送状态 -10 - 4.3 仿真验证 本文在 ISE 14.4 环境下对 PS2 键盘接口时序进行仿真。仿真图如图 4.3 所示: 图 4.34.3 仿真图-
59、10 - 近年来,随着社会的发展,电子产品越来越多的走上了 智能的道路,成为了我们生 活中必不可少的一部分。随着计算机的普及,以及电子设备之间相互沟通的更加频繁,女口 今键盘是嵌入式系统的重要输入工具,是实现人机交互的重要手段之一。本论文为实现 PS2 键盘接口完成了以下研究: 首先, 以PS2协议接口的基本理论为依据, 论述了 PS2键盘接口的结构及设计, 先介绍 VHDL和 FPGA 的相关知识,PS2 键盘的基本原理及其电路模块的划分,并详细叙述了键盘 扫描电路、键盘译码电路、按键标志产生电路、时钟模块以及键盘顶层电路等四个模块的 原理及实现过程。在设计中,利用 VHDL 硬件描述语言在
60、 FPGA 芯片上实现键盘接口设计并 利用仿真 FPGA 软件进行仿真。 为了更好的验证仿真结果的正确性,文中应用了 ISE 软件对设计的电路进行仿真测试, 由于某些参数的设置不成功,没有能正确仿真出预先设计的波形指标。从以上对 PS2 键盘 接口模拟仿真结果可以看出,整个时序不完全满足 PS2 键盘的时序要求,但是由于个人水 平有限,在短时间内没有设置成功。导致在设计中有很多不足之处没有解决,同时在实际 中运用,一些理论完美化的设计需通过实际验证来判断接口的顺利传输。 本人认真进行了课题的研究并完成了本论文,由于作者水平有限,论文中可能仍有错 误和不足之处,敬请大家批评指正。 最后,感谢指导老师的关怀和细心的指导,感谢同学们的帮助。谢谢!-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婴幼儿常见疾病与预防复习试题及答案(一)
- 2025年彩票企划笔试高频考点梳理
- 2025年军队文职医学影像笔试模拟题集
- 评中级职称的课件
- 产品市场分析调查报告框架及方法
- 年合规培训课件
- 2025年度高品质住宅小区车库车位租赁及增值服务合同
- 2025年智能家居系统安装与交付验收服务合同
- 2025年物联网设备安全监测与维护服务合同
- 2025年度校园体育设施深度清洁与维护服务合同
- 血液透析中心护士手册
- 高一年级英语学法指导市公开课一等奖省赛课获奖课件
- 2024年《防治煤与瓦斯突出细则》培训课件
- 2024-2025学年人教精通版四年级英语上册全册教案
- 运维巡检服务方案
- 河南航空港发展投资集团招聘笔试真题2024
- 微机五防系统培训课件
- 心脏骤停后高质量目标温度管理专家共识2024
- 气道解剖知识
- 教学课件-《燃烧学(第2版)》徐通模
- 《中国心衰指南深度解析》课件
评论
0/150
提交评论