1543.基于FPGA开发计算机接口芯片设计毕业设计.doc

上传人:文库蛋蛋多 文档编号:4146029 上传时间:2023-04-07 格式:DOC 页数:42 大小:2.26MB
返回 下载 相关 举报
1543.基于FPGA开发计算机接口芯片设计毕业设计.doc_第1页
第1页 / 共42页
1543.基于FPGA开发计算机接口芯片设计毕业设计.doc_第2页
第2页 / 共42页
1543.基于FPGA开发计算机接口芯片设计毕业设计.doc_第3页
第3页 / 共42页
1543.基于FPGA开发计算机接口芯片设计毕业设计.doc_第4页
第4页 / 共42页
1543.基于FPGA开发计算机接口芯片设计毕业设计.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《1543.基于FPGA开发计算机接口芯片设计毕业设计.doc》由会员分享,可在线阅读,更多相关《1543.基于FPGA开发计算机接口芯片设计毕业设计.doc(42页珍藏版)》请在三一办公上搜索。

1、基于FPGA开发计算机接口芯片设计1 引言1.1 电子设计自动化概述EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能

2、就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。也就是说,综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载文件,如JED文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于在综合器中已指定的目标器件系列。硬件

3、描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。1.2 可编程器件作为一种可编程逻辑器件,现场可编程门阵列(Field Programmable Gate Array, F

4、PGA)的出现是可编程逻辑器件发展变化的必然,它的出现推动着可编程逻辑器件的进一步发展。因此说,了解了可编程逻辑器件的发展历程,也就了解了FPGA的发展历程。可编程逻辑器件(Programmable Logic Device, PLD)是21世纪70年代发展起来的一种新型器件。它的应用不仅简化了电路设计,降低了成本,提高了系统的可靠性,而且给数字系统的设计方法带来了革命性的变化。可编程逻辑器件的发展是以微电子制作技术的不断进步为基础的,其结构和工艺的变化经历了一个不断发展的过程。20世纪70年代,早期的可编程逻辑器件可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)、和电可擦除

5、只读存储器(EEPROM)3种。随后,出现了一类结构稍复杂的可编程芯片,即可编程逻辑阵列(Programmable Logic Array, PLA)。PLA在结构上由一个可编程的与阵列和可编程的或阵列构成,阵列规模小,编程过程复杂繁琐。PLA既有可编程的,也有掩膜可编程的。在这之后出现了可编程阵列逻辑(Programmable Logic Array, PLA)器件,它由一个可编程的“与”平面和一个固定的“或”平面构成,是现场可编程的。它的实现工艺反熔丝技术、EPROM技术、EEPROM3种。在PLA的基础上,又发展了一种通用阵列逻辑(Generic Array Logic, GAL),如G

6、AL16V8、GAL22V10等。它采用了输出逻辑宏单元结构和EEPROM工艺,实现了电可擦除、店可改写,由于其输出结构是可编程的逻辑宏单元,因而其设计具有很灵活性,至今仍有许多应用。这些早期的PLA器件的一个共同特点是可以实现速度特性较好的逻辑功能,但是由于其结构过于简单,因此,只能用于实现小规模电路设计。为了弥补这一缺陷,20世纪80年代中期,著名的可编程逻辑器件厂商 Altera 和 Xilinx 分别推出了扩展行的复杂可编程逻辑器件(CPLD)和类似与标准门阵列的现场可编程门阵列(FPGA)。CPLD和FPGA的功能基本相同,至是芯片得到内部原理和结构有一些差别。这两种器件兼容了PLA

