资源描述
FPGA课程设计报告项目名称 基于FPGA的4*4矩阵键盘的设计 专业班级 通信1 学生姓名 张 指导教师 2016年 7 月 10 日字号的设置。字体的设置。西文字体的设置。如果没有特殊说明,就选图上的这个。说明:字体设置指下图。摘 要本课程设计提出了基于FPGA的4*4矩阵键盘的设计,主要是在软件Quartus II 9.0这个环境中,以硬件描述语言Verilog进行编写程序,从而完成矩阵键盘的相关设计。主要由矩阵式键盘电路、显示电路等组成,实现过程是通过行扫描输入随机信号,列扫描判断哪一个键被按下,并最后由数码管显示该按键。此次课程设计完成了4*4矩阵键盘控制LED数码管显示系统的设计,该设计具有灵活性强,易于操作,可靠性高,广泛应用于各种场合的特点,是进行按键操作管理的有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身的要求,并能正确、实时、高效地显示按键信息,以提高工作效率和资源换利用率的意义。关键词:数码管; 矩阵键盘;按键;显示电路 AbstractThis course is designed based on FPGA is proposed 4 * 4 matrix keyboard design, mainly in the Quartus II software 9.0 this environment, with the Verilog hardware description language program, so as to complete the related design of matrix keyboard. Main matrix keyboard circuit, display circuit and so on, complete the 4 * 4 matrix keyboard control LED digital tube display system design, the design has strong flexibility, easy operation, high reliability, widely used in various occasions. Into 4 * 4 matrix keyboard control LED digital tube display system design, design flexibility is strong, easy to operate, high reliability, widely used in various occasions. Matrix keyboard control system, can improve efficiency, and is an effective method to manage the keystrokes, it can improve the system accuracy, and is conducive to resource saving and reduce the requirement of the operator itself, and correctly, real-time and efficient to show the key information, in order to improve the work efficiency and the utilization ratio of resources in meaning.Keywords: Digital tube; Matrix keyboard; The key; Disply circuit目 录摘 要IAbstractII第1章 绪论11.1 课题背景11.2 国内外发展现状11.3 本文主要研究内容1第2章 软件及语言简介22.1 Quartus软件简介32.2 Verilog语言简介42.2.1 Verilog语言的主要功能42.2.2 Verilog语言设计数字系统的特点4第3章 4*4矩阵键盘的原理63.1 4*4矩阵式键盘63.2 总体结构63.2.1 LED数码管83.2.2 键盘结构93.3 键盘扫描93.4 矩阵键盘接口电路的原理9第4章 程序调试114.1 流程图114.2 程序结果讨论11第5章 波形仿真及讨论135.1 波形结果135.2 结果讨论14结论15参考文献16附录程序17致谢19第1章 绪论1.1 课题背景在现代的个人计算机系统中,一般都采用通用的标准键盘如标准键盘(如:标准101/102键盘或Microsoft自然PS/2键盘)来实现人与计算机之间的接口交互, 从而将需要的各种数据和指令等信息都通过键盘来输人计算机。但是, 各种嵌人式系统(如:手机、微波炉、电风扇等)所需的键盘的按键个数非常有限, 通常为几个到十几个不等(而标准键盘通常为:一百多个按键并且每个按键所代表的功能含义也各不相同。所以, 每一种嵌入式系统都应对键盘(包括键盘扫描模块和相关控制信号等)进行专门设计, 以便结合工程实际情况充分利用该系统已有的各种资源, 使所设计的键盘很好地融合到嵌人式系统中1。在现代个人计算机系统中, 一般都采用通用的标准键盘( 如: 标准101/102 键盘或Microsoft自然PS/2 键盘) 来实现人与计算机之间的接口交互, 所需要的各种数据和指令等信息都通过键盘来输入计算机。但是, 在各种嵌入式系统( 如手机、微波炉、电风扇等) 中, 所需要的键盘按键个数非常有限, 通常为几个到十几个不等( 而标准键盘通常为一百多个按键) , 并且每个按键所代表的功能含义也各不相同。所以, 针对每一种嵌入式系统都应对键盘( 包括键盘扫描模块和相关控制信号等) 进行专门设计, 结合工程实际情况充分利用该系统已有的各种资源, 使所设计的键盘恰如其分地融合到嵌入式系统中, 成为其不可分割的一部分2。在数字电路中, 可以利用编码器实现按键键值的直接编码。将每个按键的输出信号对应连接到编码器的每个输入端, 通过编码逻辑就可以在编码器的输出端得到对应每个按键的码值, 早期称这种键盘为编码键盘。但是,当按键较多时数码逻辑的成本较高, 直接编码的方法也不够灵活, 一旦编码逻辑固定就难以更改。在通用键盘上或当按键数量较多时, 普遍采用扫描方式产生键值。将按键连接成矩阵, 每个按键位于某行、某列的交点上, 如图1 所示, 先通过扫描方式确定按下键的行和列位, 即位置码或扫描码。再查表将位置码转换为按键码值或者直接使用扫描码,有些参考书称此为“非编码键盘”。但这种名称容易让人误解为没有对应的键值, 因此又称为扫描式键盘3。1.2 国内外发展现状近年来EDA技术在电子领域引发的技术革命,推动着电子技术的迅猛发展,为世人所瞩目,而FPGA为代表的可编程逻辑器件的应用,更是受到业内人士的普遍关注。伴随着大规模集成电路和计算机技术的高速发展,在设计工业自动化,仪器仪表,计算机设计与应用、通信、国防等领域的电子系统中,FPGA技术的含量正以惊人的速度提升。将尽可能大的完整的电子系统在单一FPGA芯片中实现已成为现实,电子类新技术项目的开发也更多地依赖于FPGA技术的应用4。作为FPGA研究课题之一的矩阵键盘控制接口电路的设计,在FPGA设计中是一个经常被提到的话题,就像是利用PFGA设计数字中一样,虽然简单,但是却是一个很有研究意义的话题,涉及到怎么样才能是FPGA资源更加充分利用,现在很多电子产品都涉及到按键,小的有独立按键,大的有N*N的矩阵键盘,独立按键由于案件的个数少,也就没必要考虑资源的利用问题了。而矩阵键盘,由于按键多,对整个系统的影响大,所以肯定要考虑资源的利用问题,而且还要考虑一下电路里面的时序问题。1.3 本文主要研究内容本次设计要求设计一个4*4矩阵键盘,也就是行为4,列为4,一共可以设计16个按键。其中设计方法为:一般判断键盘中有没有按键按下是通过航线送入扫描信号,然后从列线中读取状态得到的,其方法是依次给行线送入低电平,检查列线的输入。如果列线信号趣味高电平,则代表低电平信号所在的行中无按键按下,反之,则有,则在低电平信号所在的行和出现低电平的交叉处有按键按下。第2章 软件及语言简介2.1 QuartusII软件简介QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度5。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用6。目前Altera已经停止了对Maxplus II的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在QuartusII中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法7。Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件8。2.2 Verilog语言简介1983年,Gateway Design Automation(GDA)硬件描述语言公司的Philip Moorby首创了Verilog HDL。后来Moorby成为Verilog HDL-XL的主要设计者和Cadence公司的第一合伙人。1984至1986年,Moorby设计出第一个关于VerilogHDL的仿真器,并提出了用于快速门级仿真的XL算法,使Verilog HDL语言得到迅速发展。1987年Synonsys公司开始使用Verilog HDL行为语言作为综合工具的输入。1989年Cadence公司收购了Gateway公司,Verilog HDL成为Cadence公司的私有财产。1990年初,Cadence公司把Verilog HDL和Verilog HDL-XL分开,并公开发布了Verilog HDL。随后成立的OVI(Open Verilog HDL International)组织负责VerilogHDL的发展并制定有关标准,OVI由Verilog HDL的使用者和CAE供应商组成。1993年,几乎所有ASIC厂商都开始支持Verilog HDL,并且认为VerilogHDL-XL是最好的仿真器。同时,OVI推出2.0版本的Verilong HDL规范,IEEE则将OVI的VerilogHDL2.0作为IEEE标准的提案9。1995年12月,IEEE制定了Verilog HDL的标准IEEE1364-1995。目前,最新的Verilog语言版本是2000年IEEE公布的Verilog 2001标准,其大幅度地提高了系统级和可综合性能HDL既是一种行为描述语言,也是一种结构描述语言。如果按照一定的规则和风格编写代码,就可以将功能行为模块通过工具自动转化为门级互连的结构模块。这意味着利用Verilog语言所提供的功能,就可以构造一个模块间的清晰结构来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计10。2.2.1 Verilog语言的主要功能可描述顺序执行或并行执行的程序结构;用延迟表示式或事件表达式来明确地控制过程的启动时间;通过命名的事件来触发其他过程里的激活行为或停止行为;提供了条件和循环等程序结构;提供了可带参数且非零延续时间的任务程序结构;提供了可定义新的操作符的函数结构;提供了用于建立表达式的算术运算符、逻辑运算符和位运算符;提供了一套完整的表示组合逻辑基本元件的原语;提供了双向通路和电阻器件的描述;可建立MOS器件的电荷分享和衰减模型;可以通过构造性语句精确地建立信号模型11。2.2.2 Verilog语言设计数字系统的特点 主要采用自上而下的设计方法。即从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。第二层次是RTL方式描述。这一层次称为寄存器传输描述(又称数据流描述)。如前所述,用行为方式描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。第三层次是逻辑综合。即利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。此时,如果需要,可将逻辑综合的结果以逻辑原理图的方式输出。此后可对综合的结果在门电路级上进行仿真,并检查其时序关系。应用逻辑综合工具产生的门级网络表,将其转换成PLD的编程码点,即可利用PLD实现硬件电路的设计12。由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合,每一步都要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。第3章 4*4矩阵键盘的原理3.1 4*4矩阵式键盘矩阵式键盘(或者叫行列式键盘)常应用在按键数量比较多的系统之中。这种键盘由行线和列线组成,按键设置在行、列结构的交叉点上,行、列线分别接在按键开关的两端。行列式键盘可分为非编码键盘和编码键盘两大类。编码键盘内部设有键盘编码器,被按下键的键号由键盘编码器直接给出,同时具有防抖和解决重键的功能。非编码键盘通常采用软件的方法,逐行逐列检查键盘状态,当有键按下时,通过计算或查表的方法获取该键的键值,通常,计算机通过程序控制对键盘扫描,从而获取键值,根据计算机扫描的方法可以分为定是扫描法和中断扫描法两种,原理结构如图3-1所示。图3-1 4*4矩阵键盘原理结构框图3.2 总体结构由行列式键盘原理就可以知道,要正确的完成键盘输入工作必须有按键扫描电路产生clk信号。同时还必须有按键译码电路从kbrow信号和kbcol信号中译码出按键的值。此外,一般还需要一个按键发生信号用于和其他模块接口,通知其他模块键盘上有按键动作发生,并可以从键盘上读取按键的键值。由于各个模块需要的时钟频率是不一样的,因此时钟产生模块就是用于产生各个模块需要的时钟信号。在本次课程设计中,最为重要的两部分就是数码管显示电路以及键盘结构,这两部分的组成,形成了4*4矩阵键盘,通过键盘输入,数码管进行显示。3.2.1 LED数码管led数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。图3-2 7段LED显示器件外形图在本系统中,4*4键盘共有16个键,对其编号09,AF,所以用一个7段数码管静态显示即可满足即时显示按键信息的要求。所谓静态显示,就是当显示器件某个字符时,相应的显示段(发光二极管)恒定地导通或截止,直到显示方式显示一个字符时,只需要微处理器送一次代码,因此占用机时少,而且显示稳定可靠,其缺点是,使用元器件相对较多,且线路比较复杂,相对而言成本较高,比较适合显示位数较少的情况。器件结构如图3-3所示。图3-3 7段LED显示器件结构图3.2.2 键盘结构本系统中的4*4矩阵式键盘结构简单,按键数较少,采用非编码式键盘,当有键盘按下时,由单片机通过程序扫描确定键值,设计一个4*4矩阵键盘,也就是行为4,列为4,一共可以设计16个按键。并将获得的键值通过LED数码管显示出来,4*4矩阵式键盘结构及键值分布如图3-4所示。图3-4键盘键值分布3.3 键盘扫描本设计一共有三个模块,分别为:扫描电路模块、时钟产生模块、键盘译码电路和按键标志位产生电路。扫描模块中是为了产生扫描信号,来利用扫描信号来扫描键盘中中是否有按键按下。键盘译码电路和按键标志位产生电路是为了配合扫描模块来扫描电路中是否有按键按下,而且还要求它来产生按键标志信号,以便和外部电路握手。时钟产生电路是为了产生不同频率的信号,来驱动上面两个电路的运转。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下:1、判断键盘中有无键按下 将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。2、判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。4个模块来实现键盘扫描功能, 分别为即时扫描模块、扫描控制模块、扫描脉冲模块和键值传送模块。3.4 矩阵键盘接口电路的原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的FPGA的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。第4章 程序仿真4.1 流程图本次设计的4*4矩阵键盘,作为输入的有clk, start,kbcol,分别是时钟信号,开始,行输入,作为输出的有kbrow,scan,seg7_out分别是列扫描,数码管位数以及输出结果即哪个键被按下,在程序仿真是我们给输入一个随机信号,若输入是1,2,3,4行,那么会有相应输出产生,否则数码管会显示零,具体流程图如4-1所示。开始输入随机信号,列扫描否是否有键被按下是识别哪一个键被按下图4-1流程图4.2 程序结果讨论只使用一个数码管显示,通过随机信号的不断变化,会有不同的输出产生,周而复始地扫描。其停留在某个状态的时间大约为10ms。更短的停留时间是没有必要的,因为人按键的时间大约为10ms,不可能有更快的按键动作发生。另外,更短的停留时间还容易采集到抖动信号,会干扰判断。而太长的停留时间则会使某些较快的按键东走丢失。完成程序见附录,部分主要程序如图4-1。图4-1主要程序图4-2 程序结果第5章 波形仿真及讨论5.1 波形结果在本系统中,4*4键盘共有16个键,对其编号09,AF,所以用一个7段数码管静态显示即可满足即时显示按键信息的要求。所谓静态显示,就是当显示器件某个字符时,相应的显示段(发光二极管)恒定地导通或截止,直到显示方式显示一个字符时,只需要微处理器送一次代码,因此占用机时少,而且显示稳定可靠,其缺点是,使用元器件相对较多,且线路比较复杂,相对而言成本较高,比较适合显示位数较少的情况。运行结果如图5-1所示。图5-1 波形结果5.2 结果讨论本次课程设计主要是使用软件QuartusII和Verilog语言进行编写程序,从而达到4*4矩阵键盘的目的,实现其相应功能。首先输入程序,程序正确之后,进行波形仿真,由于不是实物,没有键盘,所以通过给一个随机信号来模拟某个键被按下,因此会出现一些没有的行数,故而在波形仿真数码管会产生0,这就是因为没有相应的列数有行数对应,4*4矩阵,那么就只有4行4列,只有随机信号产生1,2,3,4,这几行时,才会有相应的正确输出产生。其次本次课程是仿真,通过时钟信号来控制,所以时钟信号一直有,就会一直进行循环列扫描,行扫描译码。当进行列扫描时,扫描信号由列引脚进入键盘,以1000,、0100、0010、0001的顺序每次扫描不同的一列,然后读取行引脚的电平信号,以此可以判断是哪个按键被按下。例如,当行扫描信号为“0100”时,表示正在扫描“89AB”一列,如果该列没有按键别按下,则由行信号读出的值为“0000”;反之,如果按键“9”被按下时,则该行信号读出的值为“0100”。结论本次课题设计完成的是基于FPGA的4*4矩阵键盘设计,通过一个多星期的不断努力、克服各种困难,最终实现了任务目标。本次设计解决的主要问题是是利用verilogHDL语言完成基于FPGA的矩阵键盘的编程问题。矩阵式键盘是一种常见的输入装置,在日常生活中,矩阵式键盘在计算机、电话、手机、微波炉等各式电子产品上已经被广泛应用。各式各样的矩阵键盘控制着各种各样的功能,矩阵式键盘控制接口电路是最基本的输入电路,它我们利用软件Quartus II自行设计并修改的键盘输入显示电路是通过VHDL语言编写并实现了键码的对应显示。并且发现许多的问题,还有很多需要改进的地方,设计的过程很有意思也非常繁琐,再利用Quartus II进行仿真的时候,要精心的对参数尽心设置,最后才能够仿真出结果。在课程设计的过程中也可以看到我的不足,如原理知识掌握不实,曾经学过的知识如今却不会应用,软件的应用也不熟练,希望日后提供给我们更多的锻炼机会来培养我们的实践能力。 参考文献1 王志辉,林水生. 基于FPGA的键盘扫描模块的设计实现J. 电子元器件应用2006,8 (2) :84-86 2 王美丽, 用FPGA设计和制作键盘扫描仪表技术J 2008,10:47-49 3 许艳,文堂柳. 基于FPGA的键盘接口模块设计J. 民风2008:17-214 李君,胡胜.一种新型的键盘扫描方式J.控制工程,2004(S1):125-148.5 李小亮,蒋华勤,董雪峰.基于FPGA的可键盘控制计数电路的设计与实现J.电子设计工程,2011(8):154-156.6 Carlos H. Llanos,Ronald H. Hurtado,Sadek C. Absi Alfaro FPGA-based approach for changdetection in GTAW welding process Journal of the Brazilian Society of Mechanical Sciences andEngineeringJ 2016 38No.3:913-9297 Shah, Agam1 Intel starts baking speedyFPGAsinto chipsJ.CIO2016:9-158 张玲.基于FPGA4*4键盘扫描电路设计J,计算机软件与光盘应用,2012(13):181-182.9 樊国梁,张晓燕.基于VHDL的键盘扫描及显示电路设计J, 电子世界,2005(02):120-130 10 尹唱唱,卫阿盈.基于Quartus的数字电路设计研究J. 中国科技信息,2009(21):75-82 11 王艳玲.Quartus应用于数字电路教学的研究J. 中国科技信息,2009(02):41-47.12 程继航,黄飞,石静苑.Quartus在EDA技术中的应用J. 电脑编程技巧及维护,2009(10):12-15附录程序module dong(kbrow,seg7_out,scan,clk,start,kbcol);output3:0kbrow;/列扫描信号output6:0seg7_out;/七段显示控制信号output7:0scan;/数码管地址选择控制信号input clk,start;/扫描时钟信号,开始信号,高电平有效input3:0kbcol;/行扫描信号reg3:0kbrow;reg6:0seg7_out;reg7:0scan;reg1:0count;reg1:0sta;reg6:0seg7;reg4:0dat;reg fn;/按键标志位,判断是否有键被按下initial scan=b10000000;/只使用一个数码管显示always(posedge clk)beginif(start=0) begin seg7=b0000000;endelse begin count=count+1;/循环列扫描 case(count) 2b00:begin kbrow=b0001;sta=b00;end 2b01:begin kbrow=b0010;sta=b01;end 2b10:begin kbrow=b0100;sta=b10;end 2b11:begin kbrow=b1000;sta=b11;end endcase/行扫描译码 case(sta) 2b00:begin case(kbcol) 4b0001:begin seg76:0=b1111001;dat=b00011;end 4b0010:begin seg76:0=b1101101;dat=b00010;end 4b0100:begin seg76:0=b0110000;dat=b00001;end 4b1000:begin seg76:0=b1111110;dat=b00000;end default:begin seg76:0=b0000000;dat=b11111;end endcase end 2b01:begin case(kbcol) 4b0001:begin seg76:0=b1110000;dat=b00111;end 4b0010:begin seg76:0=b1011111;dat=b00110;end 4b0100:begin seg76:0=b1011011;dat=b00101;end 4b1000:begin seg76:0=b0110011;dat=b00100;end default:begin seg76:0=b0000000;dat=b11111;end endcase end 2b11:begin case(kbcol) 4b0001:begin seg76:0=b1000111;dat=b01111;end 4b0010:begin seg76:0=b1001111;dat=b01110;end 4b0100:begin seg76:0=b0111101;dat=b01101;end 4b1000:begin seg76:0=b1001110;dat=b01100;end default:begin seg76:0=b0000000;dat=b11111;end endcase end default: seg76:0=b0000000; endcase end end always begin fn=(dat0&dat1&dat2&dat3&dat4);end /产生按键标志位,用于储存按键信息 always(posedge fn) /按键信息储存 begin seg7_out6:0=seg76:0;end endmodule 致谢本论文是基于FPGA的4*4矩阵键盘的设计,在老师的悉心指导,同学的帮助下,以及查阅相关资料,终于完成了此次的课程设计。通过此次的课程设计学到了学多新知识,本论文从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血。在此,向导师表示崇高的敬意和衷心的感谢!本论文的顺利完成,离不开各位老师、同学和朋友的关心和帮助。大学生活即将结束,回首往昔,奋斗和辛劳成为丝丝的记忆,甜美与欢笑也都尘埃落定。我向所有关心、爱护、帮助我的人们表示最诚挚的感谢与最美好的祝愿。回想整个论文的写作过程,虽有不易,却让我除却浮躁,经历了思考和启示,也更加深切地体会了设计的精髓和意义,因此倍感珍惜最后,再次对关心、帮助我的老师和同学表示衷心地感谢!
展开阅读全文