1、基于 FPGA 的矩阵键盘接口电路的设计1目 录目录 -11.绪论 -31.1 FPGA 概况 -31.2 本课题的研究意义 -41.3 本章小结 -42. VHDL 语言 -52.1 VHDL 语言概述 -52.2 VHDL 语言的优点 -62.3 利用 VHDL 语言设计数字系统的特点 -82.4 VHDL 语言的基本结构 -92.5 本章小结 -103.矩阵键盘接口电路原理和数码管显示原理 -103.1 矩阵键盘接口电路的原理 -103.2 数码管显示原理 -123.3 本章小结 -124.总体设计和各模块设计 -134.1 时钟产生模块 -13基于 FPGA 的矩阵键盘接口电路的设计2
2、4.2 键盘扫描模块 -144.3 数码管显示模块 -144.4 顶层电路实现 -144.5 本章小结 -14附录 1:总体设计电路原理图: -15附录 2:硬件实物图 -15附录 3:EP1C3T144C8N 的 PCB 电路图 -16附录 4:顶层电路实现的具体程序 -16附录 5:时钟产生模块实现的具体程序 -17附录 6:键盘扫描模块实现的具体程序 -18附录 7:数码管显示模块实现的具体程序 -245.心得体会 -26基于 FPGA 的矩阵键盘接口电路的设计31.绪论1.1 FPGA 概况早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可
3、擦除只读存储器(E2PROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。其后出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的 PLD 由一个 “与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与或”表达式来描述,所以 PLD 能以乘积和的形式完成大量的组合逻辑功能。这一阶段的产品主要有 PAL(可编程阵列逻辑)和 GAL(通用阵列逻辑)。 PAL 由一个可编程的“与”平面和一个固定的“或 ”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL 器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM 技术和 E
4、2PROM 技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“ 与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。PLA 器件既有现场可编程的,也有掩膜可编程的。在 PAL 的基础上又发展了一种通用阵列逻辑(GAL、 Generic ArrayLogic),如 GAL16V8、GAL22V10 等。它采用了EPROM 工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期的PLD 器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。为了
5、弥补这一缺陷,20 世纪 80 年代中期,Altera 和 Xilinx 分别推出了类似于 PAL 结构的扩展型 CPLD(Complex Programmable Logic Dvice)和与标准门阵列类似的 FPGA(FieldProgrammable Gate Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了 PLD 和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品不需测试、质量稳定以及可实时在
6、线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在 10 000 件以下)之中。几乎所有应用门阵列、PLD 和中小规模通用数字集成电路的场合均可应用FPGA 和 CPLD 器件。基于 FPGA 的矩阵键盘接口电路的设计41.2 本课题的研究意义近年来 EDA 技术在电子领域引发的技术革命,推动着电子技术的迅猛发展,为世人所瞩目,而 FPGA 为代表的可编程逻辑器件的应用,更是受到业内人士的普遍关注。伴随着大规模集成电路和计算机技术的高速发展,在设计工业自动化,仪器仪表,计算机设计与应用、通信、国防等领域的电子系统中,FPGA技术的含量正以惊人的速度提升。将尽可能大的完整的电子系统在
7、单一 FPGA芯片中实现已成为现实,电子类新技术项目的开发也更多地依赖于 FPGA 技术的应用。作为 FPGA 研究课题之一的矩阵键盘控制接口电路的设计,在 FPGA 设计中是一个经常被提到的话题,就像是利用 PFGA 设计数字中一样,虽然简单,但是却是一个很有研究意义的话题,涉及到怎么样才能是 FPGA 资源更加充分利用,现在很多电子产品都涉及到按键,小的有独立按键,大的有 N*N 的矩阵键盘,独立按键由于案件的个数少,也就没必要考虑资源的利用问题了。而矩阵键盘,由于按键多,对整个系统的影响大,所以肯定要考虑资源的利用问题,而且还要考虑一下电路里面的时序问题。本次设计要求设计一个 4*9 矩
8、阵键盘,也就是行为 4,列为 9,一共可以设计 36 个按键。其中设计方法为:一般判断键盘中有没有按键按下是通过航线送入扫描信号,然后从列线中读取状态得到的,其方法是依次给行线送入低电平,检查列线的输入。如果列线信号趣味高电平,则代表低电平信号所在的行中无按键按下,反之,则有,则在低电平信号所在的行和出现低电平的交叉处有按键按下。一共有三个模块,分别为:扫描电路模块、时钟产生模块、键盘译码电路和按键标志位产生电路。扫描模块中是为了产生扫描信号,来利用扫描信号来扫描键盘中中是否有按键按下。键盘译码电路和按键标志位产生电路是为了配合扫描模块来扫描电路中是否有按键按下,而且还要求它来产生按键标志信号
9、,以便和外部电路握手。时钟产生电路是为了产生不同频率的信号,来驱动上面两个电路的运转。在设计完各个模块后,还要对每个模块进行仿真,在仿真的过程中要对参数精心设计,要不然看不出结果的。1.3 本章小结本章首先介绍了 FPGA 的发展史,主要介绍了一下 FPGA 的发展年代,以基于 FPGA 的矩阵键盘接口电路的设计5及是怎么样发展起来的。在第二节里面介绍了以下本文的研究意义,在研究意义里面介绍了一下矩阵键盘的设计方法以及本次设计的主要设计模块。最后介绍了一下各个模块的作用和特点。2. VHDL 语言2.1 VHDL 语言概述VHDL 语言的英文全名是 Very High Speed Integr
10、ated Circuit Hardware Description Language,即超高速集成电路硬件描述语言。 HDL 发展的技术源头是:在 HDL 形成发展之前,已有了许多程序设计语言,如汇编、 C 、Pascal 、 Fortran 、Prolog 等。这些语言运行在不同硬件平台和不同的操作环境中,它们适合于描述过程和算法,不适合作硬件描述。 CAD 的出现,使人们可以利用计算机进行建筑、服装等行业的辅助设计,电子辅助设计也同步发展起来。在从 CAD 工具到 EDA 工具的进化过程中,电子设计工具的人机界面能力越来越高。在利用 EDA 工具进行电子设计时,逻辑图、分立电子原件作为整个
11、越来越复杂的电子系统的设计已不适应。任何一种 EDA 工具,都需要一种硬件描述语言来作为 EDA 工具的工作语言。这些众多的 EDA 工具软件开发者,各自推出了自己的 HDL 语言。 HDL 发展的社会根源是:美国国防部电子系统项目有众多的承包公司,由于各公司技术路线不一致,许多产品不兼容,他们使用各自的设计语言,使得甲公司的设计不能被乙公司重复利用,造成了信息交换困难和维护困难。美国政府为了降低开发费用,避免重复设计,国防部为他们的超高速集成电路提供了一种硬件描述语言,以期望 VHDL 功能强大、严格、可读性好。政府要求各公司的合同都用它来描述,以避免产生歧义。 由政府牵头, VHDL 工作
12、小组于 1981 年 6 月成立,提出了一个满足电子设计各种要求的能够作为工业标准的 HDL 。1983 年第 3 季度,由 IBM 公司、 TI 公司、 Intermetrics。公司签约,组成开发小组,工作任务是提出语言版本和开发软件环境。1986 年 IEEE 标准化组织开始工作,讨论 VHDL 语言标准,历时一年有余,于 1987 年 12 月通过标准审查,并宣布实施,即 IEEE STD 1076 - 1987LRM87。1993 年 VHDL 重新修订,形成了新的标准,即 IEEE STD 1076 - 1993LRM93。 基于 FPGA 的矩阵键盘接口电路的设计6从此以后,美国
13、国防部实施新的技术标准,要求电子系统开发商的合同文件一律采用 VHDL 文档。即第一个官方 VHDL 标准得到推广、实施和普及。HDL 语言在国外有上百种。高等学校、科研单位、EDA 公司都有自己的HDL 语言。现选择较有影响的作简要介绍。 Candence 公司是一家著名的 EDA 公司,财力雄厚。该公司的 Verilog HDL 于 1983 年由 Gate Way Design Automatic 公司的 Phil Moorby 首创。他在1984-1985 年间成功设计了 Verilog-XL 仿真器,于 1986 年提出了快速门级仿真的 XL 算法,使 Verilog HDL 语言变
14、得更加丰富和完善,从而受到了 EDA 工具设计公司的青睐。1989 年 Candence 公司购买了 GDA 公司,Verilog HDL 语言从此变为 Candence 公司的 “私有财产”成为 Candence 公司的 EDA 设计环境上的硬件描述语言。经过 Candence 公司的努力, Verilog HDL 于 1995 年成为 IEEE 标准,也是民间公司第一个硬件描述语言标准,即 Verilog HDL 1364-1995。由于 Verilog HDL 语言从 C 语言发展来,所以有 C 语言基础的设计人员能够较快入门。 ALTERA 公司是一家半导体器件公司,其 CPLD 器件
15、在世界市场上占主导地位。这家公司不仅是硬件生产厂商,也是 EDA 工具开发商,它的 EDA 工具MAX+plus II、Quartus 由于人机界面友好、易于使用、性能优良,而受到FPGA、CPLD 器件设计人员的欢迎。运行在 MAX+plus II 环境下的 VHDL 语言具有 C 语言设计风格,好学好用,因此被众多用户使用。 HDL 语言来自不同地方,由不同语言演变而来,为了各平台之间相互转换,又推出了 EDIF (Electronic Design Interchange Format)。它不是一种语言,而是用于不同数据格式的 EDA 工具之间的交换设计数据。2.2 VHDL 语言的优点
16、传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。采用传统方法设计数字系统,特别是当电路系统非常庞大时,设计者必须具备较好的设计经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。为了提高开发的效率,增加已有开发成果的可继基于 FPGA 的矩阵键盘接口电路的设计7承性以及缩短开发周
17、期,各 ASIC 研制和生产厂家相继开发了具有自己特色的电路硬件描述语言(Hardware Description Language,简称 HDL)。但这些硬件描述语言差异很大,各自只能在自己的特定设计环境中使用,这给设计者之间的相互交流带来了极大的困难。因此,开发一种强大的、标准化的硬件描述语言作为可相互交流的设计环境已势在必行。于是,美国于 1981 年提出了一种新的、标准化的 HDL,称之为 VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,简称 VHDL。这是一种用形式化方法来描述数字电路和设计
18、数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门级电路,最后用 PLD实现其功能。综合起来讲,VHDL 语言具有如下优点:(1)VHDL 语 言 功 能 强 大 , 设 计 方 式 多 样 。 VHDL 语 言 具 有 强 大 的 语 言结 构 , 只 需 采 用 简 单 明 确 的 VHDL 语 言 程 序 就 可 以 描 述 十 分 复 杂 的 硬 件 电路 。 同 时 ,它 还 具 有 多 层 次 的 电 路 设 计 描 述 功 能 。 此 外 , VHDL 语 言 能 够同 时 支 持 同 步 电 路 、 异 步 电 路
19、 和 随 机 电 路 的 设 计 实 现 ,这 是 其 他 硬 件 描 述 语言 所 不 能 比 拟 的 。 VHDL 语 言 设 计 方 法 灵 活 多 样 , 既 支 持 自 顶 向 下 的 设 计方 式 , 也 支 持 自 底 向 上 的 设 计 方 法 ; 既 支 持 模 块 化 设 计 方 法 ,也 支 持 层 次 化设 计 方 法 。(2)VHDL 语 言 具 有 强 大 的 硬 件 描 述 能 力 。 VHDL 语 言 具 有 多 层 次 的 电路 设 计 描 述 功 能 , 既 可 描 述 系 统 级 电 路 , 也 可 以 描 述 门 级 电 路 ; 描 述 方 式既 可 以
20、 采 用 行 为 描 述 、 寄 存 器 传 输 描 述 或 者 结 构 描 述 , 也 可 以 采 用 三 者 的混 合 描 述 方 式 。 同 时 , VHDL 语 言 也 支 持 惯 性 延 迟 和 传 输 延 迟 , 这 样 可 以准 确 地 建 立 硬 件 电 路 的 模 型 。 VHDL 语 言 的 强 大 描 述 能 力 还 体 现 在 它 具 有丰 富 的 数 据 类 型 。 VHDL 语 言 既 支 持 标 准 定 义 的 数 据 类 型 , 也 支 持 用 户 定 义的 数 据 类 型 , 这 样 便 会 给 硬 件 描 述 带 来 较 大 的 自 由 度 。(3)VHDL
21、 语 言 具 有 很 强 的 移 植 能 力 。 VHDL 语 言 很 强 的 移 植 能 力 主 要体 现 在 : 对 于 同 一 个 硬 件 电 路 的 VHDL 语 言 描 述 , 它 可 以 从 一 个 模 拟 器移 植 到 另 一 个 模 拟 器 上 、 从 一 个 综 合 器 移 植 到 另 一 个 综 合 器 上 或 者 从 一 个 工作 平 台 移 植 到 另 一 个 工 作 平 台 上 去 执 行 。(4)VHDL 语 言 的 设 计 描 述 与 器 件 无 关 。 采 用 VHDL 语 言 描 述 硬 件 电 路时 , 设 计 人 员 并 不 需 要 首 先 考 虑 选 择
22、 进 行 设 计 的 器 件 。 这 样 做 的 好 处 是 可 以基于 FPGA 的矩阵键盘接口电路的设计8使 设 计 人 员 集 中 精 力 进 行 电 路 设 计 的 优 化 , 而 不 需 要 考 虑 其 他 的 问 题 。 当硬 件 电 路 的 设 计 描 述 完 成 以 后 ,VHDL 语 言 允 许 采 用 多 种 不 同 的 器 件 结 构 来实 现 。(5)VHDL 语 言 程 序 易 于 共 享 和 复 用 。 VHDL 语 言 采 用 基 于 库 (library)的 设 计 方 法 。 在 设 计 过 程 中 , 设 计 人 员 可 以 建 立 各 种 可 再 次 利
23、用 的 模 块 ,一 个 大 规 模 的 硬 件 电 路 的 设 计 不 可 能 从 门 级 电 路 开 始 一 步 步 地 进 行 设 计 ,而 是 一 些 模 块 的 累 加 。 这 些 模 块 可 以 预 先 设 计 或 者 使 用 以 前 设 计 中 的 存 档 模块 , 将 这 些 模 块 存 放 在 库 中 , 就 可 以 在 以 后 的 设 计 中 进 行 复 用 。2.3 利用 VHDL 语言设计数字系统的特点当电路系统采用 VHDL 语言设计其硬件时,与传统的电路设计方法相比较,具有如下的特点:( 1) 采用自上而下的设计方法。即从系统总体要求出发,自上而下地逐步将设计的内容
24、细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。第二层次是 RTL 方式描述。这一层次称为寄存器传输描述(又称数据流描述) 。如前所述,用行为方式描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。要想得到硬件的具体实现,必须将行为方式描
25、述的 VHDL 语言程序改写为 RTL 方式描述的 VHDL 语言程序。也就是说,系统采用 RTL 方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。第三层次是逻辑综合。即利用逻辑综合工具,将 RTL 方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表) 。此时,如果需要,可将逻辑综合的结果以逻辑原理图的方式输出。此后可对综合的结果在门电路级上进行仿真,并检查其时序关系。应用逻辑综合工具产生的门级网络表,将其转换成 PLD 的编程码点,即可利用 PLD 实现硬件电路的设计。由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合,每基于 FPGA 的矩阵键盘接口电路的设计9一步都
26、要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。( 2) 系统可大量采用 PLD 芯片。由于目前众多制造 PLD 芯片的厂家,其工具软件均支持 VHDL 语言的编程。所以利用 VHDL 语言设计数字系统时,可以根据硬件电路的设计需要,自行利用 PLD 设计自用的 ASIC 芯片,而无须受通用元器件的限制。( 3) 采用系统早期仿真。从自上而下的设计过程中可以看到,在系统设计过程中要进行三级仿真,即行为层次仿真、RTL 层次仿真和门级层次仿真。这三级仿真贯穿系统设计的全过程,从而可以在系统设计的早期发现设计中存在的问题,大大缩短系统设计的周期,节约大量的人力和
27、物力。( 4) 降低了硬件电路设计难度。在传统的设计方法中,往往要求设计者在设计电路之前写出该电路的逻辑表达式或真值表(或时序电路的状态表) 。这一工作是相当困难和繁杂的,特别是当系统比较复杂时更是如此。而利用 VHDL 语言设计硬件电路时,就可以使设计者免除编写逻辑表达式或真值表之苦,从而大大降低了设计的难度,也缩短了设计的周期。( 5) 主要设计文件是用 VHDL 语言编写的源程序。与传统的电路原理图相比,使用 VHDL 源程序有许多好处:其一是资料量小,便于保存。其二是可继承性好。当设计其他硬件电路时,可使用文件中的某些库、进程和过程等描述某些局部硬件电路的程序。其三是阅读方便。阅读程序
28、比阅读电路原理图要更容易一些,阅读者很容易在程序中看出某一电路的工做原理和逻辑关系。而要从电路原理图中推知其工作原理则需要较多的硬件知识和经验。2.4 VHDL 语言的基本结构 一个完整的 VHDL 语言程序通常包含实体(Entity)、构造体(Architecture)、配置(Configuration)、程序包 (Package)和库(Library )5 个部分。前 4 个部分是可分别编译的源设计单元。实体用于描述所设计的系统的外接口信号;构造体用于描述系统内部的结构和行为;程序包存放各种设计模块都能共享的数据类型、常数和子程序等;配置用于从库中选取所需单元来组成系统设计的不同版本;库存
29、放已经编译的实体、构造体、程序包和配置。库可由用户生成或由基于 FPGA 的矩阵键盘接口电路的设计10ASIC 芯片制造商提供,以便于在设计中为大家所共享。2.5 本章小结本章开始介绍了 VHDL 语言的设计分格以及设计中注意的问题。目前国内 IT 行业快速发展,以及 ASIC 合了 Avant!和 CO-Design,Cadence 合了 GDA 等,形成了几大巨头的局面。而各可编程器件厂商,像 Xilinx 和 Altera,也积极与 EDA 紧密合作, 针对目前硬件描述语言的发展和国家芯片制造生产的发展战略,国内如何在原 EDA 基础薄弱的情况下迅速发展,使 EDA 成为一个合理,健康而
30、必比可少产业;将基础研究活动与独立产生的作用合理地结合,建议开展如下的工作:为了实现我国的芯片设计自主化,必须夯实基础,再结合 VHDL 的基础上,推广 Verilog HDL 设计语言,使硬件设计的底层单元库可以自主研制。根据目前芯片系统的发展趋势,对系统级语言进行比较研究,在Superlog,SystemC 等语言中作出选则,并进行相关工具的推广,以及与相关企业进行合作等。深入 HDL 语言的综合和仿真等模型的研究,努力在与国外合作的基础山,建立自主知识产权的 EDA 公司。积极加入 EDA 目前正在进行的标准化工作,做到了解、学习、应用、吸收、参与并重。政府积极加入,重视生产、学习、研发
31、的合作,开展卓有成效的发展模式。3.矩阵键盘接口电路原理和数码管显示原理3.1 矩阵键盘接口电路的原理在 键 盘 中 按 键 数 量 较 多 时 , 为 了 减 少 I/O 口 的 占 用 , 通 常 将 按 键 排 列 成矩 阵 形 式 。在 矩 阵 式 键 盘 中 , 每 条 水 平 线 和 垂 直 线 在 交 叉 处 不 直 接 连 通 , 而 是 通 过一 个 按 键 加 以 连 接 。 这 样 , 一 个 端 口 就 可 以 构 成 4*4=16 个 按 键 , 比 之 直接 将 端 口 线 用 于 键 盘 多 出 了 一 倍 , 而 且 线 数 越 多 , 区 别 越 明 显 , 比 如 再 多 加一 条 线 就 可 以 构 成 20 键 的 键 盘 , 而 直 接 用 端 口 线 则 只 能 多 出 一 键 ( 9 键 )。