7、和GAL器件的优点,具有体系结构灵活、逻辑资源丰富、集成度高以及适应范围广等特点,可用于实现较大规模的电路设计,编程也很灵活,所以,被广泛应用于产品的原型设计和小批量生产之中。几乎所有使用PLA、GAL和中小规模通用数字集成电路的场合均可应用CPLD和FPGA器件。如今,FPGA器件已经成为当前主流的可编程逻辑器件之一。经过20年的发展,可编程逻辑器件已经取得了长足的进步,资源更加丰富,使用越来越方便。将来的可编程逻辑器件,密度会更高、速度会更快、功耗会更低,同时还会增加更多新的功能,向着集成了可编程逻辑、CPU、存储器等组件的可编程单片系统(System On Programmable Ch

8、ip, SOPC)方向发展。1.3 开发环境软件:QuartusII 6.0。硬件:FPGA (Field Programmable Gate Array),即现场可编程门阵列。FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列组成,并由可编程互联资源连接这些逻辑功能块来实现不同的设计。2 并行8255电路结构分析2.1 8255的基本特性(1) 8255芯片具有两个8位(A口和B口)和两个4位(C口高低四位)并行输入输出端口,而且C口还具有按位置位/复位功能。(2) 8255能适应CPU与I/O接口之间的多种数据传送方式的要求。它设置了0方式、1方式以及2方式(双向传送)三种工作

9、方式。(3) 8255的可执行能力很强,内容丰富的两条命令(方式字和控制字)为用户如何根据外界条件(I/O设备需要那些信号线以及它能提供那些状态线)来使用8255构成多种接口电路,组建微机应用系统提供了灵活方便的编程环境。(4) 8255的C口比较特殊,除做数据口外,当工作在1方式和2方式时,它的大部分引脚被分配作专用联络信号;C口还可以进行按位控制;在CPU读取8255状态时,C口又做1,2方式的状态口用。(5) 8255芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成。2.2 8255A的外部引线与内部结构2.2.1 外部引线 8255A是一个单5V电源供电,40个引脚的双列直插式组件

10、,其外部引线如图1所示。 图1 8255的引脚图作为接口电路的8255A具有面向主机系统总线和面向外设两个方向的连接能力。 (1) 面向系统总线的信号线有:D7D0:双向数据线。CPU通过它向8255A发送命令、数据;8255A通过它向CPU回送状态、数据。CS:选片信号线,该信号低电平有效,由系统地址总线经IO地址译码器产生。CPU通过发高位地址信号使它变成低电平时,才能对8255A进行读写操作。当CS为高电平时,切断CPU与芯片的联系。A1,A0:芯片内部端口地址信号线,与系统地址总线低位相连。该信号用来寻址8255A内部寄存器。两位地址,可形成片内4个端口地址。RD:读信号线,该信号低电

11、平有效。CPU通过执行IN指令,发读信号将数据或状态信号从8255A读至CPU。WR:写信号线,该信号低电平有效。CPU通过执行OUT指令,发写信号,将命令代码或数据写入8255A。RESET:复位信号线,该信号高电平有效。它清除控制寄存器并将8255A的A、B、C3个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种状态一直维持,直到用方式命令才能改变,使其进入用户所需的工作方式。(2) 面制IO设备的信号线有:PA0PA7:端口A的输入输出线PB0PB7:端口B的输入输出线PC0PC7:端口C的输入输出线。这24根信号线均可用来

12、连接IO设备,通过它们可以传送数字量信息或开关量信息。2.2.2 8255的内部结构 8255的内部结构如图2所示。它由以下4个部分组成:(1) 数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与CPU系统数据总线的接口。所有数据的发送与接收,以及CPU发出的控制字和8255A来的状态信息都是通过该缓冲器传送的。(2) 读写控制逻辑读写控制逻辑由读信号nRD,写领带nWR,选片信号nCS以及端口选择信号A1A0等组成。读写控制逻辑控制了总线的开放与关闭和信息传送的方向,以便把CPU的控制命令或输出数据送到相应的端口;或把外设的信息或输入数据从相应的端口送到CPU。(3) 数据端口A、B

13、、C8255包括3个8位输入输出端口(POPT)。每个端口都有一个数据输入寄存器和一个数据输出寄存器,输入时端口有三态缓冲器的功能,输出时端口有数据锁存器功能。在实际应用中,PC口的8位可以分为两个4位端口(方式0下),也可以分成一个5位端口和一个3位端口(方式1下)来使用。(4) A组和B组控制电路控制A、B和C3个端口的工作方式,A组控制A口和C口的上半部(PC7PC4),B组控制B口和C口的下半部(PC3PC0)的工作方式和输入输出。A组、B组的控制寄存器还接收按位控制命令,以实现对PC口的按位置位复位操作。图 2 8255的内部结构3 8255总体设计3.1 设计方法本次设计采用的是自

