[硕士论文精品]基于fpga的计算机可编程外围接口芯片的设计与实现_第1页
[硕士论文精品]基于fpga的计算机可编程外围接口芯片的设计与实现_第2页
[硕士论文精品]基于fpga的计算机可编程外围接口芯片的设计与实现_第3页
[硕士论文精品]基于fpga的计算机可编程外围接口芯片的设计与实现_第4页
[硕士论文精品]基于fpga的计算机可编程外围接口芯片的设计与实现_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

当兰塾查兰堡兰竺丝兰塑兰摘要随着电子技术和EDA技术的发展,大规模可编程逻辑器件PLDPR02RAMMABLELOGICDEVICE、现场可编程门阵列FPGAFIELDPMGRAMMABLEGATESARRAY完全可以取代大规模集成电路芯片,实现计算机可编程接口芯片的功能,并可将若干接口电路的功能集成到一片PLD或FPGA中。基于大规模PLD或FPGA的计算机接口电路不仅具有集成度高、体积小和功耗低等优点,而且还具有独特的用户可编程能力,从而实现计算机系统的功能重构。本课题以ALTERA公司FPGAFLEXLOK系列产品为载体,在MAXPLUSII开发环境下采用VHDL语占,设计并实现了计算机可编程并行接芯片8255的功能。设计采用VHDL的结构描述风格,依据芯片功能将系统划分为内核和外围逻辑两大模块,其中内核模块又分为PORTA、PORTB、PORTC和CONTROL模块,每个底层模块采用RTLREGISTERSTRANSFERLANGUAGE级描述,整体生成采用MAXPLUSLI的图形输入法。通过波形仿真、下载芯片的测试,完成了计算机可编程并行接芯片8255的功能。关键词数字系统设计、VHDL、FPGA、MAXPLUSII、计算机可编程接口芯片、模块、进程。ABSTRACTWITHTHEDEVELOPMENTOFE1ECTRONICANDEDAELECTMNICDESIGNAUTOMATICTECHNOLOGYLA唱ESCALEINTEGRATIONCANBEREPLACEDBYPLDPROGRAMMALBLELOGICDEVICEANDFPGAFIELDPMGRAMMABLEGATESARRAY,WHICHCANREALIZETHE缸1CTIONOFTHEPR0蓼AMMABLEINTERFACECHIPANDMANYDJFFERENTPROGRAMMABLEINTER。FACECHIPSTBECOMPUFERINTERFHCECIRCUITBASEDONTHETECHN0109YOFPLDANDFPGANOTONLYHASTHEVIRTUEOFLOWVOLUMEA11DLOWPOWERLOSS,BUTALSOHASTHEUNIQUEPROGRAMMABLEFUNCTION,WHICHCANREALIZERECONSTMCTIONOFMEFUNCTIONOFCOMPUTERSYSTEMB弱EDONTHESERIESPMDUCTSOFFPGAFLEXL0DEVELOPEDBYALTERACOMPANYTHEPD。JECTDESIGNANDCOMPLETEALLTHEFUNCTIONSOFPPIPRO乒ANLMABLEPAMLLELINTERFACECHIP8255WITHVHDL1ANGUAGEUNDERTHEMAXPLUSIITHESTYLEOFCONSTICTIONDESCPTIONOFVHDLLANGUAGEISADOPTEDINTHEDESIGNACCORDINGTOTHEMNCTIONOFTHECHIPIHESYSTEMISS印AMTEDINTOTWOMODULES,THECOREANDTHEPERIPHERYLOGICTHEREINTO,THECOREMODULEISDIVIDEDINTOPORTAMODULE,PORTBMODULE,PORTCMODULEANDCONTR01MODULE,EACHBOTTOMMODULEISDESCRIBEDBY山末科技人学颇I学位论文摘要RTLREGISTERSTRANSFERLANGUAGEANDWHOLEMODULEISCOMPLETEDBYTHEGRAPHICSINPLITMETHODOFMAXPLUSIITHEFUNCTIONOFPPIPMGRAMMABLEPARALLELINTERFACECHIP8255ISREALIZEDTHROUGHEMULATINGTHEKEYWAVESANDTESTINGACHIPKEYWORDSDESIGNOFDIGITALSYSTEM、VHDL、FPGA、MAXPLUSII、COMPUTERPROGRAMMABLEINTERFHCECHIP、MODULES、PROCESS,声明本文呈交给山东科技大学的这篇硕士学位论文,除了所列参考文献和世所公认的文献外,全部是本人在导师的指导下的研究成果,论文尚没有交于其它任何学术机构做鉴定。AFFIRMATION研究生签名微日期加;,OIDECLAREMATDISSERTATION,SUBMITTEDIN凡1FILLMENTOFMEREQUIREMENTF曲THEAWARDOFCOMPUTER印PLICATIONTECLLLL0109Y,INSHANDONGUNIVERSI够OFSCIENCEANDTECHN0109Y,ISWH011YLYOWNWORKUNLESSREFERENCEDOFACLDLOWLEDGETHEDISSEN鲥ONHASNOTBEENSUBMITTEDFORQUALIFLCATIONATANYOTHERACADEMICINSTIMTESIGNATUREDATE,2F,O77,山东科技犬学硕F学位论文第一章绪论第一章绪论当今是数字化的时代,数字技术的应用已渗透当人类生活的方方面面,信息高速公路、多媒体电脑、移动电话、数字电视,各种自动化设备以及家用电器无不尽可能地采用了数字技术。凡是利用数字技术对信息进行存储、传输、处理的电子系统皆可称为数字系统。和模拟系统相比数字系统具有以下特点稳定性、精确性、可靠性和模块化。在数字化的道路上,电子设计技术的发展经历了,并将继续经历许多重大的变革飞跃。从应用SSI通用数字集成芯片构成的数字系统,到广泛应用MCU微控制器或单片机,使数字系统的设计方法发生了具有里程碑意义的飞跃,这一飞跃不但克服了纯SSI数字系统许多不可逾跃的困难,同时也为数字电子设计技术的应用开拓了更广阔的前景,它使得数字电子系统的智能化水平在广度和深度上发生了质的飞跃。数字系统设计技术的发展在很大程度上得益于器件和集成技术的发展,大规模可编程逻辑器件PLDPROGRAMMABLELOGICDEVICE、现场可编程门阵列FPGAFIELDPROGRAMMABLEGATESARRAY的出现、集成工艺和计算机技术的发展使得数字系统的设计理念、设计方法发生了深刻的变化。数字系统的设计历来存在两个分支,既系统硬件设计和系统软件设计。但是,以大规模集成电路为物质基础的EDAELECTRONICDESIGLLAUTOMALIONL技术终打破了软硬件之间的最后屏障,为数字系统的硬件和软件的协同设计打下了良好的基础,既数字系统的硬件、软件设计可以在开始就进行通盘考虑,进行早期仿真,大大提高了系统设计的效率。11传统的系统硬件设计方法在EDAELECTRONICDESIGNAUTOMATION出现以前,人们一直采用传统的硬件电路设计方法,这种设计的特点是L、自下而上BOTTOMUP的设计方法自下而上的设计流程图如图11所示从流程图可知,传统的硬件设计方法是从选择具体器件开始的,并用这些用这些器件进行逻辑设计,完成系统各个独立功能块的设计,再将各功能模块连接起来,完成整个系统的设计。上述过程从最底层开始设计,直到最高层的设计,所以这种设计方法称为自下而上的设计。2、采用通用的逻辑器件在传统的设计中,设计者根据系统的要求,选择市场上能买到的标准芯片,如7454系列TTL、40004500系列CMOS芯片等,采用“搭积木”式的方式进行山东科技凡学坝J学位论立第章绪论设计,而这些芯片的功能是固定的,没计时几乎没有灵活性可言,设计一个系统所需标准器件种类多,且数目大。3、系统设计的后期进行仿真、调试在传统的设计方中,仿真和调试通常只能在后期进行,因为仿真和调试的仪器一一般为系统仿真器、示波器等,因此只有系统设计完成后J能仿真和调试。这样,在系统设计时存在的问题只有在后期才能发现。一旦考虑不周,修改很麻烦,甚至会翦功尽弃,不得不重新设计系统,使设计的周期和成本都大大增加。4、主要设计文件是电路图在用传统的设计方法对系统设计调试完后,所形成的硬件设计文件主要是由若干张电路图组成的文件。对于系统比较大的系统,这种电路图可能会有几千张、几万张,甚至几十万张,如此多的电路图的归档、阅读、修改和使用都会带来许多麻烦。系统划分、分解上设计单元上功能块设计1LL子系统设计L,I系统总成图11自下而上的设计流程图12基于硬件描述言HDL的硬件设计方法随着大规模可编程逻辑器件PLD、现场可编程门阵列FPGA的出现和EDA技术的发展,基于FPGACPLD目器件、利用VHDLERYHI曲SPEEDINIEGRATEDHARDWAREDESCRIPTIONLANGUAGE硬件描述语言的系统设计称为设计的主流方向。利用VHDL进行系统设计的特点是L、自上而下TOPDOWN的设计方法基于EDA技术的自上而下的设计方法,与传统的自F而上的设计方法正好相反,山东科技人学硕卜学位论文筇一帝绪论其步骤就是采用可完全独立于目标器件芯片物理结构的硬件描述语言,如VHDL,在系统的基本功能或行为级上对设计的产品进行描述和定义,结合多层次的仿真技术,在确保设计的可行性与正确的前提下,完成功能设计。然后利用EDA工具如MAXPLUSII的逻辑综合功能,把功能描述转换成某一具体目标器件芯片的网表文件,输出给该器件厂商的布局布线适配器,进行逻辑映射及布局布线,再利用产生的仿真文件进行包括功能和时序的验证,以确保系统的功能。自上而下的设计流程图如图12所示L文本编辑器图形编辑器L生成。L源程序DL综合器叫兰兰一L逻辑综合、优化LVHDL行为仿真I仿真器功能仿真1I时序仿真氐廿心FPGACPLD布线适配器L一熔丝图、SRAM文件、自动优化、布局、布线适配广1VHDLERILOG网表NL一一L,测试电路L一编程器下载电缆制嗽硬件测试R一编程、下载图12自上而下的设计流程图从流程图可知,从总体设计到最终进行逻辑综合、形成网表为止,每一步都进行仿真,这样有利于尽早发现问题,从而使设计的成本和周期大大降低。这是用HDL语言设计硬件系统的最突出的优点之一。2、IPINTELLECTILALPMPERTY的使用和嵌入式模块的应用随着芯片规模的日益扩大、系统功能的日益复杂,特别是片上系统的出现,如果仍延续传统的设计方法,开发周期将会很长,设计的质量也会受到影,在此情况下,IP应运而生,人们可以将合适的IP软核CORE或其它形式的核,作为嵌入式模块装在自己的设计中,方便而快捷地完成一个系统设计。1山东科技人学坝卜学位论文第一章纬论3、降低了设计难度用传统的设计方法,要求设计者在设计电路前要写出逻辑表达式或真值表或时序电路的状态表,这个过程相当繁杂,而采用HDL语言就可以使设计者免除编写逻辑表达式、真值表和状态表之苦。4、主要设计文件是用HDL语言编写的源程序用HDL语言编写的源程序资料量小,易于归档。可继承性好,当设计其它电路时可以调用己设计好的程序,阅读性好。13课题的选择微机系统的接口电路包括定时器计数器、中断控制器、电源管理和I0接口等,目前,其接口电路大都由大规模集成电路芯片实现,如8253定时器、8255并行接口等。随着电子技术和EDA技术的发展,大规模可编程逻辑器件PLD、现场可编程门阵列FPGA完全可以取代大规模集成电路芯片,实现计算机可编程接口芯片的功能,并可将若干接口电路的功能集成到一片PLD或FPGA中。基于大规模PLD或FPGA的计算机接口电路不仅具有集成度高、体积小和功耗低等优点,而且还具有独特的用户可编程能力,从而实现计算机系统的功能重构。本课题提出的“基于FPGA的计算机可编程接口芯片的设计与实现”技术将是计算机硬件技术的发展趋势。本课题在ALTERA公司的MAXPLUSII开发环境下采用VHDL语言进行设计、编译综合、仿真,采用A1TEM公司的FPGAFLEXL0K系列产品实现。山东科技人学砸J学位论义第二章VHDL、FPGA搜开发系统概述第二章VHDL、FPGA及开发系统概述21VHDL概述211VHDL的由来VHDL是VERYHI曲SPEEDINTEGRATEDCIRCUITHARDWAREDESCRIPTIONLANGUAGE的缩写,意思是非常高速集成电路的硬件描述语言,是HDL的一种。这是一项诞生与由美国国防部所支持的研究计划,目的是为了把电子电路的设计意义以文字或文件的方式保存下来,以便他人能轻易地了解电路的设计意义。由于VHDL电路描述语言所能涵盖的范围很广,从ASIC的设计到PCB系统的设计,VHDL电路描述语言都能派上用场,所以VHDL语言毫无疑问地成为硬件设计工程师的必备工具。212VHDL的特点VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多方面具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似与一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计或称设计实体可以是一个元件、一个电路模块或一个系统分成外部即端口和内部即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。具体特点如下L、与其它的硬件描述语言相比,DL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模集成电路的重要保证。2、VHDL丰富的仿真语言和库函数,使得在大规模集成电路设计的早期就能查验出设计系统的功能可行性,可随时对设计进行功能仿真、时序仿真,使设计者在设计初期就可以对整个工程设计的可行性作出决策,从而缩短了设计周期,减少了研发成本。3、VHDL语句的行为描述能力和程序结构决定了它具有支持大规模集成电路设计的分解和对已有设计的再利用功能。重复利用他人的IPINTELLIGENCEPROPERTYCORE模块和软核SOFTCORE是VHDL的特色设计不必各个都从头再来,只要在更高的层次上把IP模块利用起来,能达到事半功倍的效果。4、对于VHDL完成的一个确定的设计,可以利用EDA工具如MAXPLUS11进行逻辑综合和优化,并自动把VHDL描述设计转换成门级网表。这种设计方式突山东科挫大学硕,L学位论文筇带VHDL、FPGA及开发系统概述破了传统门级设计中的瓶颈,极大地减少了电路设计的时间和错误发生率,降低了丌发成本,缩短了设计周期。5、VHDL对设计的描述具有相对的独立性设计者可以不懂硬件的结构,也不必关心最终设计的目标器件是什么而进行独立的设计。F因为VHDL的硬件描述与具体的工艺和硬件结构无关,VHDL设计程序的硬件实现目标器件有广阔的选择范围。6、由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的前提下,只需改变类属参数或函数,就能改变设计的规模和结构。213VHDL的描述风格在VHDL结构体中,可以用不同的描述方式或说是建模方法来表达,通常可归纳为行为描述、寄存器传输RTLREGISTERSTRANSFERLAILGUAGE描述和结构描述。行为描述行为描述只表示输入与输出闯转换的行为,不包含任何结构信息。行为描述主要指顺序语句描述,既通常是指古有进程的非结构化的逻辑描述。RTL描述也称为数据流描述,是以规定设计中的各种寄存器形式为特征,然后在寄存器之间插入组合逻辑。RTL描述是建立在用并行信号赋值语句进程基础上的,RTL描述能比较直观地表达底层逻辑行为。它既含有逻辑单元的结构信息,又隐含表示某种行为,RTL描述主要是指非结构化的并行语句描述。结构描述结构描述是基于元件例化或生成语句的应用,表示元件问的互连,其风格最接近实际的硬件结构。214VHDL基本程序结构一个相对完整的VHDL设计由以下几个部分组成库、程序包;实体结构体;配置;其各自作用如图21所示山东科技人学顾L学位论文第二章VHDL、FPGA及开发系统概述图21V闭L基本程序结构以上四个部分并不是每一个VHDL程序都必须具备的,其中只有一个实体和一个与之对应的结构体是必须的。实体实体ENTITY是DL设计中最基本的一个组成部分,VHDL表达的所有设计均与实体有关。实体类似与原理图中的一个部件符号,它并不描述设计的具体功能,只定义了该设计所需的全部输入输出信号。实体的语法格式如下ENTITY实体名ISGENERIC常数名数据类型设定值】;一】表示可选项;PORT列出设计的所有输入与输出;END实体名结构体所有能被仿真的实体都有结构体ARCHITECTL珏也描述即结构体描述实体的结构或行为。在结构体描述中可采用行为描述、结构描述或数据流描述三种不同的描述方式,或称为建模方法,从不同的侧面描述结构体的行为方式。在实际应用中,为了兼顾整个设计的功能、资源、性能几方面的因素,通常混合使用这三种描述方式。7山东科技大学顺学位论文第一帝VHDL、FPGA及开发系统概述结构体的语法格式如下ARCHLTECTURE结构名OF实体名IS说明语句BEGIN功能描述语句END结沟体名;22FPGA概述FPGAFIELDPROGRAMMABLEGATESARRAY是现场可编程门阵列,FPGA既具有门阵列器件的高度集成度和通用性,又有可编程器件用户可编程的灵活性。所谓现场可编程,是指用户在自己的实验室内编程。231FPGA结构FPGA门阵列中的每个节点放的不象CPLD是单独的门,而是用门、触发器等做成的逻辑单元CELI,并在各个单元之间预先制作了许多连线,所谓编程,就是安排逻辑单元与这些连线之间的关系,依靠连接点的合适配置,实现各逻辑单元之间的互连。FLEX10K系列是非常有代表性的器件,它集合了可编程器件的灵活性,器件规模从10000门到250000门,系统时钟可达204MHZ,具有独特的逻辑实现结构嵌入式阵列EABEMBEDDEDARRAYBIOCK和逻辑阵列LALOGICARRAY。其结构框图如下山东科技人学坝上学位论文笫二章VHDL,FPGA授开发系统概述23,2基于FPGACPLD的数字集成电路设计过程基于FPGCPLD的设计流程图如图22所示图22基于FPGCPLD的设计流程图1、设计输入设计输入就是设计者对逻辑器件的逻辑功能描述。设计输入通常采用图形输入和VHDL文本输入方式。在设计输入过程中,往往采用层次化设计方法,分模块、分层次地进行设计描述。描述器件总功能的模块放在最上层,称顶层设计;描述器件最基本功能的模块放在最低层,称低层设计;一般在顶层设计中采用图形输入法来描述模块连接关系;在低层设计中采用HDLVHDL、AHDL文本输入法描述模块的逻辑功能。本设计的设计输入底层采用文本输入,而顶层采用图形输入。2、项目编辑为完成对设计的处理,MAXPLUSII提供了个完全集成的编译器COMPILER,可直接完成从网表提取到最后编程文件的生成。在编译过程中生成一系列标准文件可进行时序模拟、适配等。在编译过程中,若某部个环节出错,编译器会停下来,并告9山东科技大学坝I学位论文第二章VHDL、FPGA及开发系统概述诉错误的原因及位置,直到编译通过。3、项目校验完成对设计的功能、时序仿真进行时序分析、寄存器性能分析。4、项目编程将设计的项目下载配置到所选择的器件FPGACPLD中。由FPGA的设计流程可知,采用VHDL语言进行FPGA设计或利用FPGA进行ASIC前端设计的功能验证,主要工作是系统模块的划分、对各个模块RTLREGISTERSTRANSFCRLANGUAGE级可综合VHDL语言的描述、功能及时序的仿真,至此仅完成了系统软件上的仿真。由于仿真激励文件的不完善,所以时序仿真的通过并不代表加载到FPGA片中的成功,只有真正通过了FPGA的硬件调试,才是系统设计的真正成功。23MAXPLUSII概述A1TERA公司的MAXPLUSIIMULTIPIEARRAYMA砸XAILDPROGRAMMABLELOGICUSERSYSTEM开发系统是一个完全集成化、易学易用的可编程逻辑设计环境,它可以在多种平台上运行。它所提供的灵活性和高效性是无可比拟的。它具有丰富的图形界面,辅之以完整的、即时访问的在线文档,使设计者能够轻松的使用MAXPLUSII软件包设计数字集成电路。MAXPLUSII的特点1、开放的界面MAXPLUSLI软件可以与其它工业标准的设计输入、综合与校验工具相连接。目前MAXPLUS11支持与CANDENCE、EXEMPLARLOGIC、S”OPSYS、S”PLICITVIEWLOGIC等其它公司所提供的EDA工具接口。2、与结构无关MAXPLUSII系统的核心COMPIIER支持ALTERA公司的FLEXL0K、FLEX8000、FLEX6000、MAX9000、MAX5000和CLASSIC可编程器件,提供了真正与结构无关的可编程设计环境。MAXPLUSII的COMPILER还提供了强大的逻辑综合与优化功能,使用户比较容易地将起设计集成到器件中。3、完全集成化MAXPLUSII软件的设计输入、处理与校验功能全部集成在统一的丌发环境下,这样可以加快动念调试、缩短设计周期。4、丰富的设计库0山东科技大学硕十学位论文第一二章VHDL、FPGA及开发系统概述MAXPLUSII提供了丰富的库单元,其中包括74系列的全部器件和多种特殊的逻辑宏功能MACROFUNCTION以及参数化的兆功能MAGEFUNCTION供设计者调用,大大减轻了设计者的工作量,缩短了设计周期。5、模块化工具设计者可以从各种设计输入、处理和校验选项中进行选择从而使设计环境用户化,必要时,还可以根据需要添加瓤功能。由于MAXPLUS11支持多种器件,设计者不必学习新的工具就可支持新的结构。6、支持多种硬件描述语言MAXPLUSII软件支持多种硬件描述语言设计输入选项,包括VHDL、VERILOGHDL和AHDL语言。山东科技人学顺I。学出论史第三章汁算机A,编程并行接【J芯”8255背景知识第三章计算机可编程并行接口芯片8255背景知识INTEL8255芯片是配合INTEL微处理器而设计的通用可编程并行IO接口器件,它能把外围设备连到微型计算机总线上,通用性强,使用灵活,可以用程序来设置和改变芯片的工作方式,是一种典型的可编程并行接口芯片。8255共有三种模式基本的输入输出方式O、有选通的输入输出方式1和双向总线输入输出方式2。318255芯片的特性及外部信号8255并行IO接口芯片具有如下特性与MCS一85兼容。与TTL电路完全兼容。与INTEL公司的微处理器完全兼容。改善了时序特性。直接复位胃位特性便于实现控制性接口。减少了器件数目。提高了直流驱动能力。可编程并行接口8255芯片的引脚图如图31所示爱RDL55羹|PC7110|;I猩戮;PB28255PPL4引PA439LPA5筠FPA637IEA7361WR35L尺ESET34LD03310132I231LD330旧42910528IO27JD726IVCC25I户B724IPB623LPB522IPB421IP93图318255引脚图除了电源VCC和地GND以外,其它引脚信号可分为两组L、和外设一边相连的山东科技大学硕L学位论文第二章汁算机可编程并行接U芯片8255背景知识PA7PAO端口A的数据信号,根据工作方式A口可丁作于输入、输出方式或双向方式。PB7PBO端口B的数据信号,根据工作方式B口可工作于输入或输出方式,但端口B不能工作在双向方式。PC7PCO端口C的数据信号,根据工作方式C口的数据线可作为输入输出线、控制线和状态线。2、和CPU一边相连的RESET复位信号高电平有效,复位后,A口、B口、C口均被自动设为输入方式,同时所有内部寄存器锁存器都被清零。D7DO双向数据总线,和系统数据总线相连,用来读写数据和控制字。CS片选信号低电平有效,只有当有效信号到来时,读信号尼D和写信号凇才对8255有效。RD芯片读信号低电平有效入数据和状态字。眦芯片写信号低电平有效控制字或数据。当面有效时,CPU可以从8255中读取输当面画有效时,CPU可以往8255中写入A1、A0端曰选择线。8255内部有3个数据端口A、B、C口和1个控制端口,规定当A1、舢为00时,选中A口;为OL时,选中B口;为LO时,选中C口为11时,选中控制口。概括起来,8255的几个控制信号和传输动作之间的关系如下山东科挫大学顾1学位论史第三章汁算机R编程并行接I_I芯片8255背景知识AL传输说明苫足DFPR0O00L数据从端口A送数据总线OOLOL数据从端口B送数据总线0L0OL数据从端口C送数据总线O0OLO数据从数据总线送端口AOO110数据从数据总线送端口BOL0L0数据从数据总线送端口C01LL0如D,为L。则由数据总线往控制字寄存器写入控制字;如D,为0,则由数据总线输入的数据作为对C口的置位复位命令。1D7DO进入高阻状态0LL0L非法的信号组合0LLD7DO进入高阻状态328255芯片的内部结构8255的内部结构框图如图32所示4山东科技大学硕I学位论史第三章计算机可编程并行接口芯J8255背景知识图328255的内部结构框图由图可知,8255芯片内部有3个8位的IO端口A口PORTA、B口PORTB和C口PORTC,分为A组GROUPA和B组GROUPB,A组包括A口8位和C口的高4位PORTCUPPER,B组包括B口的8位和C口的低4位PORTCLOWER。A组控制GROUPACONTROL和B组控制GROUPACONTROL用以实现方式选择等操作,读写逻辑READWIUTECONTROL用于控制对芯片内寄存器的数据和控制字经数据总线缓冲器DATABUSBUFFER送入各组接口寄存器中。338255控制字8255芯片通过软件编程往控制口控制字寄存器设置控制字,以决定各端口的工作方式。8255具有两种控制字方式控制字和C口位控制字。1、方式控制字山东科技人学硕L学位论文第二章计算机可编程并行接L_】芯”8255背景知识2、C口位控制字当D720时,控制字是对C口各位作置位复位操作。这种控制字是在C口作为控制口时使用,其格式和功能如下6山东科技人学硕L学位论空第三章计算机可编程并行接口芯片8255背景知识ID。D6DSD4D3D2D1DO千千千千千千CU位操作标识0无关C口的位选择BJB2O0O00L011OL0LL1L置复位0复位1置位348255的工作方式8255有3种工作方式方式0、方式1和方式2L、方式O方式O也叫基本的输入输出方式,在这种方式下,任何一个端口可作为输入口,也可作为输出口,各端口之间没有规定必然的关系。各个端口的输入或输出,可以有16种不同的组合,所以可使用于多种使用场合。2、方式L方式L也叫选通的输入输出方式,和方式O相比,最重要的差别是A口和B口用方式1进行输入输出传输时,要利用C口提供选通和应答信号,而这些信号与端口C中的数位之间有固定的对应关系,这种关系不是程序可以改变的,除非改变工作方式3、方式2方式2也叫双向传输方式,这种方式只适用于A口,当A口工作在方式2时,端口C的高5位PC7PC3自动配合端口A提供控制信号和状态信号。以上介绍了8255的背景知识,本设计就是据此,进行功能模块的划分与设计,下面第4章是对整体系统设计方案的概述。擀心嘛BO000生查型苎查兰堡兰些堡兰笙些望I兰生羔堡三望竺查塞一第四章VHDL设计8255总体方案本设计系统采用结构描述方式、RTL级描述方式相结合的方法。整体采用结构化、模块化设计思想,以提高设计的可重用性,将一个大的设计划分为许多小的模块,逐一设计调试,然后利用结构描述方法将它们组装起来,形成更为复杂的系统。基于这种设计思想将8255内核和外围逻辑分离设计。内核模块包括顶层摸块TOP、控制模块CONTROL、A口模块PORTA、B口模块PORTB、C口摸块PORTC五大模块,内核每个模块的描述采用RTL描述方法外围逻辑包括8255内核与外部设备的接口以及数据总线缓冲,采用RTL描述方法整体设计采用图形输入法,将内核模块与外围逻辑组装起来,形成完整的芯片功能。418255内核设计概述内核模块包括内核顶层模块TOP、控制模块CONTROL、A口模块PORTA、B口模块PORTB、C口模块PORTC五大模块。4118255内核框图内核框图如图41所示D眦NICONTROL习I习一CL图41内核框图由框图可知,A、B、C口以及数据总线都是单向的,即输入、输出是分离的山东科技大学硕上学位论文第叫章VHDL设计8255总体方案在外围逻辑设计时将其设计成双向的。4128255内核信号描述信号引脚如图42所示引脚说明8255KENEL图42信号引脚DOUT【70】PAOUT【7OPBOUT【70】PCOUT70NDEN信号类型说明DIN7一O】INPUT内部数据输入总线DOUT7O】0U印UT内部数据输出总线RLDENOUTPUT内部数据总线传输方向控制,0输出NRDINPUT读信号,低电平有效NWRIPUT写信号,低电平有效NCSINPUT片选信号,低电平有效RESETINPUT复位信号,高电平有效A0、ALIRLPUT地址线PAIN7一O】INDUTA口数据输入锁存,缓冲PAOUT70】OUTPUTA口数据输出锁存NPAENOUTPMA口方向控制,O输出MQ明州。OXWD芑I叫MM扪们一INNN二专阻曲阵山东科技人学硕十学位论文第四章VHDL设计8255总体方案PBIN7一O】INOUTB口数据输入锁存缓冲PBOUT7一O】OUTPUTB口数据输出锁存NPBENOUTPUTB口方向控制,0输出PCIN【7一OINPUTC口数据输入PCOUT70】OUTDUTC口数据输出锁存NPCEN【71OUTDUTC口方向控制,0输出端口C的方向控制线NPCEN【7L】有7条,其中NPCENL控制第0位和第L位,NPCEN27依此控制第27位。413时序要求M0DE0BASICI叩U【NRD弋厂一NCSAFLO】Y百丽菇丽盯一PAIN7OL吧型己【Y1面I面RPCINF701L二M型坐坚一DOU肌OLY_瓦丽丽一M0DE0BASICOMDUL嗡A丽爵而厂Y一御R厂一唧O二二二二二X二二二五面二二二K二二二二M删L惴昂岛二二二二二二【巫巫二二二二二二NSLBLN【RDAIA膏OMPENDHER刊出末科技文学磷七学位论空第JL;L章VHDL教计825S总体方懿耪鹋4S“酶蝴潮秘NWF靠OMM”艇蠡鞴OCLE28ID懈瓣蕾瓤S删M口船ENSIB酣PERL口HEAL霉瓣毒。L。毒内媛搂决V姻设计缕秘豢次内核模块VHDL设计结构层次如图43所示图4。3内禳模块鳍构层次山东科技人学顾土学位论义第PQ章VHDL砹汁8255总体方案此设计方案是典型的TOPDOWN设计方法。42外围逻辑设计概述外围逻辑设计的主要工作就是将内核单向数据线DIN7O、DOUT【7一O】、PAIN7一OPAOUT70、PBIN【7一O、PBOUT【7一O、PCIN7一O、PCOUT7一O设计成双向的总线D7一O、PA7O】、PB7一O、PCI7O】,其逻辑功能的实现用VHDL语言实现。421外围逻辑框图外围逻辑框图如图44所示82SSDF701PERIPHERY图44外围逻辑框图422外围逻辑DL设计结构层次VHDL设计结构层次如图45所示图45外围逻辑结陶层次山东科技人学硕L学位论史第四章VHDL设计8255总体方案438255整体设计概述有了8255内核和外围逻辑的设计,采用图形输入法,对上述两个模块调用,8255整体设计变得简单、明了。完整的8255VHDL设计结构层次如图46所示图468255VHDL设计结构层次以上对设计的每一部分简单地做了一下概述,在第5、6章中将分别详细介绍内核、外围逻辑、整体设计的设计思想和设计流程。些查型丝查兰堡兰竺鲨J;一里至皇垄羔堕望上旦型型L第五章8255内核VHDL设计8255内核结构分解图如图51所示,下面依此介绍各主要模块的VHDL设计思想和设计流程。FE;“NCN州NRO【1。O】DINP0】图51内核结构分解图51PORTA模块P州701PCINF70】端口A对应一个8位数据输入锁存器和一个8位数据输出锁存器缓冲器,用端口A作为输入或输出时,数据均受到锁存。此模块仅生成端口A的8位数据输入锁存器PAINT7O】、8位数据输出锁存器缓冲器P的UT7O。511端口输入、输出信号定义信号类型说明RDCLKINPUT端口A输入锁存器锁存信号WRCIKINPUT端口A输出锁存器锁存信号RESETINPUT复位LREGCNTRLINPUT方式选择控制字标识山东科技人学坝L学位论业锵五章8255内棱VHDL设计MODEAINPUTA口模式选择,O方式O,1方式1DIN7OINPUT内部数据输入总线PAIN7O】INDUT端口A数据输入线PAOUT70】OUTPUT端口A输出锁存PAINT7一O】0UTPUT端口A输入锁存说明1内核引进了两条内部数据总线DIN7一O、DOUT7O】,所有8位数据的输入输出,在8255内核内部都是通过这两条总线实现的。2RDCLK、WRCLK是输入输出锁存器的锁存信号,由CONTML模块产生。3REGCNTRL、MODEA信号也由CON仃OL模块产生。512PORTA模块逻辑框图逻辑框图如图52所示一一一一一一一一一一一一一一一一一一一PORTA513VHDL设计流程图52PORTA逻辑框图山东科技人学硕J学位论义第五章8255内核VHDL设计此模块采用三个PROCESS进程INPUTLATCH输入锁存器、INPUTMULTIPLEXER输入方式选择OUTPUTLATCH输出锁存器。因为A口在方式0输入不锁存,而方式1输入锁存,所以采用INPUTMULTIPLEXER输入方式选择进程加以区别。各进程是并行的,进程内部语句是顺序执行的。由于PORTA设计相对简单,给出结构体程序清单一INPUTANDOUTPUTREGISTERSFORPORTAARCH“ECTURERTLOFPONAISS逗皿ALIPLATCHSTDLOGICVECTO“7DOWNTOO;BEGININPUT1ATCHPROCESSRDCLK,RESETBEGINIFRESETLTHENIPLATCH实参。例化过程如下U1BU下FERFLAGPORTMAPNRDNRDN、帆NWRREGPA_REG队,REGPBREGPB,REGCNTRLREGCNTRUNT,NSTBANSTBANACKANACKANSTBACL圆NSCBACKBIBFAIBFAIBFBIBFBOBFAOBFAOBFBOBFB;这样,调用元件的引脚与CONTROL模块引脚的对应关系就非常明析了。40山东科技大学硕J学位论文第五帝8255内核VHDL设计2ADDRESSECODER地址编码进程此进程完成的是REGPAA口选通、REGPBB口选通、REGPC_INTC口选通、REGCNTRL_INT方式选择控制字标识、SETRSTPCC口位操作标识5个信号的编码。其中REGPC_INT、REGCNTRIJNT是引入的SIGNAL,RE驴C、REGCNTRL应定义为BU仃ER端口,但为了易于逻辑综合,定义为OUTPUT,所以要引入SIGNALREGCNTRLJNT、RE妒CJNT,通过语句REGCNTRLREGCNTRL_IM;RE妒C_RE妒CJNT;实现信号的联络。给出地址编码的逻辑图如图510所示A1AONCS图510地址编码逻辑3MODEANDDIRECTIONCONTMLAGS工作方式和方向控制标识进程此进程完成A、B、C口工作方式、传输方向标识的锁存,工作方式分别用MODEAINT、MODEBINTMODEA、MODEB的中间信号、MODE2标识,传输方向分别用DI向UTA、DIROUTB、DIROUTCU、DI内UTCL标识;C口的BIT2、BIT4、BIT6为A、B口方式L2时提供控制、联络信号,而在工作模式改变时,其输入、输出状态是变化的,所以必须锁存,锁存在NPCE2、NPCE4、NPCE6中。4I山东科技大学硕士学位论文第五章8255内核VHDL设计此进程的流程图如下4A、B口输入、输出锁存器锁存信号RDCLKA、RDCLLB、W疋1KA、WRCLKB信号产生进程RDCLKA、RDCLKB、WRCLKA、W圮LL【B信号在PORTA模块、PORTB模块中用到,这4个信号的产生分别用了4个进程,都比较简单,下面给出VHDL描述的逻辑关系如图511所示山东科技人学硕J学位论文第五章8255内核VHDL设汁B图511A、B口输入、输出锁存器锁存信号逻辑5MODE1STROBEA11DACKNOWLEDGESI弘ALS方式1的选通信号和联络信号进程此进程生成信号NSTBAA口选通、NACKAA口外设响应、NSTBACKBB口选通、外设响应。给出VHDL描述PROCESSPCINBEGINNSTBAPCIN4;NACKAPCIN6;NSTBACKBPCIN2;ENDPROCESS;说明因为B口在方式L时的NSTBB、NACKB用的都是PCIN2,所以定义PCIN2为NSTBACKB信号,既将NSTBB、NACKB合二为一成为NSTBACKB信号。6INTEMLOTCLEARS中断清除进程此进程描述了A口输入中断清除信号NCLRIPA、A口输出中断清除信号NCLROPA、B口中断清除信号NCLRB,因为B口在方式L采用中断方式时,其输入和输出的控制信43山东科技大学硕士学位论文第五摹8255内核VHDL设计号采用相同的引脚,所以B口中断不区分输入、输出。下面给出此进程描述的产生这3个信号的逻辑如图512所示图512中断清除信号逻辑7IN嘶AA口输中断请求信号、INTROPAA口输出中断请求信号、INTRBB口中断请求信号进程与上面同样的原因,B口中断请求信号没区别输入、输出,其VHDL描述如下INTEMLPTAN、PROCESSNSTBA,NCIRIPABEGINIFNCLRIPA0THENINTRIPA0;ELSIFNSTBAEVENT觚DNSTBAL1THENINTRIPA1;ENDIENDPMCESS;INTERMPTAOUT44山东科技大学硕J学位论史第五章8255内核VHDL砹计PROCESSNACKA,NCLROPABEGINIFNCL帕PAOTHENINTROPAO;ELSIFNACKAEVENTANDNACKALTHENINTROPAL;ENDIFENDPROCESS;一INTE州PTBPROCESSNSTBACKB,NCLRBBEGINIFNCLRBOTHENINTRBOELSIFNSTBACKBEVENTARIDNSLBACL【BLTHENINTRB1ENDIFENDPROCESS;8PONAOUTPUTENABLEA口输出使能、PORTB0UTPUTENABLEB口输出使能进程此进程生成A口输出使能信号NPAE、B口输出使能信号NPBE。这两个信号在8255外围设计中用到下面给出生成NPAE、NPBE信号的逻辑图如图513所示图513A口、B口输出使能逻辑9PORTCOUTPUTMUX觚DENABLESC口输出选择和方向控制信号进程45山东科技人学硕JJ学位论文第五章8255内核VHDL设计在不同的工作模式C口的输出锁存信号PCOUC7O】是不同的,此进程用来选择C口的锁存输出,产生C口BITL、BIT3、BIT5、BIT7的方向控制使能信号NPCEL、NPCE3、NPCE5、NPCE7BIT2、B队BIT6的方向控制使能信号NPCE2、NPCE4、NPCE6在进程MODEANDDIRECTJONCONLROLFLAGS中被锁存。生成C口BITL、BIT3、BIT5、BIT7的方向控制使能信号NPCEL、NPCE3、NPCE5、NPCE7信号其逻辑图如图5。14所示DIROUTCLONPCEHMODEBINT1M0DE2MODEAIN1DIROUTCL图514C口BITL、BIT3、BIT5、BIT7的方向控制使能信号逻辑C口选择输出锁存的流程图流程图如下山东科技大学硕E学位论文第五章8255内核VHDL设汁47山东科技大学顾士学位论史第五章8255内核VHDL改汁48山东科技大学硕I学位论文第五章8255内梭VHDL设计回7注流程图中的0BFB7、OBF是相应信号取反。10STATUSBITSFOFPORTCC口状态位进程A、B口工作于方式1、2且采用中断方式时,C口的BIT2、BIT4、BIC6作为中断允许信号INTE,所以对这3位要保存,分别保存在PCINT2、PCINT4、PCINT4中。给出进程的VHDL描述一STATUSBITSFORPORTCPMCESSMODEAINT,MODEBJNT,MODE2,DIROUTA,PCIN,PCOINTBEGINIFMODEB_INT1THENPCIM2PCOINT2;ELSEPCINT2PCIN2;END诳IFMODEAJMANDNOTDIROUTAORMODE221THENPCIM4PCOINT4;ELSEPCINT4PCIN4;END征IFMODEAJNTANDDIROUTAORMODE21THEN山东科技人学颤L学位论文第五摹82S5内拨VHDL设|十PCINT6PCOINT6;ELSEPCINT6PCIN6;ENDIFENDPMCESS;11DATABUSMUX内部总线输出选择进程此进程完成2个工作内部总线输出选择、生成NDEN内部数据总线方向控制信号。因为C口每位在方式L、2时作为联络信号,所以DOUT7O内部总线输出是逐位操作的。给出逻辑图如图515所示仅给出DOUTO、DOUT2的逻辑图,DOUT1、DOUT3】、DOUT【5、DOUT【7】与DOUTO】逻辑相同,不同的位用不同下标表示;DOUT4、DOUT【6与DOUT【2噬辑相同,不同的位用不同下标表示,注意PCIN改为PCINT。图515内部总线输出逻辑50山东科技人学坝I学位论文第五章8255内核VHDL设计55TOP模块从前面的层次图可知,T0P模块是整个8255内核的顶层模块,有了各个底层模快的设计,项层设计变得相当的轻松、自如,只要采用VHDL的结构化描述风格前面调用BUFFERFLAG模块时曾用过,用元件声明、元件例化语句调用模块PORTA、PORTB、PORTC和CONTROL既可。此模块包括调用的4个模块对应的4个元件U1对应CONTROL模块、U2对应PORTA模块、U3对应PORLTB模块、U4对应PO

温馨提示

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

评论

0/150

提交评论