基于fpga开发计算机接口芯片设计---毕业设计_第1页
基于fpga开发计算机接口芯片设计---毕业设计_第2页
基于fpga开发计算机接口芯片设计---毕业设计_第3页
基于fpga开发计算机接口芯片设计---毕业设计_第4页
基于fpga开发计算机接口芯片设计---毕业设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业论文1基于基于基于基于FPGAFPGA开发计算机接口芯片设计开发计算机接口芯片设计开发计算机接口芯片设计开发计算机接口芯片设计1引言11电子设计自动化概述电子设计自动化概述电子设计自动化概述电子设计自动化概述EDA是电子设计自动化(ELECTRONICDESIGNAUTOMATION)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言HDL(HARDWAREDESCRIPTIONLANGUAGE)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。也就是说,综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载文件,如JED文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于在综合器中已指定的目标器件系列。硬件描述语言HDL是相对于一般的计算机软件语言,如C、PASCAL而言的。HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABELHDL、AHDL和VHDL。12可编程器件可编程器件可编程器件可编程器件作为一种可编程逻辑器件,现场可编程门阵列(FIELDPROGRAMMABLEGATEARRAY,FPGA)的出现是可编程逻辑器件发展变化的必然,它的出现推动着可编程逻辑器件的进一步发展。因此说,了解了可编程逻辑器件的发展历程,也就了解了FPGA的发展历程。可编程逻辑器件(PROGRAMMABLELOGICDEVICE,PLD)是21世纪70年代发展起来的一种新型器件。它的应用不仅简化了电路设计,降低了成本,提高了系统的可靠性,而且给数字系统的设计方法带来了革命性的变化。可编程逻辑器件的发展是以微电子制作技术的不断进步为基础的,其结构和工艺的变化经历了一个不断发展的过程。20世纪70年代,早期的可编程逻辑器件可编程只读存储器(PROM)、紫外线可擦除只读存储器EPROM、和电可擦除只读存储器(EEPROM)3种。随后,出现了一类结构稍复杂的可编程芯片,即可编程逻辑阵列(PROGRAMMABLELOGICARRAY,PLA)。PLA在结构上由一个可编程的与阵列和可编程的或阵列构成,阵列规模小,编程过程复杂繁琐。PLA既有可编程的,也有掩膜可编程的。本科生毕业论文2在这之后出现了可编程阵列逻辑(PROGRAMMABLELOGICARRAY,PLA)器件,它由一个可编程的“与”平面和一个固定的“或”平面构成,是现场可编程的。它的实现工艺反熔丝技术、EPROM技术、EEPROM3种。在PLA的基础上,又发展了一种通用阵列逻辑(GENERICARRAYLOGIC,GAL),如GAL16V8、GAL22V10等。它采用了输出逻辑宏单元结构和EEPROM工艺,实现了电可擦除、店可改写,由于其输出结构是可编程的逻辑宏单元,因而其设计具有很灵活性,至今仍有许多应用。这些早期的PLA器件的一个共同特点是可以实现速度特性较好的逻辑功能,但是由于其结构过于简单,因此,只能用于实现小规模电路设计。为了弥补这一缺陷,20世纪80年代中期,著名的可编程逻辑器件厂商ALTERA和XILINX分别推出了扩展行的复杂可编程逻辑器件(CPLD)和类似与标准门阵列的现场可编程门阵列(FPGA)。CPLD和FPGA的功能基本相同,至是芯片得到内部原理和结构有一些差别。这两种器件兼容了PLA和GAL器件的优点,具有体系结构灵活、逻辑资源丰富、集成度高以及适应范围广等特点,可用于实现较大规模的电路设计,编程也很灵活,所以,被广泛应用于产品的原型设计和小批量生产之中。几乎所有使用PLA、GAL和中小规模通用数字集成电路的场合均可应用CPLD和FPGA器件。如今,FPGA器件已经成为当前主流的可编程逻辑器件之一。经过20年的发展,可编程逻辑器件已经取得了长足的进步,资源更加丰富,使用越来越方便。将来的可编程逻辑器件,密度会更高、速度会更快、功耗会更低,同时还会增加更多新的功能,向着集成了可编程逻辑、CPU、存储器等组件的可编程单片系统(SYSTEMONPROGRAMMABLECHIP,SOPC)方向发展。13开发环境开发环境开发环境开发环境软件QUARTUSII60。硬件FPGAFIELDPROGRAMMABLEGATEARRAY,即现场可编程门阵列。FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列组成,并由可编程互联资源连接这些逻辑功能块来实现不同的设计。本科生毕业论文32并行8255电路结构分析218255的基本特性的基本特性的基本特性的基本特性18255芯片具有两个8位(A口和B口)和两个4位(C口高低四位)并行输入输出端口,而且C口还具有按位置位/复位功能。28255能适应CPU与I/O接口之间的多种数据传送方式的要求。它设置了0方式、1方式以及2方式(双向传送)三种工作方式。38255的可执行能力很强,内容丰富的两条命令(方式字和控制字)为用户如何根据外界条件(I/O设备需要那些信号线以及它能提供那些状态线)来使用8255构成多种接口电路,组建微机应用系统提供了灵活方便的编程环境。48255的C口比较特殊,除做数据口外,当工作在1方式和2方式时,它的大部分引脚被分配作专用联络信号;C口还可以进行按位控制;在CPU读取8255状态时,C口又做1,2方式的状态口用。58255芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成。228255A的外部引线与内部结构的外部引线与内部结构的外部引线与内部结构的外部引线与内部结构221外部引线外部引线外部引线外部引线8255A是一个单5V电源供电,40个引脚的双列直插式组件,其外部引线如图1所示。图18255的引脚图作为接口电路的8255A具有面向主机系统总线和面向外设两个方向的连接能力。本科生毕业论文41面向系统总线的信号线有D7D0双向数据线。CPU通过它向8255A发送命令、数据;8255A通过它向CPU回送状态、数据。CS选片信号线,该信号低电平有效,由系统地址总线经IO地址译码器产生。CPU通过发高位地址信号使它变成低电平时,才能对8255A进行读写操作。当CS为高电平时,切断CPU与芯片的联系。A1,A0芯片内部端口地址信号线,与系统地址总线低位相连。该信号用来寻址8255A内部寄存器。两位地址,可形成片内4个端口地址。RD读信号线,该信号低电平有效。CPU通过执行IN指令,发读信号将数据或状态信号从8255A读至CPU。WR写信号线,该信号低电平有效。CPU通过执行OUT指令,发写信号,将命令代码或数据写入8255A。RESET复位信号线,该信号高电平有效。它清除控制寄存器并将8255A的A、B、C3个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种状态一直维持,直到用方式命令才能改变,使其进入用户所需的工作方式。2面制IO设备的信号线有PA0PA7端口A的输入输出线PB0PB7端口B的输入输出线PC0PC7端口C的输入输出线。这24根信号线均可用来连接IO设备,通过它们可以传送数字量信息或开关量信息。2228255的内部结构的内部结构的内部结构的内部结构8255的内部结构如图2所示。它由以下4个部分组成1数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与CPU系统数据总线的接口。所有数据的发送与接收,以及CPU发出的控制字和8255A来的状态信息都是通过该缓冲器传送的。2读写控制逻辑读写控制逻辑由读信号NRD,写领带NWR,选片信号NCS以及端口选择信号A1A0等组成。读写控制逻辑控制了总线的开放与关闭和信息传送的方向,以便把CPU的控制命令或输出数据送到相应的端口;或把外设的信息或输入数据从相应的端口送到CPU。3数据端口A、B、C8255包括3个8位输入输出端口(POPT)。每个端口都有一个数据输入寄存器和一个数据输出寄存器,输入时端口有三态缓冲器的功能,输出时端口有数据锁存器功能。在实际应用中,PC口的8位可以分为两个4位端口(方式0下),也可以分成一个5位端口和一个3位端口(方式1下)来使用。4A组和B组控制电路控制A、B和C3个端口的工作方式,A组控制A口和C口的上半部(PC7PC4),B组控制B口和C口的下半部(PC3PC0)的工作方式和输入输出。A组、B组的控制寄存本科生毕业论文5器还接收按位控制命令,以实现对PC口的按位置位复位操作。图28255的内部结构本科生毕业论文638255总体设计总体设计总体设计总体设计31设计方法设计方法设计方法设计方法本次设计采用的是自顶向下的设计方法,首先做整体设计然后在详细的划分每一个模块,然后再对各个模块进行设计。主要设计过程如图3所示图3设计流程328255的编程命令的编程命令的编程命令的编程命令8255A的编程命令包括工作方式控制字和对PC口的按位操作控制字两个命令,它们是用户使用8255A来组建各种接口电路的重要工具。由于这两个命令都是送到8255A的同一个控制端口,为了让8255A能识别是哪个命令,故采用特征位的方法。若写入的控制字的最高位D71,则是工作方式控制字;若写入的对8255芯片的功能进行分析,主要参考INTEL的8255A芯片。做系统的整体设计对系统做进一步细化,主要分为七个模块。对每个模块进行设计,编程对各个模块进行软件测试,确保设计的正确性。对各个模块进行整合,组成8255芯片。对芯片进行软件测试。本科生毕业论文7控制字D0,则是PC口的宾位置位复位控制字。321工作方式控制字工作方式控制字工作方式控制字工作方式控制字作用指定3个并行端口(PA、PB、PC)是作输入还是作输出端口以及选择8255的工作方式。格式及每位的定义如表1所示表1方式命令字特征位D6|D5D4D3D2D1D01A组方式PAPC47B组方式PBPC30000方式0输出0输出00方式0输出0输出011方式1输入1输入11方式1输入1输入102方式322PC口按位置口按位置口按位置口按位置复位控制字复位控制字复位控制字复位控制字作用指定PC口的某一位输出高电平还是低电平。格式及每位的定义如表2所示表2置位/复位命令字0D6D5D4D3D2D1D0特征位不用(写0)位选择1置位000C口0位(高电平)001C口1位0复位(低电平)111C口7位利用按位置位复位控制字可以使PC口的8根线中的任意一根置成高电平输出或低电平输出。命令产生的输出信号,可作为控制开关的通断、继电路的吸合释放、马达的启停等操作的选通信号。另外,8255A的状态字中的中断允许位INTE的置位和复位,即允许8255A提出中断与禁止8255A提出中断,也是采用这个按位控制的命令字来实现的。338255的三种工作方式的三种工作方式的三种工作方式的三种工作方式3318255A的方式的方式的方式的方式00方式0的特点1方式0是一种基本输入输出工作方式。方式0下8255A的24条IO线全部由用户分配功能,不设置专用联络信号。这种方式不能采用中断与CPU将近数据,只能用于简单(无条件)传送。输出锁存,输入只有缓冲能力而无锁存功能。2方式0下,8255A分成彼此独立的两个8位和两个4位并行口,这4个并行口都能被本科生毕业论文8指定作为输入或者作为输出用,共有16种不同的使用组态。要特别强调的是,在方式0下,只能把C口的高4位为一组或低4位为一组同时输入或输出,不能再把4位中一部分作输入、而另一部分作输出。3端口信号线之间无固定的时序关系,由用户根据数据传送的要求决定输入输出的操作过程。方式0没有设置固定的状态字。4是单向IO,一次初始化只能指定某一端口作输入或作输出,不能使该端口同时既作输入又作输出。3328255A的方式的方式的方式的方式111方式1的特点方式1是一种选通输入输出方式,在面向IO设备的24根线中,设置专用的中断请求和联络信号线。因此,这种方式通常用于查询条件(条件)传送或中断传送,数据的输入输出都有锁存能力。PA和PB为数据口,而PC口的大部分引脚分配作联络信号用,用户对这些引脚不能再指定作其他用途。各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。输入输出操作产生确定的状态字,这些状态信息可作为查询或中断请求之用。2方式1下输入输出信号线的分配及其时序关系。方式1下8255A引脚的功能分配和方式0的不同在于方式1分配了专用联络线和中断线,并且,这些专用线在输入和输出时各不相同,PA口和PB口也不相同。方式1下输入时的引脚及时序联络信号的定义当A口和B口为输入时,各指定了C口的3根线作为8255A与外设及CPU之间的应答信号。STB外设送到8255A的“输入选通”信号,低电平有效。当它变为低电平时,将数据锁存到8255A端口的输入数据寄存器。IBF8255A送到外设的“输入缓冲器满”信号,高电平有效。当它为高电平时,说明外部数据已送到8255A的输入缓冲器,但尚未被CPU取走,通知外设不能送新数据;只有当它为低电平,即CPU已读取数据,输入缓冲器变空时,才允许外设送新数据。INTR8255A送到CPU的“中断请求”信号,高电平有效。当它为高电平时,请求CPU从8255A读数。使INTR变为高电平的条件是当“输入选通信号”无效(STB1),即数据已输入8255A时,“输入缓冲器满”信号有效(IBF1),并且,中断请求被允许(INTE1),3个条件都具备时,才使INTR变高,向CPU发出中断请求。“中断允许”信号INTE是8255A为控制中断而设置的内部控制信号。当INTE1时,允许中断;当INTE0时,禁止中断。这要通过向C口写入按位置位复位命令业设置,内部不能自动产生这个控制信号。方式1输入的工作时序其信号交接的过程如下数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上时,首先发STB信号,由它把数据输入到8255A。在STB的下降沿约300NS,数据已锁存到8255A的锁存器后,引起IBF变成高电平,表示“输入缓冲器满”,禁止输入新数据。本科生毕业论文9在STB的上升沿约300NS,在中民允许(INTE1)的情况下,IBF的高电平产生中断请求,便INTR上升变成高电平,通知CPU现接口中已有数据,请求CPU读取。CPU接受中断请求后,转到相应的中断子程序。在子程序中执行IN指令,将锁存器中的数据取走。若CPU采用查询方式,则通过查询状态字中的INTR位或IBF位是否置位业判断有无数据可读。CPU执行读操作时,RD的下降沿使INTR复位,撤销中断请求,为下一次中断请求做好准备,RD信号的上升沿延时一段时间后清除IBF使其变低,表示接口的输入缓冲器变空,允许外设输入新数据。如此反复,直至完成全部数据的输入。方式1下输出时的引脚及时序联络信号的定义A口和B口输出时的PC引脚定义OBF8255A送到外设的“输出缓冲器满”信号,低电平有效。当它为低电平时,表示CPU已将数据写到8255A输出端口,通知外设来取数。ACK外设送到8255A的“回答”信号,低电平有效。当它为低电平时,表示外设已经从8255A的端口接收到了数据,它是以OBF的一种回答。ACK信号的下降沿延时一段时间后,清除OBF,使其变成高电平,为下一次输出做好准备。INTR8255A送到CPU的“中断请求”信号,高电平有效。当它为高电平时,请求CPU向8255A写数。ITNR变成高电平的条件是OBF、ACK和INTE都为高电平,表示输出缓冲器已变空(OBF1),回答信号已结束(ACK1),外设已收到数据,并且允许中断(INTE1),它们同时确定才能产生中断请求。方式1输出的工作时序方式1输出的工作时序信号交接的过程如下数据输出时,CPU处于主动地位,当CPU向8255A写一个数据时,WR的上升沿使OBF有效,表示输出缓冲器已满,通知外设读取数据。WR并且使中断请求INTR变低,封锁中断请求。外设读取数据后,用ACK回答8255A,表示数据已收到。ACK的下降沿将OBF置为高电平,使OBF无效,为下一次输出作准备。在中断允许(INTE1)的情况下,ACK的上升沿使INTR变为高电平,产生中断请求。CPU响应中断后,在中断服务程序中,执行OUT指令,向8255A写下一个数据。3方式1的状态字8255A的状态字为查询方式提供了状态标志位,如IBF和OBF。由于8255A不能直接提供中断矢量,因此当8255A采用中断方式时,CPU也要通过读状态字来确定中断源,实现查询中断,如INTRA和INTRB分别表示A口和B口的中断请求。状态字的含义状态字是通过读C口获得的,A组的状态位占C口的高5位,B组的状态位占低3位。要指出的是,从C口读出的状态字与C口的外部引脚无关,如在输入时,状态位PC4和PC2表示的是INTEA和INTEB的状态,而不是外部引脚PC4和PC2的联络信号STB的状态;在输出时,PC6和PC2表示的也是INTEA和INTEB,而不是外部引脚PC6和PC2的联络信号ACK的状态。从状态字的含义可见本科生毕业论文10输入和输出操作的状态字是不同的,使用时应“对号入座”,查相应的状态位。若采用查询方式,则一般是查INTR是否置位,当然亦或查IBF或OBF位。状态字中设置了INTR位,说明8255A只能提供查询中断,而不能提供矢量中断。若要采用矢量中断,则需借助于中断控制器来提供中断矢量。状态字中的INTE位是控制标志位,控制8255A能否提出中断请求,因此,它不是IO操作过程中自动产生的状态,而是由程序通过按位置位复位命令来设置或清除的。4方式1的接口方法在方式1下,首先根据实际应用的要求确定A口和B口是作输入还是输出,然后把C口中分配作联络的专用应答线与外设相应的控制或状态线相连。如果是采用中断方式,则还要把中断请求线接到微处理器或中断控制器;若采用查询方式,则中断请求线可以空着不接。方式1的中断处理,由于8255A不能直接提供中断矢量,所以一般都通过系统中的中断控制器来提供寻找中断服务程序入口地址的中断类型号。当然,对于不采用矢量中断的微处理器,可以将INTR线直接连到CPU的中断线(例如在单片机系统中)。方式1下CPU采用查询方式时,对输入,通过C口查IBF位的状态;对输出,查OBF位的状态或者查INTR位的状态。3338255A的方式的方式的方式的方式221方式2的特点联络信号的定义方式2是一种双向选通输入输出方式,它把A口作为双向输入输出口,把C口的5根线(PC3PC7)作为专用应答线,所以,8255A只有A口才有2方式。方式2下为双向传送所设置的联络线,实质上就是A口在方式1下输入和输出时两组联络信号线的组合。故各个引脚的定义也与方式1相同,只有中断请求信号INTR既可以作为输入的请求中断,也可以作为输出的请求中断。其引脚定义如图79所示。工作时序方式2的时序基本上也是方式1下输入时序与输出时序的组合。输入输出的先后顺序是任意的,根据实际传送数据的需要选定。输出过程是由CPU执行输出指令向8255A写数据(WR)开始的,而输入过程则是从外设向8255A发选通信号STB开始的,因此,只要求CPU的WR在ACK以前发生、RD在STB以后发生就行。方式2的状态字方式2的状态字的含义是方式1下输入和输出状态位的组合。状态字中有两位中断允许位,ITNE1是输出中断允许,INTE2是输入中断允许。本科生毕业论文114接口电路8255VNDL设计与编程418255的主模块设计的主模块设计的主模块设计的主模块设计这部分是芯片的主模块设计,通过对8255芯片的深入分析设计出整体模型。主模型分为控制逻辑模块、多路选择器模块、A端口输入模块、A端口输出模块、B端口输入模块、B端口输出模块、C端口模块等七个模块。其中控制逻辑模块比较复杂是整个主模块的核心部分。另外,8255的1方式和2方式都要用到C端口的引脚做控制字或联络信号,所以C端口也是重点。A端口与B端口功能相似,在设计时为了方便使设计简单,把一个端口分为了输入与输出两个部分。主模块的主要的功能就是通过各种联络信号把各个模块串联起来从而实现8255的功能。8255的逻辑图如图4所示DOUTSELECT20CONTROLREG70PORTAINREG70PAIN70PORTBINREG70PBIN70PORTCSTATUS70DOUT70CLKRESETNCSNRDNWRA10DIN70PCIN70PAENPBENPORTAOUTLDPORTAREADPORTAWRITEPORTBOUTLDPORTBREADPORTBWRITEPORTCOVERRIDEPCEN70DOUTSELECT20CONTROLREG70PORTCOUTLD70CLKPORTAOUTLDRESETDIN70PAOUT70CLKPORTAINLDRESETPAIN70PORTAINREG70CLKPORTBOUTLDRESETDIN70PBOUT70CLKPORTBINLDRESETPBIN70PORTBINREG70CLKPORTAREADPORTAWRITEPORTBREADPORTBWRITEPORTCOVERRIDERESETDIN70PCIN70CONTROLREG70PORTCOUTLD70PORTCSTATUS07PCOUT70RESETCLKNCSNRDNWRPAENPBENA10DIN70PAIN70PBIN70PCIN70DOUT70PAOUT70PBOUT70PCOUT70PCEN70PORTBINI_PORTBINPORTAOUTI_PORTAOUTDOUT_MUXI_DOUT_MUXPORTBOUTI_PORTBOUTPORTCOUTI_PORTCOUTPORTAINI_PORTAINCNTL_LOGI_CNTL_LOG图48255的逻辑图其VHDL语言的行为描述如下LIBRARYIEEEUSEIEEESTD_LOGIC_1164ALLENTITY8255ISPORTRESETINSTD_LOGIC本科生毕业论文12CLKINSTD_LOGICNCSINSTD_LOGICNRDINSTD_LOGICNWRINSTD_LOGICAINSTD_LOGIC_VECTOR1DOWNTO0DININSTD_LOGIC_VECTOR7DOWNTO0PAININSTD_LOGIC_VECTOR7DOWNTO0PBININSTD_LOGIC_VECTOR7DOWNTO0PCININSTD_LOGIC_VECTOR7DOWNTO0DOUTOUTSTD_LOGIC_VECTOR7DOWNTO0PAOUTOUTSTD_LOGIC_VECTOR7DOWNTO0PAENOUTSTD_LOGICPBOUTOUTSTD_LOGIC_VECTOR7DOWNTO0PBENOUTSTD_LOGICPCOUTOUTSTD_LOGIC_VECTOR7DOWNTO0PCENOUTSTD_LOGIC_VECTOR7DOWNTO0END8255ARCHITECTURESTRUCTUREOF8255ISSIGNALDOUTSELECTSTD_LOGIC_VECTOR2DOWNTO0SIGNALCONTROLREGSTD_LOGIC_VECTOR7DOWNTO0SIGNALPORTAOUTLDSTD_LOGICSIGNALPORTBOUTLDSTD_LOGICSIGNALPORTCOVERRIDESTD_LOGICSIGNALPORTCOUTLDSTD_LOGIC_VECTOR7DOWNTO0SIGNALPORTAINREGSTD_LOGIC_VECTOR7DOWNTO0SIGNALPORTBINREGSTD_LOGIC_VECTOR7DOWNTO0SIGNALPORTAREADSTD_LOGICSIGNALPORTBREADSTD_LOGICSIGNALPORTAWRITESTD_LOGICSIGNALPORTBWRITESTD_LOGICSIGNALPORTCSTATUSSTD_LOGIC_VECTOR7DOWNTO0SIGNALCOMPOSITEPORTCSTATUSSTD_LOGIC_VECTOR7DOWNTO0COMPONENTDOUT_MUXPORTDOUTSELECTINSTD_LOGIC_VECTOR2DOWNTO0CONTROLREGINSTD_LOGIC_VECTOR7DOWNTO0PORTAINREGINSTD_LOGIC_VECTOR7DOWNTO0PAININSTD_LOGIC_VECTOR7DOWNTO0PORTBINREGINSTD_LOGIC_VECTOR7DOWNTO0PBININSTD_LOGIC_VECTOR7DOWNTO0PORTCSTATUSINSTD_LOGIC_VECTOR7DOWNTO0DOUTOUTSTD_LOGIC_VECTOR7DOWNTO0ENDCOMPONENT本科生毕业论文13COMPONENTCNTL_LOGPORTRESETINSTD_LOGICCLKINSTD_LOGICNCSINSTD_LOGICNRDINSTD_LOGICNWRINSTD_LOGICAINSTD_LOGIC_VECTOR1DOWNTO0DININSTD_LOGIC_VECTOR7DOWNTO0PCININSTD_LOGIC_VECTOR7DOWNTO0PAENOUTSTD_LOGICPBENOUTSTD_LOGICPCENOUTSTD_LOGIC_VECTOR7DOWNTO0DOUTSELECTOUTSTD_LOGIC_VECTOR2DOWNTO0CONTROLREGOUTSTD_LOGIC_VECTOR7DOWNTO0PORTAREADOUTSTD_LOGICPORTBREADOUTSTD_LOGICPORTAWRITEOUTSTD_LOGICPORTBWRITEOUTSTD_LOGICPORTAOUTLDOUTSTD_LOGICPORTBOUTLDOUTSTD_LOGICPORTCOVERRIDEOUTSTD_LOGICPORTCOUTLDOUTSTD_LOGIC_VECTOR7DOWNTO0ENDCOMPONENTCOMPONENTPORTAOUTPORTDININSTD_LOGIC_VECTOR7DOWNTO0RESETINSTD_LOGICCLKINSTD_LOGICPORTAOUTLDINSTD_LOGICPAOUTOUTSTD_LOGIC_VECTOR7DOWNTO0ENDCOMPONENTCOMPONENTPORTAINPORTPAININSTD_LOGIC_VECTOR7DOWNTO0RESETINSTD_LOGICCLKINSTD_LOGICPORTAINLDINSTD_LOGICPORTAINREGOUTSTD_LOGIC_VECTOR7DOWNTO0ENDCOMPONENTCOMPONENTPORTBOUTPORT本科生毕业论文14DININSTD_LOGIC_VECTOR7DOWNTO0RESETINSTD_LOGICCLKINSTD_LOGICPORTBOUTLDINSTD_LOGICPBOUTOUTSTD_LOGIC_VECTOR7DOWNTO0ENDCOMPONENTCOMPONENTPORTBINPORTPBININSTD_LOGIC_VECTOR7DOWNTO0RESETINSTD_LOGICCLKINSTD_LOGICPORTBINLDINSTD_LOGICPORTBINREGOUTSTD_LOGIC_VECTOR7DOWNTO0ENDCOMPONENTCOMPONENTPORTCOUTPORTRESETINSTD_LOGICCLKINSTD_LOGICDININSTD_LOGIC_VECTOR7DOWNTO0PCININSTD_LOGIC_VECTOR7DOWNTO0CONTROLREGINSTD_LOGIC_VECTOR7DOWNTO0PORTAREADINSTD_LOGICPORTBREADINSTD_LOGICPORTAWRITEINSTD_LOGICPORTBWRITEINSTD_LOGICPORTCOVERRIDEINSTD_LOGICPORTCOUTLDINSTD_LOGIC_VECTOR7DOWNTO0PORTCSTATUSOUTSTD_LOGIC_VECTOR7DOWNTO0PCOUTOUTSTD_LOGIC_VECTOR7DOWNTO0ENDCOMPONENTBEGIN并行信号COMPOSITEPORTCSTATUSDOUTSELECT,CONTROLREGCONTROLREG,PORTAINREGPORTAINREG,PAINPAIN,PORTBINREGPORTBINREG,PBINPBIN,PORTCSTATUSCOMPOSITEPORTCSTATUS,DOUTDOUTI_CNTL_LOGCNTL_LOGPORTMAPRESETRESET,CLKCLK,NCSNCS,NRDNRD,NWRNWR,AA,DINDIN,PCINPCIN,PAENPAEN,PBENPBEN,PCENPCEN,DOUTSELECTDOUTSELECT,CONTROLREGCONTROLREG,PORTAREADPORTAREAD,PORTBREADPORTBREAD,PORTAWRITEPORTAWRITE,PORTBWRITEPORTBWRITE,PORTAOUTLDPORTAOUTLD,PORTBOUTLDPORTBOUTLD,PORTCOVERRIDEPORTCOVERRIDE,PORTCOUTLDPORTCOUTLDI_PORTAOUTPORTAOUTPORTMAPDINDIN,RESETRESET,CLKCLK,PORTAOUTLDPORTAOUTLD,PAOUTPAOUTI_PORTAINPORTAINPORTMAPPAINPAIN,RESETRESET,本科生毕业论文16CLKCLK,PORTAINLDPCIN4,PORTAINREGPORTAINREGI_PORTBOUTPORTBOUTPORTMAPDINDIN,RESETRESET,CLKCLK,PORTBOUTLDPORTBOUTLD,PBOUTPBOUTI_PORTBINPORTBINPORTMAPPBINPBIN,RESETRESET,CLKCLK,PORTBINLDPCIN2,PORTBINREGPORTBINREGI_PORTCOUTPORTCOUTPORTMAPRESETRESET,CLKCLK,DINDIN,PCINPCIN,CONTROLREGCONTROLREG,PORTAREADPORTAREAD,PORTBREADPORTBREAD,PORTAWRITEPORTAWRITE,PORTBWRITEPORTBWRITE,PORTCOUTLDPORTCOUTLD,PORTCOVERRIDEPORTCOVERRIDE,PORTCSTATUSPORTCSTATUS,PCOUTPCOUTENDSTRUCTURE42控制逻辑设计控制逻辑设计控制逻辑设计控制逻辑设计控制逻辑由以下信号由读信号NRD,写领带NWR,选片信号NCS以及端口选择信号A1A0等组成。读写控制逻辑控制了总线的开放与关闭和信息传送的方向,以便把CPU的控制命令或输出数据送到相应的端口;或把外设的信息或输入数据从相应的端口送到CPU。其逻辑图如图6所示本科生毕业论文17图5控制逻辑逻辑图其VHDL语言的行为描述见附录。43多路选择器设计多路选择器设计多路选择器设计多路选择器设计多路选择器是一个数据的输入/出选择装置,由它来决定是CPU向8255发送命令、数,还是8255向CPU回送状态、数据。其逻辑图如图6所示图6多路选择器逻辑图其VHDL语言的行为描述见附录。44端口端口端口端口AA输入设计输入设计输入设计输入设计其逻辑图如图7所示本科生毕业论文18图7端口A输出逻辑图其VHDL语言的行为描述见附录。45端口端口端口端口AA输出设计输出设计输出设计输出设计其逻辑图如图8所示图8端口A输出逻辑图其VHDL语言的行为描述见附录。46端口端口端口端口BB输入设计输入设计输入设计输入设计图9端口B输入逻辑图其VHDL语言的行为描述见附录。48端口端口端口端口BB输出设计输出设计输出设计输出设计其逻辑图如图10所示图10端口B输出逻辑图其VHDL语言的行为描述见附录。本科生毕业论文1949端口端口端口端口CC输入输入输入输入/输出设计输出设计输出设计输出设计其逻辑图如图11所示图11端口C逻辑图其VHDL语言的行为描述见附录。本科生毕业论文205软件测试51主程序的仿真结果主程序的仿真结果主程序的仿真结果主程序的仿真结果52控制逻辑的仿真结果控制逻辑的仿真结果控制逻辑的仿真结果控制逻辑的仿真结果本科生毕业论文2153多路选择器的仿真结果多路选择器的仿真结果多路选择器的仿真结果多路选择器的仿真结果54A端口输入的仿真结果端口输入的仿真结果端口输入的仿真结果端口输入的仿真结果本科生毕业论文2255A端口输出的仿真结果端口输出的仿真结果端口输出的仿真结果端口输出的仿真结果56B端口输入的仿真结果端口输入的仿真结果端口输入的仿真结果端口输入的仿真结果本科生毕业论文2357B端口输出的仿真结果端口输出的仿真结果端口输出的仿真结果端口输出的仿真结果55C端口的端口的端口的端口的仿真结果仿真结果仿真结果仿真结果本科生毕业论文246结论经过不懈的努力,此次设计终于圆满的完成了。通过这次毕业设计,使我对VHDL语言、FPGA技术以及8255芯片有了深入的了解。学会了用硬件语言开发嵌入式芯片的方法。对我以后的工作和学习有很大的帮助。特别是现在实际应用中较流行采用技术设计接口电路,可在线编成研发周期短,设计简便、成本低廉、易于修改,运用在嵌入式系统中安全可靠,保密性好。另外,此次设计中也有一个小小的遗憾,由于学校设备条件有限,没有进行硬件测试。本科生毕业论文25致谢本次设计是在王XXX老师的指导下完成的。在设计研究的过程中,王老师给予了精心的指导,并提供了很多与该研究相关的重要信息,培养了我们对科学研究的严谨态度和创新精神。这将非常有利于我们今后的学习和工作。在此表示衷心的感谢本次设计还得到了课题组的各位老师的大力协助,在此一并表示我们的感谢本科生毕业论文26参考文献1王开军姜宇柏等著面向CPLD/FPGA的VHDL设计机械工业出版社2JAYARAMBHASKER著AVHDLPRIMER(美)机械工业出版社3STEPHENBROWNZVONKOVRANESIC著数字逻辑与VHDL设计边计年薛宏熙吴强译清华大学出版社4史小波程梦璋许会芳著集成电路设计VHDL教程清华大学出版社5黄智伟主编FPGA系统设计与实践电子工业出版社6刘皖何道君谭明著FPGA设计与应用清华大学出版社7潘松王国栋著VHDL实用教程电子科技大学出版社8刘绍汉林灶生刘新民著VHDL芯片设计清华大学出版社9江思敏著VHDL数字电路及系统设计机械工业出版社10胡振华著VHDL与FPGA设计中国铁道出版社11赵世霞杨丰刘揭生著VHDL与微机接口设计清华大学出版社本科生毕业论文27附录附录附录附录控制逻辑源码控制逻辑源码控制逻辑源码控制逻辑源码LIBRARYIEEEUSEIEEESTD_LOGIC_1164ALLENTITYCNTL_LOGISPORTRESETINSTD_LOGICCLKINSTD_LOGICNCSINSTD_LOGICNRDINSTD_LOGICNWRINSTD_LOGICAINSTD_LOGIC_VECTOR1DOWNTO0DININSTD_LOGIC_VECTOR7DOWNTO0PCININSTD_LOGIC_VECTOR7DOWNTO0PAENOUTSTD_LOGICPBENOUTSTD_LOGICPCENOUTSTD_LOGIC_VECTOR7DOWNTO0DOUTSELECTOUTSTD_LOGIC_VECTOR2DOWNTO0CONTROLREGOUTSTD_LOGIC_VECTOR7DOWNTO0PORTAREADOUTSTD_LOGICPORTBREADOUTSTD_LOGICPORTAWRITEOUTSTD_LOGICPORTBWRITEOUTSTD_LOGICPORTAOUTLDOUTSTD_LOGICPORTBOUTLDOUTSTD_LOGICPORTCOVERRIDEOUTSTD_LOGICPORTCOUTLDOUTSTD_LOGIC_VECTOR7DOWNTO0ENDCNTL_LOGARCHITECTURERTLOFCNTL_LOGISSIGNALCONTROLREGDSTD_LOGIC_VECTOR6DOWNTO0SIGNALCONTROLREGQSTD_LOGIC_VECTOR6DOWNTO0SIGNALMODEASTD_LOGIC_VECTOR1DOWNTO0SIGNALMODEBSTD_LOGICSIGNALPORTA_IOSTD_LOGICSIGNALPORTB_IOSTD_LOGICSIGNALPORTCUP_IOSTD_LOGICSIGNALPORTCLOW_IOSTD_LOGICSIGNALCONTROLREGWRITESTD_LOGICBEGINCONTROLREGIFMODEA“00“THENDOUTSELECTIFMODEB0THENDOUTSE

温馨提示

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

评论

0/150

提交评论