14、顶向下的设计方法,首先做整体设计然后在详细的划分每一个模块,然后再对各个模块进行设计。主要设计过程如图3所示:对8255芯片的功能进行分析,主要参考intel的8255A芯片。做系统的整体设计对系统做进一步细化,主要分为七个模块。对每个模块进行设计,编程对各个模块进行软件测试,确保设计的正确性。对各个模块进行整合,组成8255芯片。对芯片进行软件测试。 图3 设计流程3.2 8255的编程命令 8255A的编程命令包括工作方式控制字和对PC口的按位操作控制字两个命令,它们是用户使用8255A来组建各种接口电路的重要工具。由于这两个命令都是送到8255A的同一个控制端口,为了让8255A能识别是

15、哪个命令,故采用特征位的方法。若写入的控制字的最高位D71,则是工作方式控制字;若写入的控制字D0,则是PC口的宾位置位复位控制字。3.2.1 工作方式控制字作用:指定3个并行端口(PA、PB、PC)是作输入还是作输出端口以及选择8255的工作方式。格式及每位的定义如表1所示:表1 方式命令字特征位D6 | D5D4D3 D2 D1 D0 1A组方式PAPC47B组方式 PB PC3000=0方式0=输出0=输出0=0方式0=输出 0=输出01=1方式1=输入1=输入1=1方式1=输入1=输入10=2方式 3.2.2 PC口按位置复位控制字作用:指定PC口的某一位输出高电平还是低电平。格式及每

16、位的定义如表2所示:表2 置位/复位命令字0 D6 D5 D4 D3 D2 D1 D0特征位不用(写0) 位 选 择1=置位 000=C口0位(高电平) 001=C口1位0=复位 (低电平) 111=C口7位 利用按位置位复位控制字可以使PC口的8根线中的任意一根置成高电平输出或低电平输出。命令产生的输出信号,可作为控制开关的通断、继电路的吸合释放、马达的启停等操作的选通信号。另外, 8255A的状态字中的中断允许位INTE的置位和复位,即允许8255A提出中断与禁止8255A提出中断,也是采用这个按位控制的命令字来实现的。3.3 8255的三种工作方式3.3.1 8255A的方式0方式0的特

17、点:(1) 方式0是一种基本输入输出工作方式。方式0下8255A的24条IO线全部由用户分配功能,不设置专用联络信号。这种方式不能采用中断与CPU将近数据,只能用于简单(无条件)传送。输出锁存,输入只有缓冲能力而无锁存功能。(2) 方式0下,8255A分成彼此独立的两个8位和两个4位并行口,这4个并行口都能被指定作为输入或者作为输出用,共有16种不同的使用组态。要特别强调的是,在方式0下,只能把C口的高4位为一组或低4位为一组同时输入或输出,不能再把4位中一部分作输入、而另一部分作输出。(3) 端口信号线之间无固定的时序关系,由用户根据数据传送的要求决定输入输出的操作过程。方式0没有设置固定的

18、状态字。(4) 是单向IO,一次初始化只能指定某一端口作输入或作输出,不能使该端口同时既作输入又作输出。3.3.2 8255A的方式1(1) 方式1的特点方式1是一种选通输入输出方式,在面向IO设备的24根线中,设置专用的中断请求和联络信号线。因此,这种方式通常用于查询条件(条件)传送或中断传送,数据的输入输出都有锁存能力。PA和PB为数据口,而PC口的大部分引脚分配作联络信号用,用户对这些引脚不能再指定作其他用途。各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。输入输出操作产生确定的状态字,这些状态信息可作为查询或中断请求之用。(2) 方式1下输入输出信号线的分配及其时序关

19、系。方式1下8255A引脚的功能分配和方式0的不同在于:方式1分配了专用联络线和中断线,并且,这些专用线在输入和输出时各不相同,PA口和PB口也不相同。 方式1下输入时的引脚及时序 联络信号的定义当A口和B口为输入时,各指定了C口的3根线作为8255A与外设及CPU之间的应答信号。STB:外设送到8255A的“输入选通”信号,低电平有效。当它变为低电平时,将数据锁存到8255A端口的输入数据寄存器。IBF:8255A送到外设的“输入缓冲器满”信号,高电平有效。当它为高电平时,说明外部数据已送到8255A的输入缓冲器,但尚未被CPU取走,通知外设不能送新数据;只有当它为低电平,即CPU已读取数据

