版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生姓名班级学号指导教师时钟,如何进行异步时钟间的数据传输成为了一个很重要的问题。异步FIFO 方面研究起步较晚,国内的一些研究所和厂商开发的FIFO电路还远不能满足市确判断FIFO的储存状态成为了设计异步FIFO电路的难点。本课题介绍了一种基于FPGA的异步FIFO电路设计方法。课题选用QuartusⅡ软件,在CycloneⅡ工ⅡInmodernICchips,withthecontinuousexpansionofthescaleofdesignsystemalwayscoproblemofasynchronousclockdatatransfer.TheasynchronousFIFOhasaverywiderangeofapplicationsinnetworkinterface,databecauseoftheaspectofalatestart,somedomesticresearchinstitutesamanufacturerswhichresearchtheFIntheasynchronouscircuit,becauseofthattheclockcycleandphaseiscompletelyindependent,andthepresenceofmetastabilityproblems,thelossratreducetheprobabilityofmetastabilityandjudgethestateoftheFIFOstorageThispaperintroducesamethodofasynchronousFIFOcircuitdesignbasedonThistopicselectsQuartusIbasedontheuseofVHDLhardwarusingthemethodofcombininghierarchical,descriptionlanguaKeywords:AsynchronousFIFO;Synchronization;MetaI 1 11.2异步FIFO简介 11.3国内外研究现状及存在的问题 1 1 21.4本课题主要研究内容 3 4 42.2异步FIFO基本原理 52.3异步FIFO设计难点 5 62.5异步FIFO验证方案 72.5.1验证复位功能 72.5.2验证写操作功能 72.5.3验证读操作功能 72.5.4验证异步FIFO电路整体功能 7 83.1格雷码计数器模块 83.2同步模块 83.3格雷码/自然码转换模块 93.4空满标志产生模块 4.1模块整合 4.2时序仿真及功能测试 4.2.1复位功能软件仿真与测试 4.2.2写操作功能时序仿真与测试 4.2.3读操作功能时序仿真与测试 4.2.4异步FIFO电路整体功能软件仿真与测试 4.2.5时序仿真结果总结 5.1外部电路焊接 205.2引脚分配 5.3调试电路设计 245.3.1调试电路介绍 245.3.2异步时钟产生模块 5.3.3伪随机数据队列产生模块 5.3.5调试电路引脚分配 5.3.6调试电路硬件仿真 5.4异步FIFO电路硬件仿真 5.4.1复位功能硬件仿真与测试 5.4.2写操作功能硬件仿真与测试 5.4.3读操作功能硬件仿真与测试 5.4.4异步FIFO硬件电路整体功能软硬件仿真与测试 5.4.5硬件仿真结果总结 第一章绪论FPGA(Field—ProgrammableGateArray),即现场可编程门阵列,它是在FPGA上进行调试,是现代IC设计验证技术的主流。FPGA作为一种半定制电路而出现在专用集成电路(ASIC)领域中,既克服了先前可编程器件的门电路数目有限的缺点,又弥补了定制电路的不足。基于FPGA的异步FIFO具有现场1.2异步FIFO简介 (FirstInFirstOut)是解决这个问题的一个简单有效的方案。异步FIFO是一种FIFO可以在两个不同的时钟系统之间进行快速准确的实在网络接口、数据采集和图像处理等方面得到了十分广泛的应用2。异步FIFO用在异步时钟数据接口部分,异步FIFO便成为了一个难点。本课题介绍了一种基于FPGA设计高速可靠的异1.3国内外研究现状及存在的问题在20世纪80年代早期对FIFO存储器的容量和速度需求都很低,所以那时的2FIFO芯片是基于移位寄存器的中规模集成(MSI)器件,由于这种芯片在容量不会太大,所以其速度也不可能很快。新型的FIFO芯片是基于RAM结构的大规模集成(LSI)电路,其内部存储单元使用一个双端口RAM,具有输入和输出两套数据线。由于采用RAM结构,数据从写入到读出的延迟时间将大大缩短。量,其内部存储单元使用动态RAM代替静态RAM,并在芯片内部集成刷新电随着微电子技术的飞速发展,新一代的FIFO芯片容量越来越大,速度越来越快,体积也越来越小。美国IDT公司已经推出运行速度高达225MHz,电压低至2.5V,可在业内各种配置下实现业内最大数据流量高达9Mb的FIFO系列。SOI的FIFO存储器,它采用专门的抗辐射加固工艺和设计版图,主要用于军事系统和高辐射的空间环境中;FIFO芯片的最新产品是IDT公司推出的多队列FIFO器件的连接来实现容量深度的扩展和队列扩展6。目前在国内大部分集成芯片中,单独做FIFO芯片的很少,国内的一些研究所和厂商也开发了FIFO电路,但国内外设计FIFO时,通常使用两种方法,一是利用可编程逻辑器件来构造FIFO(如Xilinx公司),二是利用Verilog、VHDL等硬件描述语言来对FIFO的功能结构进行描述6。在大部分的EDA软件中,都是通过综合器来完成对EDA等硬件于FIFO是基于RAM结构的,大部分的参考资料都是建立在数组存取的基础上对FIFO进行描述的,然而综合器对数组的综合一般是将其转变为寄存器的结构,这带来的缺陷是综合后的结构会非常庞大,造成在大容量的FIFO设计时,会产3本课题基于FPGA技术,在CycloneⅡ系列的EP2C5T144C8N芯片的基础上,选用QuartusⅡ软件利用VHDL硬件描述语言进行逻辑描述,并采用层次化、描述语言和图形输入相结合的方法设计了一个RAM深度为128bit,数据宽度为8bit的异步FIFO电路,并对其功能进行了时序仿真和硬件仿真验证。论文各章节的主要内容安排如下:第一章为绪论,简要介绍了FPGA的相关知识以及异步FIFO的主要作用、研究背景和国内外的发展现状,并概括介绍了本课题的主要研究内容。第二章为异步FIFO设计要求及基本原理,首先介绍了本课题的设计要求,然后对异步FIFO的结构、基本原理以及其设计难点进行了分析,并由此归纳出系统的设计模块和预期功能。第三章为模块设计与实现,主要介绍了异步FIFO的模块组成及各模块的功能和原理,并利用VHDL硬件描述语言,通过QuartusIⅡ软件对各模块进行了编写和仿真。第四章为时序仿真与实现,通过层次化、描述语言和图形输入相结合的方法将各模块整合为异步FIFO顶层模块,并通过QuartusⅡ软件的波形编辑器对其进行时序仿真和分析。第五章为硬件仿真与实现,连接外设及进行引脚分配后,将完成的异步FIFO顶层实体下载入开发板,并通过编写测试程序产生读写时钟及伪随机数输入数据,利用QuartusⅡ软件的嵌入式逻辑分析仪SignalTapⅡ对实物进行硬件仿真和分析,完成设计任务。最后结论对本次毕业设计进行了归纳和综合,概括了所取得的成果和存在的不足,以及对进一步开展研究的见解与建议。4第二章异步FIFO设计要求及基本原理本课题使用EP2C5T144C8N核心板最小系统设计一个RAM深度为128bit,写信号是否有效,有效则写入一个八位数据到RAM中;当读时钟脉冲上升沿到来时,判断读信号是否有效,有效则从RAM中把一个八位数据读取出来。当据读空时产生一个读空标志,不能再从RAM读出数据。管脚名称方向说明复位,低电平有效写使能,高电平有效写时钟读时钟读空标志写满标志Data[7..0]52.2异步FIFO基本原理异步FIFO主要由双端口RAM和读写控制逻辑及空满标志产生逻辑构成,其基本结构图如图2-2所示。图2-2异步FIFO基本结构图由结构图可以看出该系统为环状结构,存在两个完全独立的时钟域——写时钟域和读时钟域。异步FIFO的存储介质是一块双端口RAM,可以同时进行读写操作。在写时钟域,写地址产生逻辑产生写地址和写控制信号,在读时钟域,读地址产生逻辑产生读地址和读控制信号。空满标志产生逻辑通过比较同步后的读写地址来产生空满标志信号,同时,产生的空满标志信号又和输入的读写使能信号一起控制读写时钟域进行读写操作。2.3异步FIFO设计难点异步FIFO设计存在两个难点:一是如何同步异步信号,降低亚稳态发生概率;二是如何正确产生存储器的空满标志8。其中如何正确产生存储器的空满标志在下一章节有详细介绍。亚稳态是一种物理现象,必然发生在异步FIFO电路中。在数字电路中,触发器必须满足建立和保持的时间要求,然而在实际电路中,电路的外部输入和内6部时钟完全独立,存在很大可能性出现不满足建立和保持的时间要求的情况,另外,由于在电路内部的两个毫无关系的时钟域之间进行信号传递,也可能出现不满足建立和保持的时间要求的情况。这种情况会使系统中存在未知态,输出将有可能是逻辑0或者逻辑1,或者是介于两者之间的任何值,这个过程称为亚稳态。由于亚稳态使物理系统产生了一种不可预知性,所以亚稳态是很危险的。虽然亚稳态没法避免,但可以通过下面两种方法降低亚稳态发生的概率¹2:(1)对读写地址使用格雷码计数器。格雷码是一种错误最小化的编码方式,使用格雷码计数器进行计数时,每一次计数增加只有一位数据位改变,而使用自然二进制码计数时,每一次计数增加都可能造成多位数据位的变动,这就使得数据位变动时,格雷码计数器发生亚稳态的概率大大低于自然二进制码计数器。(2)使用触发器同步异步信号。使用触发器同步或者增加冗余可以很好的降低亚稳态发生的概率,本课题采用D触发器二级同步方式,同步电路图如图2-3所示。当且仅当Q₁的跃变非常接近时钟沿的时候,Q₂才会进入亚稳态2,这就大大提高了系统的可靠性。根据异步FIFO基本原理,本课题可采用层次化、描述语言和图形输入相结合的方法设计异步FIFO电路,该系统可分为同步模块、格雷码计数模块、格雷码/自然码转换模块、空满标志产生模块和双端口RAM几部分组成。72.5异步FIFO验证方案根据异步FIFO的基本原理和本课题的设计方案,若所设计的异步FIFO电路能实现如下预期设计功能,则该异步FIFO电路符合设计要求。将系统运行后,若按下复位键,无论读写使能信号处于什么状态,读写操作都不进行,数据输出始终不变,异步FIFO处于读空状态。系统复位后,将写使能置位,读使能复位,则系统只能进行写操作写入数据,所以经过一段时间后由于双端口RAM存储器存储单元被写满,异步FIFO应该始终处于写满状态,数据输出始终不变。系统复位后,将读使能置位,写使能复位,则系统只能进行读操作读取数据,由于双端口RAM存储器存储单元数据被读空,异步FIFO应该始终处于读空状态,数据输出始终不变。2.5.4验证异步FIFO电路整体功能系统复位后,将读写使能均置位,系统能同时进行读写操作。若输入的异步读时钟频率大于写时钟频率,则读操作快于写操作,异步FIFO间歇性处于读空状态,但始终不处于写满状态,输出数据队列应与输入数据队列相同以实现先入先出的功能,但会有一定的延时;若输入的异步读时钟频率小于写时钟频率,则写操作快于读操作,异步FIFO间歇性处于写满状态,但始终不处于读空状态,输出数据队列也应与输入数据队列相同以实现先入先出的功能,但也会有一定的延时。8第三章模块设计与实现3.1格雷码计数器模块为了降低亚稳态发生的概率,本课题将读、写地址转化为格雷码进行计数,由于格雷码是一种错误最小化编码方式,它在任意相邻的两个数间转换时只有一个数位发生变化,其发生亚稳态的可能性远低于自然二进制码,大大增加了电路的可靠性。另外,为了准确的判断存储器的空满状态,本课题使用5bit的格雷码计数器,这在后面的空满标志产生模块章节有详细介绍。5bit格雷码计数器模块的VHDL设计程序见附录。程序编译成功后生成的格雷码计数器模块如图3-1所示,利用QuartusⅡ软件的波形编译器对该模块进行时序仿真,其仿真波形如图3-2所示。clkaddr_gray[曼2图3-25bit格雷码计数器仿真波形3.2同步模块为了降低亚稳态发生的概率,本课题使用前章所介绍D触发器二级同步将异步信号同步化。在空满标志模块判断写满标志时,同步模块将读指针与写时钟同步后,和写指针比较产生写满标志;判断读空标志时,同步模块将写指针与读时钟同步后,和读指针比较产生读空标志。同步模块的VHDL设计程序见附录。程序编译成功后生成的同步模块如图3-3所示,利用QuartusⅡ软件的波形9编辑器对该模块进行时序仿真,其仿真波形如图3-4所示。从仿真波形可以看出,该模块将输入的异步码与输入时钟同步后输出同步码,由延时时间可以看出其满足二级同步要求。图3-3同步模块01田addr_in7田temp田addr_outY1虽然为了降低亚稳态发生概率而使用格雷码对读、写地址进行转换,但在双端口RAM进行存储和空满产生模块进行读写地址比较时仍使用自然二进制码,所以在异步地址信号同步后,仍需将格雷码地址转换回自然二进制码。n位格雷码转换为自然二进制码的法则为:Bn=Gₙ,Bi=G;④Bi+1(i≠n),其中G表示格雷码,B标志自然二进制码。格雷码/自然码转换模块的VHDL设计程序见附表。程序编译成功后生成的格雷码/自然码转换模块如图3-5所示,利用QuartusⅡ软件的波形编辑器对该模块进行时序仿真,其仿真波形如图3-6所示。图3-5格雷码/自然码转换模块00101□ps80.0ns06图3-6格雷码/自然码转换模块仿真波形空满标志产生模块是整个异步FIFO系统的核心部分,该模块设计的好坏直接决定了该异步FIFO的性能。空满标志产生的基本原则是无论在什么情况下,都不会出现存储器对同一存储地址同时进行读写操作的情况,也就是存储器写满后不产生溢出,读空后不进行多读2。对于同步的FIFO系统,读写操作同时从存储单元起始位置开始进行读写操作,每进行完一次读写操作后,控制指针就增加一位,指向下一个存储单元,直到下一次时钟沿到来后存储器对该存储单元进行一次读写操作,然后指针继续增加。当指针移动到最后一个存储单元后,它又重新回到起始位置继续进行读写操作。由于同步FIFO读写操作同时进行,所以存储器始终处于非空和非满的状态,读写操作可以一直进行。对于异步FIFO系统,有两个独立的控制指针——读指针和写指针,读操作和写操作独立运行。然而当存储器存储空间被读空后,若继续读取数据则会造成多读,使一个无用的信号被读出;当存储器存储空间写满后,若继续写入数据则会产生溢出,造成一个有用的数据被覆盖。为了避免这种情况发生,异步FIFO系统对存储器设置了读空和写满两个状态标志。当存储器读空后,读空标志置位,暂停读操作继续读取数据,但仍可以执行写操作;当存储器写满后,写满标志置位,暂停写操作继续写入数据,但仍可以执行读操作。按照此原理,当全局复位信号复位后,异步FIFO应该处于读空状态。由上述原理可以知道,当读指针和写指针不相等时,读写操作互不干扰,异步FIFO处于非空和非满的状态。当读指针和写指针相等时,FIFO要么处于读空状态,要么处于写满状态。那么该怎么判断异步FIFO究竟处于什么样的状态呢?判断的方法有很多,本课题使用读写指针比较的方法,通过额外增加状态标志位来判断究竟是读指针追赶写指针输出读空标志,还是写指针追赶读指针输出写满标志。本课题设计的异步FIFO存储深度为128bit,那么读写指针应有4个地址位,本设计使用5bit的读写指针,其最高位作为额外增加的状态标志位,剩下的低4位为地址位。地址位随着相应的读(写)操作的进行依次递增,当读(写)作比读操作多进行了一次循环,此时异步FIFO处于写满状态。空满状态的行为full<='1'when(wr_addr(4)/=rd_addr(4))and(wr_addr(3downto0)=rd_addr(3downto0))能正在发生,写指针仍在变化,但这从读操作的角度是“看不到的”;同理从写上可能未满。上述的情况被称为保守的报告,当FIFO未空时判定FIFO读空,而阻止读操作的继续进行;当FIFO未满时判定FIFO写满,而阻止写操作的继而不去阻止读操作或写操作的进行将会出现多读或溢出的错误,影响异步FIFO的性能2。读空、写满状态判定的VHDL设计程序分别见附录。空满标志产生模块的顶层设计电路如图3-7所示,其中empty_cmp模块和成功后生成的空满标志产生模块如图3-8所示。□□05和e和emmwr 图3-8空满标志产生模块3.5双端口RAM(1)打开MegaWizardPlug-InManager对话框,选择“Createmegafunctionvariation”定制新的宏功能模块。(2)定制完新的功能模块后选中Memorycompiler下的RAM:2-PORT生成双端口RAM。然后选择CycloneⅡ器件和VHDL文件格式,输入RAM存放路径和模块名。(3)生成RAM后在RAM功能设置界面的ram端口点击“Withonereadportandonewriteport”,选择一个读端口和一个写端口。存储方式选择bit方式,即“Asanumberofbits”。(4)双端口RAM的存储深度选择128bit,数据线宽度选择8bit。(5)设置完存储深度和数据宽度后进入时钟设置界面,选择独立的读写时钟,并添加读使能。(6)在寄存器设置界面选中“Whichportsshouldberegistered?”栏下第三个选择框,增加输出寄存器。(7)定制生成的双端口RAM外部接口如图3-9所示。第四章时序仿真与实现该系统被分为同步模块、格雷码计数模块、格雷码/自然码转换模块、空满标志测试。将各模块整合后的异步FIFO电路的顶层实体如图4-1所示,其中gray模满标志产生模块,dram模块是双端口RAM。..图4-图4-1异步FIFO顶层电路图11RR用用55愿愿a*a*844.2时序仿真及功能测试本课题使用QuartusIⅡ9.0软件的波形编辑器对设计的异步FIFO电路进行时序仿真,并根据仿真波形对各模块功能进行测试,确认该异步FIFO是否满足设计要求。对于复位功能的时序仿真测试波形如图4-2所示。从图中可以看出,当系统运行后,复位端置1,即不按下复位键时,异步FIFO系统正常工作;当复位端置0,即按下复位键后,无论读写使能信号处于什么状态,数据输出始终不变,异步FIFO处于读空状态。该仿真波形表明所设计的异步FIFO电路的复位键能控制系统的全局操作,复位功能达到了预期的设计要求。0235田data对于写操作功能的时序仿真测试波形如图4-3所示。从图中可以看出,将系统复位端置1,将写使能置位,读使能复位,经过一段时间后,数据输出始终不变,读空标志始终为0,写满标志始终为1,这表明异步FIFO电路始终处于写满状态。该仿真波形表明写使能端控制系统只进行写操作写入数据,由于不进行读操作,一段时间后双端口RAM存储器存储单元会始终处于写满状态,这表明所设计的异步FIFO电路的写操作功能达到了预期的设计要求。u1553X227XX246X15Xrd_elk因450123对于读操作功能的时序仿真测试波形如图4-4所示。从图中可以看出,将系统复位端置1,将写使能复位,读使能置位,数据输出始终不变,写满标志始终为0,读空标志始终为1,这表明异步FIFO电路始终处于读空状态。该仿真波形表明读使能端控制系统只进行读操作读取数据,由于不进行写操作,双端口RAM存储器存储单元会始终处于读空状态,这表明所设计的异步FIFO电路的读操作功能达到了预期的设计要求。012345田data田q4.2.4异步FIFO电路整体功能软件仿真对于异步FIFO电路整体功能的时序仿真测试波形如图4-5和图4-6所示,其中图4-5的输入的读时钟频率是写时钟频率的2倍,图4-6的输入的写时钟频率是读时钟频率的2倍。对于图4-5,将系统复位端置1,将读写使能均置位,一段时间后异步FIFO间歇性处于读空状态,但始终不处于写满状态,输出数据队列与输入数据队列相同,但会有一定的延时。这表明系统能同时进行读写操作,由于读操作速度快于写操作,所以异步FIFO只会处于读空状态,而不会进入写6于图4-6,将系统复位端置1,将读写使能均置位,一段时间后异步FIFO间歇性会有一定的延时。和图4-5相似,这同样表明系统同时进行了读写操作,由于写操作速度快于读操作,异步FIFO只会处于写满状态,而不会进入读空状态。输间的延时依然是由同步电路和程序的运行时间造成的。图4-5和图4-6的仿真波形表明所设计的异步FIFO电路的整体功能达到了预期的设计要求。6012345田data000124回data从上述时序仿真测试结果可以看出,该异步FIFO电路在硬件逻辑设计方面实现了所有的预期设计功能,能快速准确的判定FIFO存储器的空满状态,并能通过外部读写使能控制系统内部读写操作,实现宽度为8bit的数据队列在两个第五章硬件仿真与实现由于本课题使用EP2C5T144C8N核心板最小系统,其外设远不能满足设计要求,所以仍需焊接相应的外设电路板来连接开发板以完成异步FIFO电路的硬件实物设计。本课题除使用开发板自带的按键作为系统复位键外,仍需焊接两个拨动开关作为读写使能控制键,拨动开关原理图如图5-1所示。另外,在外设板上还需要焊接一定数量的引脚来作为相应的读写时钟输入端和数据输入输出端,焊接完成的外设电路板如图5-2所示。对于图5-2所示拨码开关,向上拨码为0,向下拨码为1,其中1号开关为写使能控制开关,2号开关为读使能控制开关,3、4号开关为预留的无用开关。开发板电路的(18-19,A-C)区域引脚为写时钟输入引脚,(08-09,A-C)区域引脚为读时钟输入引脚,(26,M-O)区域引脚为Vcc引脚,(13-14,H)区域引脚为控制信号输入引脚,(01,M-O)区域引脚为接地引脚,(24-26,W-D(右))区域引脚为输入数据引脚,(18-19,C-E(右))区域引脚为写满状态(full)引脚,(08-09,C-E(右))区域引脚为读空状态(empty)引脚,(01-03,W-D(右))区域引脚为输出数据引脚。焊接好外设电路板后,将外设电路板使用杜邦线接入EP2C5T144C8N最小系统核心板。但在此之前,仍需对设计的异步FIFO电路进行相应的引脚分配,使系统下载入核心板后能按照设计要求正常工作,外设电路板也需根据引脚分配情况,将相应功能区域引脚接入核心板。本设计使用QuartusⅡ9.0软件里的PinPlanner工具栏分配电路引脚,分配完成后的引脚如表5-1所示。其中rst引脚分配为144引脚,其对应为核心板的自带按键,本设计使用此按键作为系统复位键。引脚分配完成后点击Settings工具栏,找到里面的Device选项栏,选中DeviceandPinOptions工具栏,将未用引脚设置为高阻态,防止未用引脚出现其他状态而对设计电路的功能测试产生干扰,将nCEO端口设置为I/O口。完成这些设置后点击StartCompilation进行编译,编译成功后电路图中各端口处显示相应的引脚编号如图5-3所示。表5-1异步FIFO电路引脚分配表PIN_134PIN_132PIN_126PIN_122PIN_120PIN_118PIN_114PIN_112PIN_141PIN_143PIN_135PIN_133PIN_129PIN_125PIN_121PIN_119PIN_115PIN_113PIN_139PIN_144PIN_142江苏科技大学本科毕业设计(论文)PIN_132W_3机和PIN_132W_3机和W例i4..dlrL8ray4.雪D.图5-3异步FIFO端口引脚分配完成5.3调试电路设计心板连接,连接完成后的异步FIFO电路硬件实物如图5-4所示。其中(18-19,W-D(右))区域引脚为输入数据端,(18-19,C-E(右))区域引脚为写满标志 (full)输出端,(08-09,C-E(右))区域引脚为读空标志(eW-D(右))区域引脚为输出数据端。若本课题所设计的异步FIFO电路达到设计要求,则将该硬件电路通电并使用Programmer工具,通过AS接口将设计电路下载入核本课题所设计完成的异步FIFO电路硬件实物。该异步FIFO电路能实现任意两个异步读写时钟输入,并在读写使能开关的控制下,能实现根据设计要求,该异步FIFO电路不自带异步时钟产生模块和输入数据产生模块,为了测试完成的异步FIFO硬件电路的功能是否达到设计要求,本课题仍需设计一个调试电路来产生异步的读写时钟信号和宽度为8bit的输入数据队列。为了不影响完成的异步FIFO硬件电路的功能,该调试电路使用另一块核心板装载运行,将调试电路输出的两个异步时钟和随机数据队列分别作为测试异步该调试程序使用PLL锁相环通过将核心板自带50MHz时钟进行1/2分频和1/4分频产生两个异步时钟输出,输出时钟频率分别为25MHz和12.5MHz,将这两个时钟输出连入外设电路板的读时钟和写时钟引脚区域即可作为异步FIFO硬件电路的异步读写时钟输入。PLL锁相环使用Altera的M该调试电路使用描述语言和图形输入相结合的方法设计一个宽度为8bit的据引脚区域即可作为异步FIFO硬件电路的数据输入。8bit伪随机数据队列产生模块的VHDL设计程序见附录。将调试电路异步时钟产生模块和伪随机数据产生模块整合后生成电路如图5-5所示,其中shuiji模块为伪随机数据产生模块。0120.0050.00instnclkO可0利用QuartusⅡ软件的波形编辑器对该调试电路进行时序仿真,其仿真波形如图5-6所示。从仿真波形可以看出该调试电路能准确有效的生成两个异步时钟信号和宽度为8bit的伪随机数据队列,其时序仿真结果达到设计要求。Nane013同前面章节异步FIFO电路引脚分配相似,使用QuartusⅡ9.0软件里的PinPlanner工具栏对调试电路分配引脚,引脚表如表5-2所示。其中inclk0引脚分配为17引脚,其对应为核心板的自带晶振。引脚分配完成后使用同样的方法将未用引脚设置为高阻态,将nCEO设置为I/O口,完成这些设置后点击StartCompilation进行编译,编译成功后电路图中各端口处显示相应的引脚编号如图5-7所示。PIN_134PIN_132PIN_126PIN_122PIN_120PIN_118PIN_114PIN_112PIN_17dkRasoIPlDcsPN_134QuartusⅡ软件中的嵌入式逻辑分析仪SignalTapⅡ对系统进行硬件仿真³。在New窗口选择SignalTapⅡLogicAnalyzerFile后生成SignalTapⅡ编辑窗口如图5-8所示。 ProjectProcesingToolhWindowypeAalame点击Instance栏里面的auto_signaltap_0,将其更名为check2,此名与所建工程名相同。之后在Node栏下面空白处双击弹出NodeFinder窗口,选择“Pins:all”后单击List按钮选中除inclk0外的所有结点。结点选择后,在SignalConfiguration栏的Clock处选择inclk0结点作为逻辑分析仪的工作时钟,接着在Data栏的SampleDepth处选择采样深度为128bit。参数设置完成后将SignalTapⅡ文件保存并编译。编译成功后,将用于装载调试电路的核心板通电,并通过USB-Blaster编程器连接电脑,然后利用SignalTapⅡ编辑窗口下载电路程序。单击右侧Setup按钮选择USB-Blaster编程器模式,之后单击下方的ScanChain按钮扫描核心板,若连接成功,则Device处会显示核心板的FPGA芯片型号,最后单击下方“...”按钮选中check2.sof文件,点击左侧下载标志进行下载。当文件下载完成后,核心板已可以实现调试电路的功能。然后点击AutorunAnalysis按钮对该调试电路进行硬件仿真,仿真波形如图5-9所示,从该仿真波形可以看出该调试电路能准确有效的生成两个异步时钟信号和宽度为8bit的伪随机数据队列,其硬件仿真结果同样达到设计要求。FileFileEditViewPrejectProcessingToolsWi”S0FManagtdtaec2adTypeAlas华华,0,2,,第,,,2,,,8,9,“,,50、7,,56.56,照够,70,77,7由上一小节设计的调试电路的时序仿真和硬件仿真结果可以看出,调试电路能产生两个异步时钟信号和深度为8bit的数据队列,完全达到了设计要求,能对该异步FIFO硬件电路的功能进行测试。根据调试电路的引脚分配情况,通过杜邦线将调试电路和异步FIFO硬件电路连接在一起后组成的异步FIFO功能测试电路实物如图5-10所示,其中上面的核心板和外设电路板一起组成异步FIFO硬件电路,下面的核心板为调试电路板。现通过QuartusⅡ软件中的嵌入式逻辑分析仪SignalTapⅡ对异步FIFO功能测试电路进行硬件仿真,通过仿真结果测试异步FIFO电路的各部分功能,判断其是否达到预期设计要求。异步FIFO功能测试电路的硬件仿真方法与5.3.6小节调试电路的硬件仿真相似。对于复位功能的硬件仿真测试波形如图5-11所示。从图中可以看出,当复位键按下后,复位端显示为0,系统复位,即使此时读写使能处于有效状态,数据输出始终不变,异步FIFO处于读空状态。该仿真波形表明所设计的异步FIFO硬件电路的复位键能控制系统的全局操作,复位功能达到了预期的设计要求。6……6…9…….……回对于写操作功能的硬件仿真测试波形如图5-12所示。从图中可以看出,将1号拨码开关置1,2号拨码开关置0,即写使能置位,读使能复位,经过一段时间后,数据始终无输出,读空标志始终为0,写满标志始终为1,这表明异步FIFO据,由于不进行读操作,一段时间后双端口RAM存储器存储单元会始终处于写满状态,这表明所设计的异步FIFO硬件电路的写操作功能达到了预期的设计要画③回对于读操作功能的硬件仿真测试波形如图5-13所示。从图中可以看出,将1号拨码开关置0,2号拨码开关置1,即写使能复位,读使能置位,经过一段时间后,数据始终无输出,写满标志始终为0,读空标志始终为1,这表明异步FIFO对于异步FIFO硬件电路整体功能的硬件仿真测试波形如图5-14和图5-15所示,其中图5-14的输入的读时钟频率为25MHz,写时钟频率为12.5MHz,图5-15的输入的写时钟频率为25MHz,读时钟频率为12.5MHz。对于图5-14,将1号拨码开关置1,2号拨码开关置1,即读写使能均置位,复位键不按下。一段时间后异步FIFO电路间歇性处于读空状态,但始终不处于写满状态,输出操作,但由于读操作速度快于写操作,所以异步FIFO只会处于读空状态,而不的运行时间造成的。同样对于图5-15,将1号拨码开关置1,2号拨码开关置1,复位键不按下。一段时间后异步FIFO电路间歇性处于写满状态,但始终不处于读空状态,输出数据队列与输入数据队列相同,但会有一定的延时。和图5-14FIFO只会处于写满状态,而不会进入读空状态。输出数据队列与输入数据队列相同,同样说明该异步FIFO硬件电路实现了先入先出依然是由同步电路和程序的运行时间造成的。图5-14和图5-15的硬件仿真波形表明所设计的异步FIFO硬件电路的整体功能达到了预期的设计要求。U画回回从上述硬件仿真测试结果可以看出,该异步FIFO电路在硬件实物设计方面也能满足所有的设计要求。该异步FIFO电路可以实现任意两个异步读写时钟输入,通过外部读写使能控制系统内部读写操作,并能快速准确的判定FIFO存储器的空满状态,实现宽度为8bit的数据队列在两个独立的异步时钟域之间进行综合时序仿真和硬件仿真结果可以证实本课题所设计的异步FIFO电路能满足设计要求,达到实验目的。撤除测试电路核心板,并使用Programmer工具,通过AS接口将设计电路下载入核心板后,该硬件电路即本课题所设计完成的RAM深度为128bit,数据宽度为8bit的异步FIFO电路实物。完成的异步FIFO实物电路如图5-16所示,外设电路板引脚功能与图5-4所示电路的引脚说明相所和厂商开发的FIFO电路还远不能满足市场和军事需求,所以对异步FIFO电路的研究非常具有意义。本课题基于FPGA技术对异步FIFO电路进行了研究,通过使用QuartusⅡ软件在CycloneⅡ系列的EP2C5T144C8N芯片的基础上,设计制作了一个RAM深度为128b果令人满意。针对异步FIFO电路,本次设计主要进行了以下几部分的研究:(1)通过前期对相关资料的搜集整理和学习,确定了异步FIFO电路的设计方案,并根据自己对异步FIFO基本原理的理解,归纳出系统的设计模块和预(2)由于异步FIFO电路主要表现为接口电路,输入的异步时钟和数据队就本次设计而言,本人认为对以下几个方面还有待改善和进行进一步的研(1)虽然设计增加了调试电路,但由于程序设计的原因,每次进行硬件测(2)由于调试电路装载在另外一块核心板上,这就增加了电路设计的成本和硬件测试时的复杂程度,可以考虑将调试电路模块整合到异步FIF这次毕业设计是对大学生活的一个告别仪式,也是对大学四年来的学习和工作的总结,在论文完成之际,我衷心感谢所有关心和帮助过我的良师益友。首先,我要由衷的感谢我的毕业设计指导教师秦怀宇老师
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年贵州贵阳市中考历史试题(附答案)
- 2025年广西壮族自治区崇左市八年级地理生物会考真题试卷(含答案)
- 2025年广西壮族自治区北海市初二地理生物会考题库及答案
- 2025年广东省珠海市八年级地生会考考试题库(附含答案)
- 2025年新疆维吾尔自治区吐鲁番市地理生物会考考试真题及答案
- 第6课《老山界》教学设计(内嵌视频) 2025-2026学年统编版语文七年级下册
- 口腔护理中的远程医疗服务
- 家政护理员烹饪营养学
- 2026年知识产权授权协议范本
- 妇女保健与护理
- GB/T 4706.27-2024家用和类似用途电器的安全第27部分:风扇的特殊要求
- DL∕T 1965-2019 回转式翻车机系统运行维护导则
- 公司及部门年度经营责任书(模板)
- MH-T 5002-2020运输机场总体规划规范
- 甲磺酸奥希替尼片-临床用药解读
- 医务人员职业风险与防护课件
- 9《那个星期天》课件
- 2024年山东中烟工业有限责任公司招聘笔试参考题库含答案解析
- 人口信息查询申请表(表格)
- 安徽省合肥市合肥第一中学2022-2023学年高一下学期期末物理试题
- 加氢裂化题库
评论
0/150
提交评论