基于FPGA的PS2鼠标接口设计及VGA显示_第1页
基于FPGA的PS2鼠标接口设计及VGA显示_第2页
基于FPGA的PS2鼠标接口设计及VGA显示_第3页
基于FPGA的PS2鼠标接口设计及VGA显示_第4页
基于FPGA的PS2鼠标接口设计及VGA显示_第5页
已阅读5页,还剩32页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于FPGA的PS/2鼠标接口设计及VGA显示草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼内容摘要PORK本文主要介绍基于FPGA的PS/2鼠标接口设计及VGA显示的原理和工作流程,鲤鱼然后用鼠标操作并用VGA显示作为实例,鲤鱼把鼠标接口和VGA显示部分的各个应用模块体现出来,鲤鱼最后对各个模块进行硬件设计和软件编程。草鱼本次设计采用的现场可编程门阵列是ALTERA公司的EP2C5T144C8,鲤鱼并用VHDL语言在QUARTUS软件环境下编程、PORK仿真实现设计所要实现的功能。草鱼当用鼠标操作并在VGA上显示实现我们想要的功能的时候,鲤鱼就充分说明了大规模可编程逻辑器件的重要作用。草鱼本次设计先分别介绍FPGA的内部结构、PORKPS/2的接口协议、PORKVGA的显示时序,鲤鱼然后再它们的基础上以FPGA为核心器件实现本次设计的功能。草鱼在设计过程中,鲤鱼对FPGA的正确编程是有关本设计成败的关键,鲤鱼也是本设计的难点。草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼关键词PORK现场可编程门阵列草鱼草鱼可编程控制器草鱼草鱼鼠标接口草鱼草鱼VGA显示草鱼草鱼草鱼DESIGN草鱼OF草鱼PS草鱼/草鱼2草鱼MOUSE草鱼AND草鱼VGA草鱼DISPLAY草鱼BASED草鱼ON草鱼FPGA草鱼草鱼ABSTRACT草鱼THIS草鱼PAPER草鱼MAINLY草鱼INTRODUCES草鱼THE草鱼PS草鱼/草鱼2草鱼MOUSE草鱼INTERFACE草鱼草鱼DESIGN草鱼AND草鱼VGA草鱼DISPLAY草鱼PRINCIPLE草鱼AND草鱼WORK草鱼PROCESS草鱼BASED草鱼ON草鱼THE草鱼FPGA,鲤鱼AND草鱼THEN草鱼USE草鱼THE草鱼MOUSE草鱼TO草鱼OPERATE草鱼AND草鱼USE草鱼VGA草鱼TO草鱼DISPLAY草鱼AS草鱼AN草鱼EXAMPLE草鱼TO草鱼REFLECT草鱼THE草鱼MOUSE草鱼INTERFACE草鱼AND草鱼VGA草鱼DISPLAY草鱼PORTION草鱼OF草鱼EACH草鱼APPLICATION草鱼MODULE;PORK草鱼AT草鱼草鱼THE草鱼END草鱼,草鱼DESIGN草鱼EACH草鱼MODULE草鱼HARDWARE草鱼AND草鱼PROGRAMM草鱼SOFTWARE草鱼草鱼THIS草鱼DESIGN草鱼USING草鱼FIELD草鱼PROGRAMMABLE草鱼GATE草鱼ARRAY草鱼IS草鱼FROM草鱼ALTERA草鱼EP2C5T144C8,草鱼AND草鱼PROGRAMM草鱼VHDL草鱼LANGUAGE草鱼IN草鱼QUARTUS草鱼SOFTWARE草鱼ENVIRONMENT草鱼AND草鱼SIMULATE草鱼TO草鱼REALIZE草鱼THE草鱼FUNCTION草鱼WHICH草鱼IS草鱼DESIGNED草鱼WHEN草鱼USE草鱼THE草鱼MOUSE草鱼TO草鱼OPERATE草鱼AND草鱼DISPLAY草鱼ON草鱼THE草鱼VGA草鱼TO草鱼REALIZE草鱼THE草鱼FEATURES草鱼WE草鱼WANT草鱼,草鱼FULLY草鱼ILLUSTRATES草鱼THE草鱼IMPORTANCE草鱼OF草鱼THE草鱼LARGESCALE草鱼PROGRAMMABLE草鱼LOGIC草鱼DEVICE草鱼IN草鱼草鱼THE草鱼DESIGN草鱼AT草鱼THE草鱼FIRST草鱼INTRODUCED草鱼THE草鱼INNER草鱼STRUCTURE草鱼OF草鱼FPGA,草鱼PS草鱼/草鱼2INTERFACE草鱼PROTOCOL,草鱼VGA草鱼DISPLAY草鱼TIMING,草鱼THEN草鱼REALIZE草鱼THE草鱼DESIGN草鱼FUNCTION草鱼草鱼草鱼BASED草鱼ON草鱼THE草鱼FORMERS草鱼WITH草鱼FPGA草鱼AS草鱼THE草鱼CORE草鱼草鱼IN草鱼THE草鱼DESIGN草鱼PROCESS,草鱼THE草鱼FPGA草鱼CORRECT草鱼PROGRAMMING草鱼IS草鱼THE草鱼KEY草鱼RELATED草鱼TO草鱼THE草鱼SUCCESS草鱼WHICH草鱼IS草鱼ALSO草鱼THE草鱼DIFFICULTY草鱼OF草鱼THIS草鱼DESIGN草鱼草鱼KEYWORDS草鱼FPGA草鱼草鱼PROGRAMMABLE草鱼CONTROLLER草鱼草鱼MOUSE草鱼草鱼VGA草鱼DISPLAY草鱼草鱼草鱼草鱼草鱼目草鱼草鱼草鱼草鱼草鱼草鱼录草鱼前言1草鱼1草鱼草鱼FPGA的介绍1草鱼11草鱼草鱼FPGA的简介1草鱼12草鱼草鱼FPGA的结构和工作原理1草鱼121草鱼草鱼FPGA的芯片结构2草鱼122草鱼草鱼FPGA各部分的作用与工作原理2草鱼PS/2的介绍4草鱼21草鱼草鱼PS/2的接口特性4草鱼22草鱼草鱼PS/2的接口协议4草鱼23草鱼草鱼PS/2鼠标工作模式5草鱼24草鱼草鱼PS/2的数据包格式5草鱼3草鱼草鱼VGA的简介5草鱼31草鱼草鱼VGA的时序5草鱼32草鱼草鱼VGA接口6草鱼4草鱼草鱼VHDL简介6草鱼41草鱼草鱼VHDL的设计方法6草鱼42草鱼草鱼VHDL的设计流程7草鱼5草鱼草鱼设计方案7草鱼51草鱼草鱼设计任务7草鱼52草鱼草鱼设计原理7草鱼53草鱼草鱼模块电路设计7草鱼531草鱼草鱼PS/2鼠标接口电路7草鱼532草鱼草鱼VGA显示模块8草鱼54草鱼草鱼系统顶层文件9草鱼6草鱼草鱼结束语10草鱼附录11草鱼参考文献29草鱼草鱼基于FPGA的PS/2鼠标接口设计及VGA显示草鱼前言草鱼草鱼随着电子技术的发展,鲤鱼现代电子产品已经深入到社会的各个领域,鲤鱼有利的促进了社会的发展,鲤鱼但同时人们对电子产品的性能和要求也越来越高,鲤鱼产品的换代速度也越来越快。草鱼然而微电子技术是电子技术发展的根基,尤其在半导体工艺技术的发展上更能体现出微电子技术。草鱼所以现在在单片硅片上集成了更多的晶体管,鲤鱼集成电路也在向低成本、PORK低功耗和高速的方向发展,鲤鱼各种专用集成电路的成本不断降低,鲤鱼最终实现了片上系统。草鱼现代电子技术的核心是EDA技术,鲤鱼它结合了物理层在硬件电路实现的发展,鲤鱼也体现了现代电子技术与计算机软件技术有效的融合和升华。草鱼EDA技术的发展有效的结合了这两者,鲤鱼是这两个技术的共同产物,鲤鱼所以电子技术全方位技术EDA时代。草鱼工程师们用EDA工具,鲤鱼开发专用集成电路及其复杂的IP核模块。草鱼特别是硬件描述语言的出现,鲤鱼使更加复杂的电子系统的设计和调试更加的简单。草鱼所以为了实现电子技术的发展,鲤鱼EDA技术对于我们而言及其重要。草鱼本文介绍了基于FPGA控制的PS/2鼠标接口电路设计的基本结构、PORK性能特点、PORK及其设计理念。草鱼本设计采用EP2C5T144C8草鱼FPGA芯片,鲤鱼采用EDA技术,鲤鱼并使用VHDL语言设计各个模块,鲤鱼并在QUARTUS下进行软件编程实现正确的工作时序后,鲤鱼将编译结果下载到FPGA芯片上,鲤鱼最终实现本次设计的要求。草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼1草鱼草鱼FPGA的介绍草鱼11草鱼草鱼FPGA的简介草鱼草鱼随着EDA技术的发展,鲤鱼在电子领域里的模电与数电、PORK硬件和软件、PORK器件与系统的集成等更加良好的融入到一起。草鱼所以更大规模的FPGA器件不断更新。草鱼草鱼FPGAFIELD草鱼PROGRAMMABLE草鱼GATE草鱼ARRAY是一款大规模可编程逻辑器件,鲤鱼它和CPLD、PORKGAL等可编程逻辑器件不一样,鲤鱼后者都是基于乘积项的可编程结构,鲤鱼而前者是用的查找表结构,鲤鱼LUT是可编程的最小逻辑单元。草鱼FPGA的出现使开发数字电路的技术进一步提高。草鱼它的特点是直接面向用户,鲤鱼具有极大的通用性和灵活性,鲤鱼使用简单方便,鲤鱼硬件检测和实现快捷,鲤鱼开发周期短,鲤鱼成本低,鲤鱼便于维护等。草鱼FPGA应用EDA技术,鲤鱼以硬件描述语言,鲤鱼原理图等形式作为输入设计逻辑,鲤鱼经过一系列的变换,鲤鱼最后转换成FPGA器件所识别的编程文件,鲤鱼最终实现电子线路系统功能。草鱼草鱼12草鱼草鱼FPGA的结构和工作原理草鱼对于大多数FPGA而言都是采用的基于静态随机存储器的查找表逻辑形成机构,鲤鱼简单的说就是用静态随机存储器来够成逻辑函数发生器,鲤鱼其4输入LUT的内部结构如图121所示。草鱼草鱼草鱼草鱼查找表LUT输入输入输入输入输出草鱼图121草鱼草鱼FPGA查找表单元草鱼草鱼121草鱼草鱼FPGA的芯片结构草鱼目前的FPGA芯片已经远远的超过了以前版本的基本性能,鲤鱼并且整合了常用功能(如PORKRAM)的硬核模块。草鱼FPGA主要由七部分构成,鲤鱼分别为PORK可编程输入输出单元、PORK基本可编程逻辑单元、PORK完整的时钟管理、PORK嵌入块式RAM、PORK丰富的布线资源、PORK内嵌的底层功能单元和内嵌专用硬件模块。草鱼其芯片内部结构如图1211所示。草鱼草鱼草鱼草鱼草鱼图1211草鱼草鱼FPGA内部结构草鱼草鱼122草鱼草鱼FPGA各部分的作用与工作原理草鱼草鱼可编程输入/输出单元简称I/O单元,鲤鱼是芯片与外界电路的接口部分,鲤鱼完成不同电气特性下对输入/输出信号的驱动与匹配要求。草鱼FPGA内的I/O按组分类,鲤鱼每组都能够独立地支持不同的I/O标准。草鱼通过软件的灵活配置,鲤鱼可适配不同的电气标准与I/O物理特性,鲤鱼可以调整驱动电流的大小,鲤鱼可以改变上、PORK下拉电阻。草鱼目前,鲤鱼I/O口的频率也越来越高,鲤鱼一些高端的FPGA通过DDR寄存器技术可以支持高达2GBPS的数据速率1。草鱼草鱼草鱼CLB是FPGA内的基本逻辑单元。草鱼CLB的实际数量和特性会依器件的不同而不同,鲤鱼但是每个CLB都包含一个可配置开关矩阵,鲤鱼此矩阵由4或6个输入、PORK一些草鱼选型电路(多路复用器等)和触发器组成。草鱼开关矩阵是高度灵活的,鲤鱼可以对其进行配置以便处理组合逻辑、PORK移位寄存器或RAM。草鱼在XILINX公司的FPGA器件中,鲤鱼CLB由多个(一般为4个或2个)相同的SLICE和附加逻辑构成。草鱼每个CLB模块不仅可以用于实现组合逻辑、PORK时序逻辑,鲤鱼还可以配置为分布式RAM和分布式ROM1。草鱼草鱼业内大多数FPGA均提供数字时钟管理(XILINX的全部FPGA均具有这种特性)。草鱼XILINX推出最先进的FPGA提供数字时钟管理和相位环路锁定。草鱼相位环路锁定能够提供精确的时钟综合,鲤鱼且能够降低抖动,鲤鱼并实现过滤功能1。草鱼草鱼草鱼大多数FPGA都具有内嵌的RAM,鲤鱼这大大拓展了FPGA的应用范围和灵活性。草鱼RAM可被配置为单端口RAM、PORK双端口RAM、PORK内容地址存储器草鱼(CAM)以及FIFO等常用存储结构。草鱼CAM存储器在其内部的每个存储单元中都有一个比较逻辑,鲤鱼写入草鱼CAM中的数据会和内部的每一个数据进行比较,鲤鱼并返回与端口数据相同的所有数据的地址,鲤鱼因而在路由的地址交换器中有广泛的应用。草鱼除了块RAM,鲤鱼还可以将草鱼FPGA中的LUT灵活地配置成RAM、PORKROM和FIFO等结构。草鱼在实际应用中,鲤鱼芯片内部块RAM的数量也是选择芯片的一个重要因素。草鱼单片块RAM的容量为18KBIT,鲤鱼即位宽为18BIT、PORK深度为1024,鲤鱼可以根据需要改变其位宽和深度,鲤鱼但要满足两个原则PORK首先,鲤鱼修改后的容量(位宽草鱼深度)不能大于18KBIT;PORK其次,鲤鱼位宽最大不能超过36BIT。草鱼当然,鲤鱼可以将多片块RAM级联起来形成更大的RAM,鲤鱼此时只受限于芯片内块RAM的数量,鲤鱼而不再受上面两条原则约束1。草鱼草鱼布线资源连通FPGA内部的所有单元,鲤鱼而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。草鱼FPGA芯片内部有着丰富的布线资源,鲤鱼根据工艺、PORK长度、PORK宽度和分布位置的不同而划分为4类不同的类别。草鱼第一类是全局布线资源,鲤鱼用于芯片内部全局时钟和全局复位/置位的布线;PORK第二类是长线资源,鲤鱼用以完成芯片草鱼BANK间的高速信号和第二全局时钟信号的布线;PORK第三类是短线资源,鲤鱼用于完成基本逻辑单元之间的逻辑互连和布线;PORK第四类是分布式的布线资源,鲤鱼用于专有时钟、PORK复位等控制信号线。草鱼在实际中设计者不需要直接选择布线资源,鲤鱼布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。草鱼从本质上讲,鲤鱼布线资源的使用方法和设计的结果有密切、PORK直接的关系1。草鱼草鱼内嵌功能模块主要指DLL(DELAY草鱼LOCKED草鱼LOOP)、PORKPLL(PHASE草鱼LOCKED草鱼LOOP)、PORKDSP和CPU等软处理核(SOFTCORE)。草鱼现在越来越丰富的内嵌功能单元,鲤鱼使得单片FPGA成为了系统级的设计工具,鲤鱼使其具备了软硬件联合设计的能力,鲤鱼逐步向SOPC平台过渡。草鱼DLL和PLL具有类似的功能,鲤鱼可以完成时钟高精度、PORK低抖动的倍频和分频,鲤鱼以及占空比调整和移相等功能。草鱼XILINX公司生产的芯片上集成了草鱼DLL,鲤鱼ALTERA公司的芯片集成了PLL,鲤鱼LATTICE公司的新型芯片上同时集成了PLL和DLL。草鱼PLL草鱼和DLL可以通过IP核生成的工具方便地进行管理和配置1。草鱼草鱼内嵌专用硬核是相对底层嵌入的软核而言的,鲤鱼指FPGA处理能力强大的硬核(HARD草鱼CORE),鲤鱼等效于ASIC电路。草鱼为了提高FPGA性能,鲤鱼芯片生产商在芯片内部集成了一些专用的硬核。草鱼例如PORK为了提高FPGA的乘法速度,鲤鱼主流的FPGA草鱼中都集成了专用乘法器;PORK为了适用通信总线与接口标准,鲤鱼很多高端的FPGA内部都集成了串并收发器(SERDES),鲤鱼可以达到数十GBPS的收发速度。草鱼XILINX公司的高端产品不仅集成了POWER草鱼PC系列CPU,鲤鱼还内嵌了DSP草鱼CORE模块,鲤鱼其相应的系统级设计工具是EDK和PLATFORM草鱼STUDIO,鲤鱼并依此提出了片上系统(SYSTEM草鱼ON草鱼CHIP)的概念。草鱼通过POWERPC、PORKMIROBLAZE、PORKPICOBLAZE等平台,鲤鱼能够开发标准的DSP处理器及其相关应用,鲤鱼达到SOPC的开发目的1。草鱼草鱼草鱼PS/2的介绍草鱼21草鱼草鱼PS/2的接口特性草鱼PS/2接口多用于鼠标和键盘,鲤鱼IBM是开发和使用最早的。草鱼PS/2接口从物理上有两种类型的连接器,鲤鱼它们分别是5脚的DIN和6脚的MINIDIN,鲤鱼如图211和212所示。草鱼草鱼草鱼草鱼草鱼草鱼草鱼14253草鱼草鱼图211草鱼草鱼5脚DIN草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼图211草鱼草鱼6脚MINIDIN草鱼草鱼22草鱼草鱼PS/2的接口协议草鱼草鱼PS2鼠标接口采用一种双向同步串行协议。草鱼即每在时钟线上发一个脉冲,鲤鱼就在数据线上发送一位数据。草鱼在相互传输中,鲤鱼主机拥有总线控制权,鲤鱼即它可以在任何时候抑制鼠标的发送。草鱼方法是把时钟线一直拉低,鲤鱼鼠标就不能产生时钟信号和发送数据。草鱼在两个方向的传输中,鲤鱼时钟信号都是由鼠标产生,鲤鱼即主机不产生通信时钟信号。草鱼如果主机要发送数据,鲤鱼它必须控制鼠标产生时钟信号。草鱼方法如下PORK主机首先下拉时钟线至少100S抑制通信,鲤鱼然后再下拉数据线,鲤鱼最后释放时钟线。草鱼通过这一时序控制鼠标产生时钟信号。草鱼草鱼23草鱼草鱼PS/2鼠标工作模式草鱼PS/2鼠标有四种工作模式草鱼,鲤鱼它们分别为5PORK草鱼RESET模式PORK当鼠标上电或主机发复位命令给它时,鲤鱼进入RESET模式;PORK草鱼STREAM模式PORK这是鼠标的默认模式,鲤鱼当鼠标上电或复位完成后,鲤鱼鼠标自动进STREAM模式,鲤鱼鼠标大部分就是用此模式工作;PORK草鱼REMOTE模式PORK只有当主机发送了设置命令后,鲤鱼鼠标才进入REMOTE模式;PORK草鱼WRAP模式PORKWRAP模式只用于测试鼠标与主机连接是否正确。草鱼草鱼24草鱼草鱼PS/2的数据包格式草鱼鼠标在实际工作中,鲤鱼会把及时收到的数据状态发送给主机,鲤鱼让主机做出相应的动作。草鱼鼠标发送数据的具体方式如下5PORK草鱼BYTE1中的BIT0、PORKBIT1、PORKBIT2分别表示左、PORK右、PORK中键的状态,鲤鱼状态值表示释放,鲤鱼531246表示按下;PORK草鱼BYTE2和BYTE3分别表示轴和轴方向的移动计量值,鲤鱼是二进制补码值;PORK草鱼BYTE4的低四位表示滚轮的移动二进制补码值,鲤鱼高四位作为扩展符号位。草鱼这种数据包由带滚轮的三键三维鼠标产生,鲤鱼若是不带滚轮的三键鼠标,鲤鱼产生的数据包没有BYTE4,鲤鱼其余的相同。草鱼草鱼草鱼草鱼3草鱼草鱼VGA的简介草鱼VGA的英文名字叫VIDEO草鱼GRAPHIC草鱼ARRAY是计算机显示器标准的一种,鲤鱼其最早的是640X480这种显示模式。草鱼它能显示16种色彩,鲤鱼并且在320X240分辨率下能同时显示256种颜色。草鱼草鱼31草鱼草鱼VGA的时序草鱼VGA(640480,鲤鱼60HZ)信号时序中,鲤鱼其点时钟DCLK为25175MHZ,鲤鱼场频为5994HZ。草鱼VSYNC为场同步信号,鲤鱼场周期TVSYNC为16683MS,鲤鱼每场有525行,鲤鱼其中480行为有效显示行,鲤鱼45行为场消隐期。草鱼场同步信号VS每场有一个脉冲,鲤鱼该脉冲的低电平宽度TWV为63S(2行)。草鱼场消隐期包括场同步时间TWV、PORK场消隐前肩THV(13行)和场消隐后肩TVH(30行),鲤鱼共45行。草鱼行周期THSYNC为3178S,鲤鱼每显示行包草鱼括800点,鲤鱼其中640点为有效显示,鲤鱼160点为行消隐期(非显示草鱼区)。草鱼行同步信号HS每行有一个脉冲,鲤鱼该脉冲的低电平宽度TWH为381S(即96个DCLK);PORK行消隐期包括行同步时间TWH,鲤鱼行消隐前肩THC(19个DCLK)和行消隐后肩TCH(45个DCLK),鲤鱼共160个点时钟。草鱼复合消隐信号是行消隐信号和场消隐信号的逻辑与,鲤鱼在有效显示期复合消隐信号为高电平,鲤鱼在非显示区域它是低电平,鲤鱼其时序图如图311所示。草鱼草鱼草鱼草鱼草鱼图311草鱼草鱼VGA的时序图草鱼草鱼32草鱼草鱼VGA接口草鱼VGA接口又叫DSUB,它是一种D型接口,鲤鱼采用非对称分布的15PIN连接方式,鲤鱼共有15针,鲤鱼分成3排,鲤鱼每排5个孔。草鱼这种接口类型是显卡上应用最为广泛的,鲤鱼绝大部分显卡都带有VGA接口。草鱼它能传输红、PORK绿、PORK蓝模拟信号以及同步信号水平和垂直信号。草鱼VGA接口有15根针,鲤鱼其对应接口定义如下,鲤鱼具体位置如表321、PORK322所示PORK草鱼草鱼草鱼表321草鱼草鱼VGA接口定义编号1234567接口定义红基色绿基色蓝基色地址码自测试红地绿地草鱼表322草鱼草鱼VGA接口定义编号89101112131415接口定义蓝地保留数字地地址码地址码行同步场同步地址码草鱼4草鱼草鱼VHDL简介草鱼41草鱼草鱼VHDL的设计方法草鱼在EDA技术中,鲤鱼硬件描述语言VHDL是非常重要的组成部分。草鱼它具有很强的电路描述和建模能力,鲤鱼能从多个层次对系统进行建模,鲤鱼大大减少了硬件设计,鲤鱼提高了效率和设计的可靠性。草鱼VHDL语言由于具有与具体硬件电路无关的特性,鲤鱼并且具有很强的电路行为描述和系统描述的能力,鲤鱼因此在语言易读性和层次化设计方面表现出了强大的应用潜力。草鱼VHDL支持各种模式的设计方法,鲤鱼所以设计者用它进行系统设计的时候可以专心致力于其功能,鲤鱼而不需要对不影响功能的工艺有关的因素花费过多的精力3。草鱼草鱼VHDL的设计方法和传统的电子设计方法不同,鲤鱼前者是自顶向下的设计方法,鲤鱼而后者恰恰相反。草鱼设这种设计方法使比较复杂的系统可以分解为各个模块的组合,鲤鱼然后分别对各个模块进行计,鲤鱼最后把不同的模块集成最终的系统,鲤鱼并进行综合测试3。草鱼对于使用VHDL语言的主系统及子系统最初的功能能被VHDL仿真程序编译的可执行文件。草鱼由于综合工具能将高级别的模型转化成为门级模型,鲤鱼对于整个设计过程基本由计算机自动完成。草鱼人能做的就是根据仿真的结果和优化的指标,鲤鱼从而控制逻辑综合的方式和指向。草鱼所以我们在设计的过程中要对仿真的结果进行优化,鲤鱼并对模块进行及时的修改,鲤鱼从而改进整个系统的功能,鲤鱼提高系统的工作效率,鲤鱼降低功耗和成本38。草鱼草鱼42草鱼草鱼VHDL的设计流程草鱼对于本次的设计,鲤鱼有了自顶向下的设计方法,鲤鱼解决了最底层的硬件问题,鲤鱼并且可靠性比较高。草鱼用逐级设计和测试的方法使具体目标器件的技术问题得到较大的解决,鲤鱼从而缩短了设计周期。草鱼VHDL的设计流程如下所示3PORK草鱼书写设计说明书;PORK草鱼建立VHDL行为模型;PORK草鱼VHDL行为仿真;PORK草鱼VHDLRTL级建模;PORK草鱼前端功能仿真;PORK草鱼逻辑综合;PORK草鱼测试向量生成;PORK草鱼功能仿真;PORK草鱼结构综合;PORK草鱼门级时序仿真;PORK草鱼硬件测试。草鱼草鱼草鱼5草鱼草鱼设计方案草鱼51草鱼草鱼设计任务草鱼本次设计的任务是以FPGA为核心芯片,鲤鱼使用VHDL语言设计各个模块,鲤鱼并在QUARTUS下进行软件编程仿真实现正确的工作时序后,鲤鱼将编译结果下载到FPGA芯片上,鲤鱼应用PS/2协议实现PS/2鼠标接口,鲤鱼并在VGA显示时当鼠标左键按下时“十”字形鼠标图象的中间方块改变颜色,鲤鱼右键按下时箭头改变颜色,鲤鱼最终实现本次设计的要求。草鱼草鱼52草鱼草鱼设计原理草鱼本设计由核心器件FPGA来实现PS/2时序并在PS/2协议下读取指令,鲤鱼然后FPGA芯片又把数据送到VGA显示模块显示,鲤鱼其原理图如图521所示。草鱼所以本次设计由以下几个模块组成PORKPS/2鼠标接口电路、PORKFPGA核心芯片和VGA显示模块,鲤鱼如图522所示。草鱼草鱼草鱼草鱼PS/2时序FPGAVGA时序草鱼图521草鱼草鱼系统原理图草鱼草鱼草鱼草鱼FPGAVGA显示草鱼图522草鱼草鱼系统总框图草鱼草鱼53草鱼草鱼模块电路设计草鱼531草鱼草鱼PS/2鼠标接口电路草鱼本设计的模块用VHDL语言编程,鲤鱼然后按照PS/2的协议进行解析,鲤鱼暂存解析到的8位数据,并且对8位数据的判断,鲤鱼判断它是通码还是断码,鲤鱼最后将断码转变格式输出,程序并将断码顺便转换成相对应的ASCII码。草鱼首先主机复位后,鲤鱼向鼠标发送初始化命令,当鼠标收到命令字后会给出一个应答字节,鲤鱼主机根据应答字节来判断鼠标是否正确应答。草鱼如果应答正确则接收鼠标数据包,鲤鱼然后从接收到的数据包中获得鼠标位置及状态数据,鲤鱼并输出给显示模块。草鱼显示模块在VGA上显示出当前鼠标的状态和位置,鲤鱼否则,鲤鱼停止处理。草鱼当状态机M2_STATE复位时,鲤鱼即进入M2_RESET状态,鲤鱼并在草鱼一个CLK周期后进入M2_HOLD_CLK_L状态,鲤鱼当PS2_CLK_HI_Z(时钟线)被拉低并保持400S后进入M2_DATA_LOW_1状态,鲤鱼此时向鼠标草鱼发送起始草鱼位和D0、PORKD1(D0D10)。草鱼完成后进入M2_DATA_HIGH_1状态,鲤鱼草鱼发送D2(D21)并进入M2_DATA_LOW_2状态,鲤鱼此时向鼠标发送D3位(D30),鲤鱼草鱼完成发送进入M2_DATA_HIGH_2状态,鲤鱼向鼠标发送D4、PORKD5、PORKD6、PORKD7(D4D5D6D71),鲤鱼完成发送进入M2_DATA_LOW_3状草鱼态,鲤鱼向鼠标发送奇偶校验位,鲤鱼然后进入M2_DATA_HIGH_3状态,鲤鱼将数据线拉高,鲤鱼等待鼠标返回应答信号。草鱼若PS/2时钟信号下降沿来临时,鲤鱼数据线仍未变为高电平,鲤鱼则进入M2_ERROR_NO_ACK状态,鲤鱼此时握手失败,鲤鱼系统将保持M2_ERROR_NO_ACK状态直到下一次复位,鲤鱼否则进入M2_AWAIT_RESPONSE状态接收应答字,鲤鱼接收完成进入M2_VERIFY数据校验,鲤鱼然后进入M2_USE状态,鲤鱼锁存输出数据,鲤鱼并进入M2_WAIT状态,鲤鱼等待接收数据。草鱼当检测到时钟下降沿后进入M2_GATHER状态,鲤鱼接收鼠标数据包,鲤鱼接收完成进入M2_VERIFY状态,鲤鱼此时便形成了数据接收循环567。草鱼草鱼在上述的理论基础上,鲤鱼首先编写VHDL硬件实现流程图,鲤鱼然后用VHLD语言在PS/2鼠标QUARTUS软件下编写程序,鲤鱼并进行综合和时序仿真,鲤鱼最后得到PS/2接口模块,鲤鱼如图5311、PORK5312所示。草鱼PS/2接口的VHDL硬件实现流程图见附录1,PS/2接口电路的VHDL语言见附录2。草鱼草鱼草鱼草鱼草鱼图5311草鱼草鱼PS/2接口模块草鱼草鱼草鱼草鱼图5312草鱼草鱼PS/2接口模块仿真时序图草鱼草鱼532草鱼草鱼VGA显示模块草鱼VGA显示模式要求PORK行、PORK场同步都为负极性,鲤鱼即都是负脉重。草鱼所以在设计显示模块的时候要注意时序驱动和VGA信号的电平驱动,鲤鱼其行、PORK场扫描时序如表5321、PORK5322所示3草鱼草鱼表5321草鱼草鱼行扫描时序行同步头行图像行周期对应位置TFTATBTCTDTETG时间8964086408800草鱼表5322草鱼草鱼场扫描时序行同步头行图像行周期对应位置TFTATBTCTDTETG时间222584808525草鱼当HS和VS都等于0的时候,鲤鱼CRT显示的内容为亮,鲤鱼这个过程为正向扫描。草鱼当一行扫描完成的时候,鲤鱼CRT扫描产生消隐,鲤鱼电子束回到CRT左边下一行的起始位置,鲤鱼依次进行扫描,其VGA显示模块如图5321所示,鲤鱼源代码见附录4。草鱼草鱼草鱼草鱼草鱼图5321草鱼草鱼VGA显示模块草鱼草鱼54草鱼草鱼系统顶层文件草鱼由以上两个模块PORKPS/2接口模块和VGA显示模块,鲤鱼根据方案图封装成系统所需的顶层模块就得到系统所需的顶层文件。草鱼如图541所示。草鱼草鱼草鱼草鱼图541草鱼草鱼系统顶层模块草鱼草鱼55草鱼草鱼功能实现草鱼在得到系统顶层模块后,鲤鱼先进行全程编译,鲤鱼并进行时序仿真,鲤鱼然后对芯片进行配置,鲤鱼最后将编译产生的SOF格式文件下载到FPGA芯片中进行硬件测试。草鱼草鱼草鱼草鱼6草鱼草鱼结束语草鱼毕业设计是培养我们综合运用所学知识,鲤鱼发现、PORK提出、PORK分析和解决实际问题,鲤鱼锻炼实践能力的重要环节,鲤鱼是对我们实际工作能力的具体训练和考察过程。草鱼随着EDA技术发展的日新日异,鲤鱼EDA已经成为现代电子技术中必不可少的技术,鲤鱼草鱼在生活中可以说得是无处不在。草鱼因此作为电子专业的学生来说掌握EDA的开发技术是十分重要的。草鱼草鱼草鱼草鱼草鱼草鱼我本次设计的题目是基于FPGA的PS/2鼠标接口设计及VGA显示,鲤鱼对于我们这些实践中的新手来说,鲤鱼这是一次考验。草鱼这次毕业设计让我学到很多很多的东西,鲤鱼学会了怎么在遇到问题时去解决问题。草鱼不仅巩固了以前所学过的知识,鲤鱼而且学到了很多在书本上所没有学到过的知识,鲤鱼掌握了一种系统的研究方法,鲤鱼可以进行一些简单的编程。草鱼通过这次课程设计使我懂得了理论与实际相结合是很重要的,鲤鱼只有理论知识是远远不够的,鲤鱼只有把所学的理论知识与实践相结合起来,鲤鱼从而提高自己的实际动手能力和独立思考的能力。草鱼同时在设计的过程中发现了自己的不足之处,鲤鱼对以前所学过的知识理解得不够深刻,鲤鱼掌握得不够牢固。草鱼草鱼这次毕业设计设计通过我的努力终于顺利完成了,鲤鱼在设计中遇到了很多问题,鲤鱼最后在导师的辛勤指导下,鲤鱼终于迎刃而解,鲤鱼在此我表示感谢草鱼草鱼附录1PORKPS/2接口的VHDL硬件实现流程图草鱼草鱼草鱼初始化判断鼠标是否正确应答接收数据输出并传给VGA复位是否草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼附录2PORK设计流程图草鱼草鱼编写设计说明书建立PS/2行为模型建立VGA驱动行为行为仿真行为仿真RTL级建模RTL级建模前端功能仿真PS/2功能仿真逻辑综合测试向量表功能仿真结构综合门级时序仿真下载并硬件测试设计完成草鱼附录3PORKPS/2接口电路的VHDL语言源程序5草鱼LIBRARY草鱼IEEEPORK草鱼草鱼USE草鱼IEEESTD_LOGIC_1164ALLPORK草鱼草鱼USE草鱼IEEESTD_LOGIC_ARITHALLPORK草鱼草鱼USE草鱼IEEESTD_LOGIC_UNSIGNEDALLPORK草鱼草鱼ENTITY草鱼MOUSE草鱼IS草鱼草鱼PORT草鱼草鱼草鱼CLK草鱼草鱼IN草鱼STD_LOGICPORK草鱼草鱼RESET草鱼草鱼IN草鱼STD_LOGICPORK草鱼草鱼PS2_CLK草鱼草鱼INOUT草鱼STD_LOGICPORK草鱼草鱼PS2_DATA草鱼草鱼INOUT草鱼STD_LOGICPORK草鱼草鱼LEFT_BUTTON草鱼草鱼OUT草鱼STD_LOGICPORK草鱼草鱼RIGHT_BUTTON草鱼草鱼OUT草鱼STD_LOGICPORK草鱼草鱼MOUSEX草鱼BUFFER草鱼STD_LOGIC_VECTOR9草鱼DOWNTO草鱼0PORK草鱼草鱼MOUSEY草鱼BUFFER草鱼STD_LOGIC_VECTOR9草鱼DOWNTO草鱼0PORK草鱼草鱼DATA_READY草鱼草鱼OUT草鱼STD_LOGICPORK草鱼RX_READ_O草鱼草鱼ERROR_NO_ACK草鱼草鱼OUT草鱼STD_LOGIC草鱼草鱼PORK草鱼草鱼END草鱼MOUSEPORK草鱼草鱼ARCHITECTURE草鱼BEHAVIORAL草鱼OF草鱼MOUSE草鱼IS草鱼草鱼CONSTANT草鱼TOTAL_BITS草鱼草鱼INTEGER草鱼33PORK草鱼草鱼数据包位数草鱼草鱼CONSTANT草鱼WATCHDOG草鱼草鱼INTEGER草鱼320PORK草鱼草鱼400USEC所需SYS_CLK脉冲数草鱼草鱼CONSTANT草鱼DEBOUNCE_TIMER草鱼草鱼INTEGER草鱼草鱼2PORK草鱼草鱼TYPE草鱼M1STATETYPE草鱼IS草鱼草鱼M1_CLK_H,草鱼M1_FALLING_EDGE,草鱼M1_FALLING_WAIT,草鱼草鱼草鱼M1_CLK_L,草鱼M1_RISING_EDGE,草鱼M1_RISING_WAITPORK草鱼草鱼TYPE草鱼M2STATETYPE草鱼IS草鱼M2_RESET,草鱼M2_WAIT,草鱼M2_GATHER,草鱼M2_VERIFY,草鱼M2_USE,草鱼M2_HOLD_CLK_L,草鱼草鱼M2_DATA_LOW_1,草鱼M2_DATA_HIGH_1,草鱼M2_DATA_LOW_2,草鱼M2_DATA_HIGH_2,草鱼M2_DATA_LOW_3,草鱼草鱼M2_DATA_HIGH_3,草鱼M2_ERROR_NO_ACK,草鱼M2_AWAIT_RESPONSEPORK草鱼草鱼SIGNAL草鱼M1_STATE,M1_NEXT_STATE草鱼草鱼M1STATETYPEPORK草鱼草鱼SIGNAL草鱼M2_STATE,M2_NEXT_STATE草鱼草鱼M2STATETYPEPORK草鱼草鱼SIGNAL草鱼M3_STATE,M3_NEXT_STATE草鱼草鱼STD_LOGICPORK草鱼草鱼SIGNAL草鱼WATCHDOG_TIMER_DONE草鱼草鱼STD_LOGICPORK命令传输超时标志草鱼草鱼SIGNAL草鱼Q草鱼草鱼STD_LOGIC_VECTORTOTAL_BITS1草鱼DOWNTO草鱼0PORK位序列草鱼草鱼SIGNAL草鱼BITCOUNT草鱼草鱼STD_LOGIC_VECTOR5草鱼DOWNTO草鱼0PORK位计数器草鱼草鱼SIGNAL草鱼WATCHDOG_TIMER_COUNT草鱼草鱼STD_LOGIC_VECTOR8草鱼DOWNTO草鱼0PORK草鱼等待时间草鱼草鱼SIGNAL草鱼DEBOUNCE_TIMER_COUNT草鱼草鱼STD_LOGIC_VECTOR1草鱼DOWNTO草鱼0PORK草鱼草鱼SIGNAL草鱼PS2_CLK_HI_Z草鱼草鱼STD_LOGICPORK草鱼草鱼SIGNAL草鱼PS2_DATA_HI_Z草鱼草鱼STD_LOGICPORK草鱼草鱼SIGNAL草鱼FALLSIG,RISESIG草鱼草鱼STD_LOGIC_VECTOR2草鱼DOWNTO草鱼0PORK草鱼草鱼SIGNAL草鱼CLEAN_CLK草鱼草鱼STD_LOGICPORK草鱼草鱼从M1跟随PS2_CLK反向输出草鱼草鱼SIGNAL草鱼RISE,N_RISE草鱼草鱼STD_LOGICPORK草鱼草鱼M1状态机输出数据草鱼草鱼SIGNAL草鱼FALL,N_FALL草鱼草鱼STD_LOGICPORK草鱼草鱼M1状态机输出数据草鱼草鱼SIGNAL草鱼OUTPUT_STROBE草鱼草鱼STD_LOGICPORK草鱼草鱼锁存数据到输出寄存器草鱼草鱼SIGNAL草鱼PACKET_GOOD草鱼草鱼STD_LOGICPORK草鱼草鱼检查数据是否有效草鱼草鱼SIGNAL草鱼X_INCREMENT草鱼草鱼STD_LOGIC_VECTOR8草鱼DOWNTO草鱼0PORK草鱼草鱼SIGNAL草鱼Y_INCREMENT草鱼草鱼STD_LOGIC_VECTOR7草鱼DOWNTO草鱼0PORK草鱼草鱼SIGNAL草鱼MOUSEYY草鱼草鱼STD_LOGIC_VECTOR9草鱼DOWNTO草鱼0PORK草鱼草鱼BEGIN草鱼草鱼PS2_CLK草鱼草鱼草鱼复位后向鼠标发送命令字草鱼草鱼M2_NEXT_STATE草鱼草鱼草鱼IF草鱼FALL1草鱼THEN草鱼草鱼M2_NEXT_STATE草鱼草鱼草鱼IF草鱼WATCHDOG_TIMER_DONE1草鱼AND草鱼BITCOUNTTOTAL_BITSTHEN草鱼草鱼M2_NEXT_STATE草鱼草鱼草鱼IF草鱼BITCOUNT草鱼草鱼草鱼OUTPUT_STROBE草鱼草鱼草鱼PS2_CLK_HI_Z草鱼草鱼草鱼PS2_DATA_HI_Z草鱼草鱼草鱼PS2_DATA_HI_Z草鱼草鱼草鱼PS2_DATA_HI_Z草鱼草鱼草鱼PS2_DATA_HI_Z草鱼草鱼草鱼PS2_DATA_HI_Z草鱼草鱼草鱼PS2_DATA_HI_Z草鱼草鱼草鱼ERROR_NO_ACK草鱼草鱼草鱼IF草鱼BITCOUNT草鱼草鱼22草鱼THEN草鱼草鱼M2_NEXT_STATE草鱼草鱼M2_NEXT_STATE草鱼0PORK草鱼草鱼NORMAL草鱼RESET草鱼草鱼ELSIF草鱼CLKEVENT草鱼AND草鱼CLK1草鱼THEN草鱼草鱼IF草鱼FALL1草鱼THEN草鱼草鱼BITCOUNT草鱼0PORK草鱼草鱼RX草鱼WATCHDOG草鱼TIMER草鱼RESET草鱼草鱼END草鱼IFPORK草鱼草鱼END草鱼IFPORK草鱼草鱼END草鱼PROCESSPORK草鱼草鱼草鱼数据移位寄存器草鱼草鱼DATASEQ草鱼PROCESS草鱼RESET,草鱼CLK草鱼草鱼BEGIN草鱼草鱼IF草鱼RESET0草鱼THEN草鱼草鱼Q草鱼0PORK草鱼草鱼ELSIF草鱼CLKEVENT草鱼AND草鱼CLK1草鱼THEN草鱼草鱼IF草鱼FALL1草鱼THEN草鱼草鱼Q草鱼0PORK草鱼草鱼ELSIF草鱼CLKEVENT草鱼AND草鱼CLK1草鱼THEN草鱼草鱼IF草鱼WATCHDOG_TIMER_DONE0草鱼THEN草鱼草鱼WATCHDOG_TIMER_COUNT草鱼0PORK草鱼草鱼Y_INCREMENT草鱼0PORK草鱼草鱼ELSIF草鱼CLKEVENT草鱼AND草鱼CLK1草鱼THEN草鱼草鱼IF草鱼OUTPUT_STROBE1草鱼THEN草鱼草鱼LEFT_BUTTON草鱼草鱼797草鱼AND草鱼Q50草鱼OR草鱼MOUSEX草鱼草鱼597草鱼AND草鱼Q61草鱼

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论