20、,输入缓冲器变空时,才允许外设送新数据。INTR:8255A送到CPU的“中断请求”信号,高电平有效。当它为高电平时,请求CPU从8255A读数。使INTR变为高电平的条件是:当“输入选通信号”无效(STB1),即数据已输入8255A时,“输入缓冲器满”信号有效(IBF1),并且,中断请求被允许(INTE=1),3个条件都具备时,才使INTR变高,向CPU发出中断请求。“中断允许”信号INTE是8255A为控制中断而设置的内部控制信号。当INTE1时,允许中断;当INTE0时,禁止中断。这要通过向C口写入按位置位复位命令业设置,内部不能自动产生这个控制信号。方式1输入的工作时序其信号交接的过程

21、如下:数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上时,首先发STB信号,由它把数据输入到8255A。在STB的下降沿约300ns,数据已锁存到8255A的锁存器后,引起IBF变成高电平,表示“输入缓冲器满”,禁止输入新数据。在STB的上升沿约300ns,在中民允许(INTE1)的情况下,IBF的高电平产生中断请求,便INTR上升变成高电平,通知CPU现接口中已有数据,请求CPU读取。CPU接受中断请求后,转到相应的中断子程序。在子程序中执行IN指令,将锁存器中的数据取走。若CPU采用查询方式,则通过查询状态字中的INTR位或IBF位是否置位业判断有无数据可读。CPU执行读操作时

22、,RD的下降沿使INTR复位,撤销中断请求,为下一次中断请求做好准备,RD信号的上升沿延时一段时间后清除IBF使其变低,表示接口的输入缓冲器变空,允许外设输入新数据。如此反复,直至完成全部数据的输入。 方式1下输出时的引脚及时序联络信号的定义A口和B口输出时的PC引脚定义OBF:8255A送到外设的“输出缓冲器满”信号,低电平有效。当它为低电平时,表示CPU已将数据写到8255A输出端口,通知外设来取数。ACK:外设送到8255A的“回答”信号,低电平有效。当它为低电平时,表示外设已经从8255A的端口接收到了数据,它是以OBF的一种回答。ACK信号的下降沿延时一段时间后,清除OBF,使其变成

23、高电平,为下一次输出做好准备。INTR:8255A送到CPU的“中断请求”信号,高电平有效。当它为高电平时,请求CPU向8255A写数。ITNR变成高电平的条件是OBF、ACK和INTE都为高电平,表示输出缓冲器已变空(OBF1),回答信号已结束(ACK1),外设已收到数据,并且允许中断(INTE1),它们同时确定才能产生中断请求。方式1输出的工作时序方式1输出的工作时序信号交接的过程如下:数据输出时,CPU处于主动地位,当CPU向8255A写一个数据时,WR的上升沿使OBF有效,表示输出缓冲器已满,通知外设读取数据。WR并且使中断请求INTR变低,封锁中断请求。外设读取数据后,用ACK回答8

24、255A,表示数据已收到。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

25、位。要指出的是,从C口读出的状态字与C口的外部引脚无关,如在输入时,状态位PC4和PC2表示的是INTEA和INTEB的状态,而不是外部引脚PC4和PC2的联络信号STB的状态;在输出时,PC6和PC2表示的也是INTEA和INTEB,而不是外部引脚PC6和PC2的联络信号ACK的状态。从状态字的含义可见:输入和输出操作的状态字是不同的,使用时应“对号入座”,查相应的状态位。若采用查询方式,则一般是查INTR是否置位,当然亦或查IBF或OBF位。状态字中设置了INTR位,说明8255A只能提供查询中断,而不能提供矢量中断。若要采用矢量中断,则需借助于中断控制器来提供中断矢量。状态字中的INTE

