(利用VHDL语(论文)本.docx
论文题目摘要Philips开发的Fc总线是一个简洁的双向串行总线,能实现有效的IC之间限制,全部符合FC总线的器件组合了一个片上接口,使器件之间干脆通过FC总线通讯。因而解决了很多在设计数字限制电路时遇到的接口问题。WiShbone总线最先是由SiliCOn公司提出,它通过在IP核之间建立一个通用接口完成互连,优势是处理器核与外设共享总线。本文介绍了Fc总线和WiShbOne总线协议,通过设计一个基于片上系统的Wishbone总线的C限制器核心与带外设的总线相连接,从而达到总线互联通信的目的。从IC总线入手,通过VerilOg语言对其寄存器堆的读写操作进行编译并编写测试代码,运用ModeISim软件进行仿真验证,对设计的IC限制器进行波形仿真,验证了各个模块的功能和工作状态,仿真了执行过程和波形输出的状况。关键词:PC总线、WiShbOne总线、寄存器、Verilog语言、波形仿真AbstractWiththedevelopmentofmicroelectricandEDA(electronicdesignautomation)technology,FPGA(fieldprogrammablegatesarray)canrealizethefunctionofdigitalcircuitsystemdesign.FPGAhavethemeritoffiledprogrammabilityandHighintegrationrate,thereforeishighlyrecognizedforengineering.I2Cbusiswidelyappliedinthedigitalsystemassimpleinterface,expedientuse,lowcostandgoodexpansibility.VHD1.isconsideredasacoreofdigitalsystemdesignandakeytechniqueofimplementdigitalsystem.ThedesignrealizesthefunctionofI2CbusinterfaceontheFPGA.AtfirstthethesisdeeplyresearchI2Cbusspecification,thenbrieflyintroducetheQuartusIIdesignenvironmentandthedesignmethod,aswellasFPGAdesignflow.Inthisfoundation,I2CbuscontrollerdesignschemeandthetimingsimulationunderQuartusIIisparticularlyintroduced.KeywordsQuartusIIJ2Cbuscontroller;FPGA;timingsimulation摘要错误!未定义书签。AbstractII第1章绪论51.1 课题背景51.2 I2C总线的产生及发展61.3 FPGA的现状与展望61.4 相关工作6第2章I2C总线技术的探讨82.1 I2C总线的概念82.2 12C总线的传输错误!未定义书签。2.2.1 数据的有效性102.2.2 I2C总线数据传送的起先和停止条件112.2.3 12C总线传输过程中的应答信号112.2.4 I2C总线数据传送的重复起先条件112.2.5 12C总线的传输过程中的字节格式132.2.6 I2C总线的器件子地址182.2.7 12C总线传输信号的时序192.3 本章小结22第3章VHD1.语言的基础学问233.1 VHD1.语言的概述233.2 VHD1.语言的特点233.3 VHD1.语言的程序结构243.3.1 VHD1.程序的库243.3.2 包集合243.3.3 实体说明253.3.4 构造体263.3.5 酉己置263.4 本章小结26第4章设计工具和设计方法274.1 设计工具274.2 基于FPGA的数字电路的设计流程284.3 本章小结29第5章I2C总线的功能设计315.1 12C总线完成的功能315.2 用VHD1.语言实现写操作时的串行转并行325.3 用VHD1.语言实现依次读操作时的并行转串行325.4 I2C总线限制器的顶层设计335.5 本章小结34第6章I2C总线的硬件时序仿真356.1 器件的选择356.2 硬件仿真366.2.1 用VHD1.语言实现写字节周期376.2.2 用VHD1.语言实现依次读字节周期386.2.3 用VHD1.语言实现选择性读字节周期386.3 本章小结39结论40致谢41参考文献42第1章绪论1.1 课题背景近年来,随着社会的发展,电子产品越来越多的进入人们的生活和工作中,成为了我们生活中必不行少的一部分,随着计算机的普及,以及电子设备之间相互沟通的更加频繁,为了更便利的实现器件与器件之间的通信,研发人员发觉消费者电子电讯和工业电子中,看上去不相关的设计里常常有很多相像的地方。为了使这些相像之处对系统设计者和器件厂商都得益,而且使硬件效率最大、电路最简洁,Philips开发了一个简洁的双向串行总线,实现有效的IC之间限制,这个总线就称为InterlC或RC总线。随着超大规模集成电路的快速发展,半导体工业进入微米时代。随着集成亿万个晶体管的片上系统变得多见,设计困难性随之不断增加,因而设计要求也越来越高。如何进行总线之间的互联成为了迫切须要解决的问题。开发者们起先运用基于片上系统的IP设计方法进行片上系统总线与其他总线互联。他们研发了很多Wishbone总线的兼容IP核,我们通过设计I2C限制器把I2C总线和Wishbone总线相联以进行相互通信。另一方面,由于如今集成电路大规模、高密度、高速度的需求,芯片的集成度和设计的困难度都大大增加,芯片的集成密度已达到一百万个晶体管以上,使电子设计愈来愈困难。为使如此困难的芯片变得易于人脑的理解,用一种高级语言来表达其功能性而隐藏具体实现的细微环节是很必要的,万门以上的设计须要制定一套新的方法就是采纳硬件描述语言。VerilogHD1.是一种硬件描述语言,是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。Verilog语言供应特别简洁、可读性很强的句法,运用Verik)g语言已经胜利地设计了很多大规模的硬件。1.2 Wishbone总线的特点及应用Wishbone总线最先是由Silicon公司提出,现在己被移交给C)PenCoreS组织维护,它通过在IP核之间建立一个通用接口完成互连。可以用于在软核、固核以及硬核之间进行互联。Wishbone规范具有如下特点:它是一个轻量级的规范,接口简洁紧凑,接口须要的互联逻辑特别少;它支持用户定义的标签。完整的一般数据传输总线协议,相对于其他的IP核接口规范来说,Wishbone接口规范具有简洁、开放、高效、利于实现等特点而且完全免费,并没有专利爱护。基于上述优点,因此采纳Wishbone总线进行接口设计。WISHBONE地址和数据位都是32位(假如小于32位也可以进行通信),最多可以连接8个主设备,16个从设备,当多个主设备申请限制时,通过仲裁机制确定什么时候哪个主设备能访问共享总线。Wishbone总线支持的互联类型1,点对点互联2,共享总线互联3,十字交叉互联4,基于交换的互联结构Wishbone支持的数据操作1,单次读/写操作;2,块读/写操作;3,读改写(RMW)操作;1.3 PC总线的发展和基本特征l2C(lnter-IntegratedCirC3t)总线是一种由PHI1.IPS公司开发的两线式串行总线,用于连接微限制器及其外围设备。I2C总线产生于在80年头,最初为音频和视频设备开发,之后又经过多次的修改,成为近年来在微电子通信限制领域广泛采纳的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,限制方式简化,器件封装形式小,通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够限制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。基本特征: 只要求两条总线线路一条串行数据线(SDA);一条串行时钟线(SC1.). 每个连接到总线的器件都可以通过唯一的地址和始终存在的简洁的主机/从机关系软件设定地址;主机可以作为主机发送器或主机接收器. 它是一个真正的多主机总线假如两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏 串行的8位双向数据传输位速率在标准模式下可达100kbiVs,快速模式下可达400kbits,高速模式下可达3.4Mb计/s 片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整 连接到相同总线的IC数量只受到总线的最大电容400PF限制1.4 相关工作为了设计基于wishbone设备的I2C总线限制器。首先要深化探讨总线和WiShbOne总线的协议规范,分析它们之间的差异。本课题设计了一个主/从模式结构,使ControllerIP与Wishbone总线相联,并通过I2C总线输出得到结果。在Modelsim平台上,对设计进行波形仿真,验证设计结果。第2章Pc总线技术的具体探讨2.1FC总线的概念I2C总线是一种比较流行的总线,它的接受和发送在同一条数据线上。I2C由串行数据(SDA)和串行时钟(SC1.)两根线构成的。总线上允许连接的设备数主要确定于总线上的电容量,一般设定为400pf以下。PC总线上数据的传输速率在标准模式下可达100kbit/s,在快速模式下可达400kbits,在高速模式下可达3.4Mbits0SDA和SC1.都是双向总线,它们都通过上拉电阻连接到电源上。当总线处于停止(ID1.E)状态,两根线都是高电平。对于Pc总线来说,总线上连接的设备,例如1.CD驱动器、存储器等都是有一个唯一的地址识别,而且都可以作为一个发送器或接收器。至于是作为发送器还是接收器,主要取决于连接设备的具体功能。例如1.CD驱动只是一个接收器,而存储器则既可以接受又可以发送数据。除了发送器和接收器外,设备在执行数据传输时也可以被看作是主机或从机。主机是初始化总线的数据传输,并产生允许传输的时钟信号的设备,这时任何被寻址的期间都被认为是从机。由于总线运用两线的硬件接口简洁,FC总线的应用越来越广泛山。下面,将I2C总线的通用术语进行介绍,如表21所示;Pc总线的典型接法如图2-1所示。术语发送器主机从机Vdd主机从机表2-112c总线的通用术语描述发送数据到总线的器件从总线接收数据的期间初始化发送、产生时钟信号和终止发送的器件被主机寻址的器件多主机同时有多于一个主机尝试限制总线,但不破坏报文仲裁是一个在有多个主机同时尝试限制总线,但只允许其中一个限制总线并使报文不被破坏的过程同步两个或多个器件同步时钟信号的过程图2-1Pc总线信号连接示意图PC总线支持任何IC生产工艺,两线一一串行数据线SDA和串行时钟线SC1.都是双向线路,在连接到总线的器件间传递信息。SDA和SC1.都是通过一个电流源或着上拉电阻连接到正的电源电压,当总线空闲时这两条线路都是高电平,连接到总线的器件输出级必需是漏极开路或集电极开路才能执行线与的功能。连接到RC总线上的每个器件都有一个唯一的地址识别,而且都可以作为一个发送器或接收器。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。2.2I2C总线的传输由于I2C总线的器件有不同种类的工艺(CMOS、NMOS双极性),逻辑'0'(低)和'1'(高)的电平不是固定的。在FC总线每传输一位数据就有一个时钟脉冲相对应,其逻辑“0”或“1”的信号电平取决于该节点的正端电源Vdd的电压。数据的有效性在工作过程中,数据有效要求串行数据(SDA)线上的数据必须要在串行时钟(SC1.)的高电平常钟周期期间保持稳定。而只有在串行时钟(SC1.)线的时钟信号是低电平的时候串行数据(SDA)上的数据才能发生变更(如图3所示)Pc总线数据传送的起始与停止条件在Pc总线数据传送的整个过程中,须要先有起先条件引发,并由停止信号结束,这两个条件在数据线上的表示如图4所示。起始条件(三):当SC1.线是高电平常,SDA线从高电平向低电平切换。停止条件(P):当SC1.线是高电平常,SDA线由低电平向高电平切换。不是在数据有效性中规定在SDA只能在SC1.的低电平的时候变更,为何STAR,STOP不一样?首先STAR和STOP不是数据,所以可以不遵守数据有效性中的规定,其它数据都遵守,而STAR和STOP“不遵守”导致STAR和SToP更简洁被识别。这样不是不遵守而是更有优势。SDASC1.STARTconditionSTOPndition图4起始和停止条件起始和停止条件一般由主机产生总线在起始条件后被认为处于忙的状态在停止条件的某段时间后总线被认为再次处于空闲状态。假如产生重复起始(Sr)条件而不产生停止条件,总线会始终处于忙的状态。此时的起始条件(三)和重复起始(Sr)条件在功能上是一样的。I2C总线数据传送的重复起先条件主机与从机进行通信时,有时须要切换数据的收发方向。例如,访问某一具有FC总线接口的存储器时,主机先向存储器输入存储单元的地址信息(发送数据),然后再读取其中的存储内容(接收数据)。在切换数据的传输方向时,可以不必先产生停止条件再起先下次传输,而是干脆再一次产生起先条件。FC总线在已经处于忙的状态下,再一次干脆产生起始条件的状况被称为重复起始条件。正常的起始条件和重复起始条件在物理波形上并没有什么不同,区分仅仅是在逻辑方面。在进行多字节数据传输过程中,只要数据的收发方向发生了切换,就要用到重复起始条件。四、数据传输ac总线传输过程中的字节格式总线传输时要依据规定的数据格式,发送到SDA线上的每个字节必需为8位,每次传输可以发送的字节数量不受限制,每个字节后必需跟一个应答信号。首先传输的是数据的最高位MSB(见图5)。在起先条件发出之后,SDA输入端发送一个7位的从机地址,然后第8位为数据方向位(读/写位),数据方向表明主机和从机的数据传输方向。“0”表示主机发送数据(写),“1”表示从机发送数据(读)。假如从机要完成一些其他功能后才能接受或者发送下一个完整的数据字节,可以使时钟SC1.保持低电平迫使主机进入等待状态。当从机打算好接受下一个数据字节并释放时钟SC1.后,数据传输接着。数据传输由主机产生停止条件。acknwledgensignafromBitSDA大1ryyr/OoC二30(aCknowledfledentSigralfromreceiverbytecomplete,interruptwithinslaveclocklineheldlowwhileinterruptsareservicedscl-11-7uGV.7"V.a一/HfSTARTor:dSTARTditio11STOPorrealedSTARTcondition图5I2C总线数据传输数据传输必需带响应相关的响应时钟脉冲由主机产生在响应的时钟脉冲期间发送器释放SDA线(高)。在响应的时钟脉冲期间接收器必需将SDA线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平(见图6)当然必需考虑建立和保持时间。当从机不能响应从机地址时(例如它正在执行一些实时函数不能接收或发送),从机必需使数据线保持高电平。主机然后产生一个停止条件终止传输或者产生重复起始条件起先新的传输。假如从机接收器响应了从机地址但是在传输了一段时间后不能接收更多数据字节,主机必需再一次终止传输。这个状况用从机在第一个字节后没有产生响应来表示。从机使数据线保持高电平,主机产生一个停止或重复起始条件。假如传输中有主机接收器,它必需通过在从机不产生时钟的最终一个字节不产生一个响应,向从机发送器通知数据结束从机发送器必需释放数据线,允许主机产生一个停止或重复起始条件。图6I2C总线响应I2C总线传输过程中的应答信号数据传输必需带应答。相应的时钟脉冲由主机产生。在应答的时钟脉冲器件,发送机SDA输入端保持高电平,接收机将SDA输出端拉低,使它在这个时钟脉冲的高电平器件保持稳定的低电平。当从机不能应答从机地址时,从机必需使数据线保持高电平,主机产生一个停止条件,终止传输或者产生重复起始条件起先新的传输。五、仲裁和时钟发生1.2同步全部主机在SC1.线上产生它们自己的时钟来传输I2C总线上的报文。数据只在时钟的高电平周期有效。因此,须要一个确定的时钟进行逐位仲裁。时钟同步通过线与连接I2C接口到SC1.线来执行。这就是说:SC1.线的高到低切换会使器件起先数它们的低电平周期,而且一旦器件的时钟变低电平,它会使SC1.线保持这种状态直到到达时钟的高电平(见图7)。但是,假如另一个时钟仍处于低电平周期,这个时钟的低到高切换不会变更SC1.线的状态。因此,SC1.线被有最长低电平周期的器件保持低电平。此时,低电平周期短的器件会进入高电平的等待状态。startcountingHIGHperiod图7仲裁过程中的时钟同步当全部有关的器件数完了它们的低电平周期后,时钟线被释放并变成高电平。之后,器件时钟和SC1.线的状态没有差别。而且全部器件会起先数它们的高电平周期。首先完成高电平周期的器件会再次将SC1.线拉低。这样,产生的同步SC1.时钟的低电平周期由低电平常钟周期最长的器件确定,而高电平周期由高电平常钟周期最短的器件确定。1.3 仲裁 主机只能在总线空闲的时侯启动传送。两个或多个主机可能在起始条件的最小持续时间tHD;STA内产生一个起始条件,结果在总线上产生一个规定的起始条件。 当SC1.线是高电平常,仲裁在SDA线发生;这样,在其他主机发送低电平常,发送高电平的主机将断开它的数据输出级,因为总线上的电平与它自己的电平不相同。然后,进一步获得其的判定条件: 仲裁可以持续多位。首先是比较地址位。假如每个主机都试图寻址同一的器件,仲裁会接着比较数据位(假设主机是发送器),或者比较响应位(假设主机是接收器)。 I2C总线的地址和数据信息由赢得仲裁的主机确定,在仲裁过程中不会丢失信息。丢失仲裁的主机可以产生时钟脉冲直到丢失仲裁的该字节末尾。 在串行传输过程中时.,一旦有重复的起始条件或停止条件发送到PC总线的时侯,仲裁过程仍在进行。假如可能产生这样的状况,有关的主机必需在帧格式相同位置发送这个重复起始条件或停止条件。 此外,假如主机也结合了从机功能,而且在寻址阶段丢失仲裁,它很可能就是赢得仲裁的主机在寻址的器件。那么,丢失仲裁的主机必需马上切换到它的从机模式。 I2C总线的限制只由地址或主机码以及竞争主机发送的数据确定,没有中心主机,总线也没有任何定制的优先权。图8显示了两个主机的仲裁过程。当然,可能包含更多的内容(由连接到总线的主机数量确定)。此时,产生DATAl的主机的内部数据电平与SDA线的实际电平有一些差别,假如关断数据输出,这就意味着总线连接了一个高输出电平。图8两个主机的仲裁过程必需特殊留意的是:在串行传输时,当重复起始条件或停止条件发送到I2C总线的时侯,仲裁过程仍在进行。假如可能产生这样的状况,有关的主机必需在帧格式相同位置发送这个重复起始条件或停止条件。也就是说,仲裁在不能在下面状况之间进行:a)重复起始条件和数据位b)停止条件和数据位c)重复起始条件和停止条件从机不被卷入仲裁过程。六、地址格式1.4 1、7位地址格式数据的传输遵循图9所示的格式。在起始条件(三)后,发送了一个从机地址。这个地址共有7位,紧接着的第8位是数据方向位(R/W):O表示发送写,1表示恳求数据读。数据传输一般由主机产生的停止位(P)终止。但是,假如主机仍希望在总线上通讯,它可以产生重复起始条件Sr和寻址另一个从机,而不是首先产生一个停止条件。在这种传输中,可能图9完整的数据传输可能的数据传输格式有:1.1 主机发送器发送到从机接收器传输的方向不会变更(见图10),datatransferred'"(write)(nbytes+acknowledge)力frommastertoslavefromslavetomasterA=acknowledge(SDA1.OW)A=notacknowledge(SDAHIGH)S=STARTconditionP=STOPcondition图10主机一发送器用7位地址寻址从机一接收器。传输方向不变。1.2 在第一个字节后主机马上读从机(见图11)在第一次响应时,主机一发送器变成主机一接收器,从机一接收器变成从机一发送器。第一次响应仍由从机产生。之前发送了一个不响应信号(/A)的主机产生停止条件。1/ZS1.AVEADDRESS/RW/ADATA次DATAdatatransferred(read)(nbytes+acknowledge)图11在第一个字节后主机马上读从机I2C总线传输信号的时序I2C总线数据传送分为读操作和写操作(图2-4),而读操作还分为依据当前位置进行读操作(图2-6)以及随即性读操作(图2-8),时序图如下图2-4主机向从机发送了一个字节的时序图2-5主机向从机连续发送多个字节的时序图2-5所表示的是一个最简洁的写操作的时序,主机向从机传送一个7位的地址数据,然后第8位为读/写位,在这个表示地址的字节传输结束之后,在串行时钟(SC1.)的第9个时钟,由从机发送一个应答信号(此时串行数据SDA输入端在SC1.为高电平期间内保持高电平,而SDA输入端输出为低电平,表示一个应答信号),接着主机接着向从机传输8位数据,之后再次由从近发送一个应答信号,这个时候假如还须要发送数据字节,可以接着发送(图2-5),每发送8位数据后都要由从机发送一个应答信号,当数据发送完毕后,在最终一个应答信号之后的那个SC1.处于高电平的时钟周期内,将串行数据SDA输入端从低电平拉为高电平,表示数据传输停图2-6主机向从机接收1个字节数据的时序图2-6所表示的是一个最简洁的依据当前位置进行的读操作,前9个周期的时序与写操作的时序一样,不同的是当从机发送一个应答信号之后,由从机向主机传输8位数据,这个时候假如还须要发送数据字节,可以接着发送(图2-7),每发送8位数据后都要由主机发送一个应答信号,当数据发送完毕后,在最终一个数据字节传送结束之后的那个SC1.处于高电平的时钟周期内SDA的输入端保持高电平,而SDA输入端输出也为高电平,表示一个不应答信号(图中Nack(Notacknowledge)表示),之后的一个时钟周期内产生停止条件,表示数据传输停止。图2-8主机向从机随即接收多个字节数据的时序图2-8所表示的是一个多字节的随机性读操作,选择性读操作允许主器件对寄存器的随意字节进行读操作,主机首先通过发送起始信号、从机地址和它想要读取的字节数据的地址执行一个伪写操作。在从机应答之后,主机重新发送起始信号和从机地址,此时读/写位为“1”进行读操作,从机响应并发送应答信号,然后输出所要求的一个8位字节数据,主器件发送应答信号,这个时候假如还须要发送数据字节,可以接着发送,每发送8位数据后都要由主机发送一个应答信号,当数据发送完毕后,在最终一个数据字节传送结束之后的那个SC1.处于高电平的时钟周期内SDA的输入端保持高电平,而SDA输入端输出也为高电平,表示一个不应答信号(图中Nack(Notacknowledge)表示),之后的一个时钟周期内产生停止条件,表示数据传输停止。2.3本章小结本章主要介绍了I2C的有关学问,从I2C总线的概念起先,介绍了I2C总线的起先和停止条件以及如何传输数据才有效,然后介绍了FC总线传输过程中应答信号的产生和作用,以及位传输和字节传输须要留意的每个时钟周期代表的意义,最终,介绍了I2C总线工作的各种状态的时序,以便下面用语言对PC总线进行设计与实现。第3章VHD1.语言的基础学问3.1 VHD1.语言的概述VHD1.语言是一种用于电路设计的高级语言。它在80年头的后期出现。最初是由美国国防部开发出来供美军用于提高设计的牢靠性和缩减开发周期的一种运用范围较小的设计语言。VHD1.语言主要用于描述数字系统的结构,行为,功能和接口。除了含有很多具有硬件特征的语句外,VHD1.的语言形式和描述风格与句法是特别类似于一般的计算机高级语言。VHD1.的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不行视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以干脆调用这个实体。这种将设计实体分成内外部分的概念是VHD1.系统设计的基本点。3.2 VHD1.语言的特点与其他的硬件描述语言相比,VHD1.具有更强的行为描述实力,从而确定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述实力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。VHD1.最初是作为一种仿真标准格式出现的,因此VHD1.既是一种硬件电路描述和设计语言,也是一种标准的网表格式,还是一种仿真语言,其丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能用于查验设计系统的功能可行性,随时可对设计进行仿真模拟。即在远离门级的高层次上进行模拟,使设计者对整个工程设计的结构和功能的可行性做出决策。VHD1.语言的行为描述实力和程序结构确定了它具有支持大规模设计的分解和已有设计的再利用功能,符合市场所需求的,大规模系统高效、高速的完成必需由多人甚至多个开发组共同并行工作才能实现的特点。VHD1.中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作供应了有力的支持。VHD1.对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。由于VHD1.具有类属描述语句和子程序调用等功能,对于已完成的设计,在不变更源程序的条件下,只需变更端口类属参量或函数,就能轻易地变更设计的规模和结构吸3.3 VHD1.语言的程序结构一个完整的VHD1.语言程序通常包括实体、构造体、配置、包集合和库5个部分。VHD1.程序的库库是经编译后的数据的集合,它存放包集合定义、实体定义、构造体定义和配置定义。在VHD1.语言中,库的说明总是放在设计单元的最前面:1.IBRARY库名;这样,在设计单元内的语句就可以运用库中的数据。由此可见,库的好处就在于使设计者可以共享已经编译过的设计结果。在VHD1.语言中可以存在多个不同的库,但是库和库之间是独立的,不能相互嵌套。包集合包集合是用来排列VHD1.语言中所要用到的信号定义、常数定义、数据类型、元件语言、函数定义和过程定义等,它是一个可编译的设计单元,也是库结构的一个层次,要运用包集合时可以用USE语句说明。例如:useieee.std_Iogic_unsigned.all;该语句表示在VHD1.程序中要运用名为StdJogic-Unsigned的包集合中的全部定义或者说明项。包集合的结构如下所示:PACKAGE包集合名IS说明语句END包集合名;包集合标题PACKAGEBODY包集合名IS说明语句ENDBODY;包集合体一个包集合由两大部分组成:包集合标题和包集合体、包集合体可以省略不写。一般包集合标题列出全部项的名称,而包集合体具体给出各项的细微环节。实体说明任何一个基本设计单元的实体说明都具有如下结构:ENTITY实体名IS类属参数说明端口说明END实体名;其中类属参数说明必需放在端口说明之前,用于指定参数。端口说明是对基本设计实体与外部接口的描述,也可以说是对外部引脚信号的名称,数据类型和输入、输出方向的描述。其一般书写格式如下:PORT(端口名:方向数据类型名;端口名:方向数据类型名);端口名是定义每个外部引脚的名称。端口方向用来定义外部引脚的信号方向是输入还是输出,分为5种:IN(输入),OUT(输出而且构造体内部不能再运用),INOUT(双向),BUFFER(输出而且构造体内部可以再次运用),1.INKAGE(不指定方向,无论出入都可以连接)。数据类型在逻辑电路设计中只用到两种:Brr和BIT_VECTOR。当端口被说明为BIT数据类型时,该端口的信号取值只可能是“0”或者“1”。这里的“0”和“1”是指逻辑值。当端口被说明为BIT_VECTOR数据类型时,该端口的取值可能是一组二进制位的值。构造体构造体定义了设计单元具体的功能。构造体对其基本设计单元的输入输出关系可以用3种方式进行描述,即行为描述、寄存描述和结构描述。由于构造体是对实体功能的具体描述,因此它肯定要跟在实体的后面。一个构造体的具体结构描述如下:ARCHITECTURE构造体名C)F实体名IS定义语句BEGIN并行处理语句END构造体名;构造体名是对本构造体的命名,是该构造体的唯一名称。OF后面紧跟的实体名表明白该构造体所对应的是哪一个实体。定义语句用来对构造体内部所运用的信号、常数、数据类型和函数进行定义,格式和端口说明的语句一样,但因为它是内部连接的信号,故没有也不须要有方向的说明。并行处理语句具体的描述了构造体的行为也配置一个实体可以包含多个结构体,配置的作用就是依据须要选择实体的结构体。配置语句描述层与层之间的连接关系以及实体与结构之间的连接关系,设计者可以利用这种配置语句来选择不同的构造体,使其与要设计的实体相对应。在仿真某一实体时,可以利用配置来选择不同的结构体,进行性能对比试验以得到性能最佳的结构体。配置语句的基本书写格式如下:CONFIGURATION配置名C)F实体名IS语句说明END配置名;常常运用的配置有以下三类:默认配置、元件配置和结构配置”3.4本章小结本章主要介绍了VHD1.的有关学问,主要介绍了VHD1.特点以及如何用VHD1.语言编写程序,首先定义库函数,然后引入包集合,定义实体,构造体,留意构造体内可以包括子程序,最终定义配置。第4章设计工具和设计方法4.1 设计工具本次设计运用的是AItera公司的设计软件QUartUs11,用VHD1.语言编程实现的。QuartusII软件是Altera供应的综合性开发软件,可以轻易地满意特定地设计需求。它支持原理图、VHD1.、VeriIOgHD1.等多种设计输入形式,内有综合器以及仿真器,可以完成从设计输入到硬件配置的完整设计流程。QuartusII软件允许用户在设计流程的每个阶段运用软件供应的软件图形用户界面、EDA工具界面或吩咐行方式。其图形用户界面的功能分为:设计输入、综合、布局布线、时序分析、仿真、编程、系统设计、软件开发、基于块的设计、EDA界面、时序收敛、调试、工程更改管理等。在本次设计中主要用到前面几个功能,下面坐下简洁的介绍:设计输入是运用QUartUSn软件的模块输入方式、文本输入方式、Core输入方式和EDA设计输入工具等表达用户的电路构思,同时运用安排编辑器(ASSignmentEditor)设定初始设计约束条件。综合是将HD1.语言、原理图等设计输入翻译成由与、或、非门,RAM,触发器等基本逻辑单元组成的逻辑链接(网表),并依据目标与要求(约束条件优化所生成的逻辑连接,输出edf或Vqm等标准格式的网表文件,供布局布线器进行实现。除了可以用QUartUSU软件的综合工具外,也可以运用第三方综合工具,生成与QuartusII软件协作运用的edf网表文件或vqm文件。布局布线的输入文件是综合后的网表文件,QuartusII软件中布局布线包含分析布局布线结果、优化布局布线、增量布局布线和通过反标保留安排等叫时序分析是允许用户分析设计中全部逻辑的时序性能,并帮助引导布局布线满意设计中的时序分析要求。它视察和报告时序信息,如建立时间、保持时间、时钟至输出延时、最大时钟频率以及设计的其他时序特性,可以运用时序分析生成的信息来分析、调试、和验证设计的时序性能。仿真分为功能仿真和时序仿真。功能仿真主要是验证电路功能是否符合设计要求,它可以在不同的层次进行,它可以对基本单元仿真也可以对几个基本单元构成的单元进行仿真,直至系统级的仿真;时序仿真包含了延时信息,它能较好的反映芯片的设计工作状况。可以运用QUarIUSIl集成的仿真工具仿真,也可以运用第三方工具对设计进行仿真,如ModeISim。编程和配置是在全编译胜利后,对AltenI器件进行编程或配置,它包SAssemble(生成编程文件)、Programmer(建立包含设计所用器件名称和选项的链式文件)、转换编程文件等。EDA界面中的EDANetliStWriter是生成时序仿真所须要的包含延迟信息的文件。除了上述工具外,QUartUSn软件还供应第三方工具的连接。如综合工具SynPlify、Synplifypro1.eonardo,仿真工具MOdeISim、AldeCHD1.等这些业内公认的专业综合、仿真工具。4.2 基于FPGA的数字电路的设计流程随着FPGA容量,功能及其牢靠性的提高,在现代数字通信系统的中运用率越来越高,采纳FPGA设计数字电路已经成为数字电路系统领域的主要方式之一叽在信号的处理以及整个系统的限制中,FPGA不但能大大缩减电路的体积,提高电路的稳定性,而且其先进的开发工具使整个系统的设计周期大大缩短明主要的设计流程图如下叫设计打算:在进行设计之前,必需了解项目设计的需求,首先要依据任务书要确定方案,选择运用说明设备等打算工作。设计输入:将设计的系统或电路以某种形式表现出来,输入到计算机上,包括状态图输入、图形输入和HD1.语言输入,常用的是后两种。HD1.语言在描述状态机,限制逻辑,总线功能方面比较强;原理图输入比较适合顶层设计、数据通路逻辑;在本文的设计中,运用的VHD1.语言输入。功能仿真:功能仿真也称前仿真或行为仿真。它是在没有考虑器件延时和布线延时的志向状况下,对源代码进行逻辑上的功能验证,以便刚好地进