26、位是控制标志位,控制8255A能否提出中断请求,因此,它不是IO操作过程中自动产生的状态,而是由程序通过按位置位复位命令来设置或清除的。(4) 方式1的接口方法在方式1下,首先根据实际应用的要求确定A口和B口是作输入还是输出,然后把C口中分配作联络的专用应答线与外设相应的控制或状态线相连。如果是采用中断方式,则还要把中断请求线接到微处理器或中断控制器;若采用查询方式,则中断请求线可以空着不接。方式1的中断处理,由于8255A不能直接提供中断矢量,所以一般都通过系统中的中断控制器来提供寻找中断服务程序入口地址的中断类型号。当然,对于不采用矢量中断的微处理器,可以将INTR线直接连到CPU的中断线

27、(例如在单片机系统中)。方式1下CPU采用查询方式时,对输入,通过C口查IBF位的状态;对输出,查OBF位的状态或者查INTR位的状态。3.3.3 8255A的方式2(1) 方式2的特点 联络信号的定义方式2是一种双向选通输入输出方式,它把A口作为双向输入输出口,把C口的5根线(PC3PC7)作为专用应答线,所以,8255A只有A口才有2方式。方式2下为双向传送所设置的联络线,实质上就是A口在方式1下输入和输出时两组联络信号线的组合。故各个引脚的定义也与方式1相同,只有中断请求信号INTR既可以作为输入的请求中断,也可以作为输出的请求中断。其引脚定义如图79所示。 工作时序方式2的时序基本上也

28、是方式1下输入时序与输出时序的组合。输入输出的先后顺序是任意的,根据实际传送数据的需要选定。输出过程是由CPU执行输出指令向8255A写数据(WR)开始的,而输入过程则是从外设向8255A发选通信号STB开始的,因此,只要求CPU的WR在ACK以前发生、RD在STB以后发生就行。 方式2的状态字方式2的状态字的含义是方式1下输入和输出状态位的组合。状态字中有两位中断允许位,ITNE1是输出中断允许,INTE2是输入中断允许。4 接口电路8255 VNDL设计与编程4.1 8255的主模块设计这部分是芯片的主模块设计,通过对8255芯片的深入分析设计出整体模型。主模型分为控制逻辑模块、多路选择器

29、模块、A端口输入模块、A端口输出模块、B端口输入模块、B端口输出模块、C端口模块等七个模块。其中控制逻辑模块比较复杂是整个主模块的核心部分。另外,8255的1方式和2方式都要用到C端口的引脚做控制字或联络信号,所以C端口也是重点。A端口与B端口功能相似,在设计时为了方便使设计简单,把一个端口分为了输入与输出两个部分。主模块的主要的功能就是通过各种联络信号把各个模块串联起来从而实现8255的功能。8255的逻辑图如图4所示: 图4 8255的逻辑图其VHDL语言的行为描述如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY 8255 IS PORT

30、( RESET : IN std_logic; CLK : IN std_logic; nCS : IN std_logic; nRD : IN std_logic; nWR : IN std_logic; A : IN std_logic_vector (1 DOWNTO 0); DIN : IN std_logic_vector (7 DOWNTO 0); PAIN : IN std_logic_vector (7 DOWNTO 0); PBIN : IN std_logic_vector (7 DOWNTO 0); PCIN : IN std_logic_vector (7 DOWNTO

31、 0); DOUT : OUT std_logic_vector (7 DOWNTO 0); PAOUT : OUT std_logic_vector (7 DOWNTO 0); PAEN : OUT std_logic; PBOUT : OUT std_logic_vector (7 DOWNTO 0); PBEN : OUT std_logic; PCOUT : OUT std_logic_vector (7 DOWNTO 0); PCEN : OUT std_logic_vector (7 DOWNTO 0) );END 8255;ARCHITECTURE structure OF 82

32、55 IS SIGNAL DOUTSelect : std_logic_vector(2 DOWNTO 0); SIGNAL ControlReg : std_logic_vector(7 DOWNTO 0); SIGNAL PortAOutLd : std_logic; SIGNAL PortBOutLd : std_logic; SIGNAL PortCOverride : std_logic; SIGNAL PortCOutLd : std_logic_vector (7 DOWNTO 0); SIGNAL PortAInReg : std_logic_vector (7 DOWNTO

33、0); SIGNAL PortBInReg : std_logic_vector (7 DOWNTO 0); SIGNAL PortARead : std_logic; SIGNAL PortBRead : std_logic; SIGNAL PortAWrite : std_logic; SIGNAL PortBWrite : std_logic; SIGNAL PortCStatus : std_logic_vector (7 DOWNTO 0); SIGNAL CompositePortCStatus : std_logic_vector (7 DOWNTO 0); COMPONENT

34、dout_mux PORT( DOUTSelect : IN std_logic_vector (2 DOWNTO 0); ControlReg : IN std_logic_vector (7 DOWNTO 0); PortAInReg : IN std_logic_vector (7 DOWNTO 0); PAIN : IN std_logic_vector (7 DOWNTO 0); PortBInReg : IN std_logic_vector (7 DOWNTO 0); PBIN : IN std_logic_vector (7 DOWNTO 0); PortCStatus : I

35、N std_logic_vector (7 DOWNTO 0); DOUT : OUT std_logic_vector(7 DOWNTO 0) ); END COMPONENT;COMPONENT cntl_logPORT( RESET : IN std_logic; CLK : IN std_logic; nCS : IN std_logic; nRD : IN std_logic; nWR : IN std_logic; A : IN std_logic_vector (1 DOWNTO 0); DIN : IN std_logic_vector(7 DOWNTO 0); PCIN :

36、IN std_logic_vector(7 DOWNTO 0); PAEN : OUT std_logic; PBEN : OUT std_logic; PCEN : OUT std_logic_vector (7 DOWNTO 0);DOUTSelect : OUT std_logic_vector (2 DOWNTO 0);ControlReg : OUT std_logic_vector (7 DOWNTO 0); PortARead : OUT std_logic; PortBRead : OUT std_logic; PortAWrite : OUT std_logic; PortB

37、Write : OUT std_logic;PortAOutLd : OUT std_logic;PortBOutLd : OUT std_logic;PortCOverride : OUT std_logic;PortCOutLd : OUT std_logic_vector (7 DOWNTO 0) ); END COMPONENT; COMPONENT portaout PORT( DIN : IN std_logic_vector (7 DOWNTO 0); RESET : IN std_logic; CLK : IN std_logic; PortAOutLd : IN std_lo

38、gic; PAOUT : OUT std_logic_vector (7 DOWNTO 0) ); END COMPONENT; COMPONENT portain PORT( PAIN : IN std_logic_vector (7 DOWNTO 0); RESET : IN std_logic; CLK : IN std_logic; PortAInLd : IN std_logic; PortAInReg : OUT std_logic_vector (7 DOWNTO 0) ); END COMPONENT; COMPONENT portbout PORT( DIN : IN std

39、_logic_vector (7 DOWNTO 0); RESET : IN std_logic; CLK : IN std_logic; PortBOutLd : IN std_logic; PBOUT : OUT std_logic_vector (7 DOWNTO 0) ); END COMPONENT; COMPONENT portbin PORT( PBIN : IN std_logic_vector (7 DOWNTO 0); RESET : IN std_logic; CLK : IN std_logic; PortBInLd : IN std_logic; PortBInReg

40、 : OUT std_logic_vector (7 DOWNTO 0) ); END COMPONENT; COMPONENT portcout PORT( RESET : IN std_logic; CLK : IN std_logic; DIN : IN std_logic_vector (7 DOWNTO 0); PCIN : IN std_logic_vector (7 DOWNTO 0); ControlReg : IN std_logic_vector (7 DOWNTO 0); PortARead : IN std_logic; PortBRead : IN std_logic

41、; PortAWrite : IN std_logic; PortBWrite : IN std_logic; PortCOverride : IN std_logic; PortCOutLd : IN std_logic_vector (7 DOWNTO 0); PortCStatus : OUT std_logic_vector (7 DOWNTO 0); PCOUT : OUT std_logic_vector (7 DOWNTO 0) ); END COMPONENT; BEGIN -并行信号 CompositePortCStatus = PCIN(7) & PortCStatus(6) & PCIN(5) & PortCStatus(4) & PCIN(3) & PortCStatus(2) &

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号