eda课程设计89先进先出FIFO缓冲器

上传人:pu****.1 文档编号:476887790 上传时间:2023-03-13 格式:DOC 页数:22 大小:360KB
返回 下载 相关 举报
eda课程设计89先进先出FIFO缓冲器_第1页
第1页 / 共22页
eda课程设计89先进先出FIFO缓冲器_第2页
第2页 / 共22页
eda课程设计89先进先出FIFO缓冲器_第3页
第3页 / 共22页
eda课程设计89先进先出FIFO缓冲器_第4页
第4页 / 共22页
eda课程设计89先进先出FIFO缓冲器_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《eda课程设计89先进先出FIFO缓冲器》由会员分享,可在线阅读,更多相关《eda课程设计89先进先出FIFO缓冲器(22页珍藏版)》请在金锄头文库上搜索。

1、word课程设计任务书学生某某: 专业班级:指导教师: 工作单位: 信息工程学院 题 目: 89先进先出FIFO缓冲器 一、 设计目的根据设计要求,完成对89先进先出FIFO缓冲器的设计。进一步加强对Quartus的应用和对VHDL语言的使用。二、设计内容和要求设计一个89先进先出FIFO缓冲器,9位字深,8位字宽;当读信号ready有效时,FIFO的输出data_out使能;当ready无效时,FIFO的输出处于高阻态;当写信号write有效时,8位宽的存放器进展写操作,信号rdinc和wrinc被用来作为存放器读和写指针递增,以指示该位存放器的读和写。信号rdptclr和wrptclr复位

2、读写指针指向FIFO的第一个存放器。data_in是将被载入到一个存放器的数据。掌握Quartus的操作和使用方法。利用Quartus软件对所设计的电路进展仿真分析。 三、初始条件CPLD,按键,时钟信号,拨码开关等。四、时间安排1、2016年01月11日,课程设计任务布置、选题、查阅资料。2、2016年01月13日,设计,软件编程、仿真和调试。3、2016年01月16日至2015年01月21日,设计的硬件调试。4、2016年01月22日,机房检查设计成果,提交设计说明书与辩论。指导教师签名: 2016年 01 月 22日系主任或负责教师签名: 2016年 01 月 22日 / 目录摘要I绪

3、论11112.FIFO52.1 FIFO的使用52.2 FIFO的参数52.3 FIFO的分类与设计63.先进先出缓存器设计73.1 设计思想73.2 各局部模块73.2.1 先入先出缓存器73.2.2 消抖电路83.2.3 分频电路93.2.4 顶层原理图94.仿真与硬件调试104.1 缓冲器仿真104.2 缓存器硬件测试105.心得体会115.参考文献12附录13摘要本文介绍了先进先出FIFO缓存器的设计方法,主要阐述如何使用新兴的EDA器件取代传统的电子设计方法。利用FPGA的可编程性,拥有简洁而又多变的设计方法。本设计实现了先进先出缓存器的一些根本功能,也把一些新的思路参加到设计中。主

4、要包括采用了FPGA芯片,使用Quartus中的VHDL语言进展编程。VHDL是一个标准语言,其具有良好的移植性,值得本设计更为灵活,从而更有利于产品升级。关键词:VHDL;FIFO;缓存器;Quartus;绪 论当前电子系统的设计正朝着速度快,容量大,体积小,质量轻,用电省的方向开展。推动该潮流迅速开展的决定性因素就是使用了现代化的EDA设计工具。EDA是电子设计自动化(Electronic Design Automation)的缩写,是90年代初,从CAD计算机辅助没计、CAM算机辅助制造、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念开展而来的。EDA技术就是以计算机为工具,在

5、EDA软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合与优化、逻辑行局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作1。设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改正程如同完成软件设计一样方便和高效。高速开展的CPLD/FPGA器件又为EDA技术的不断进步奠定可坚实的物质根底。CPLD/FPGA器件更广泛的应用与厂商间的竞争,使得普通的设计人员获得廉价的器件和EDA软件成为可能。VHDL

6、是一种全方位的硬件描述语言,包括系统行为级、存放器传输级和逻辑门级多个设计层次,支持结构、数据流和行为3种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。另外,VHDL还有以下优点:VHDL的宽X围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL可以用简洁明确的代码描述来进展复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL的设计不依赖于特定的器件,方便了工艺的转换。根据设计要求,完成对89先进先出FIFO缓

7、冲器的设计。进一步加强对Quartus的应用和对VHDL语言的使用。1设计一个89先进先出FIFO缓冲器,9位字深,8位字宽;当读信号ready有效时,FIFO的输出data_out使能;当ready无效时,FIFO的输出处于高阻态;当写信号write有效时,8位宽的存放器进展写操作,信号rdinc和wrinc被用来作为存放器读和写指针递增,以指示该位存放器的读和写。信号rdptclr和wrptclr复位读写指针指向FIFO的第一个存放器。data_in是将被载入到一个存放器的数。2. 掌握Quartus的操作和使用方法。3利用Quartus软件对所设计的电路进展仿真分析。 FIFO( Fir

8、st In First Out)简单说就是指先进先出。由于微电子技术的飞速开展,新一代FIFO芯片容量越来越大,体积越来越小,价格越来越廉价。作为一种新型大规模集成电路,FIFO芯片以其灵活、方便、高效的特性,逐渐在高速数据采集、高速数据处理、高速数据传输以与多机处理系统中得到越来越广泛的应用。2.1 FIFO的使用FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端时AD数据采集,另一端时计算机的PCI总线,假设其AD采集的速率为16位100K SPS,那么每秒的数据量为100K16bit=1.6Mbps,而PCI总线的速度为33MHz,总线宽度32bit,其最大传输速率为1056M

9、bps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIFO,例如单片机位8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。2.2 FIFO的参数FIFO的宽度:也就是英文资料里常看到的THE WIDTH,它只的是FIFO一次读写操作的数据位,就像MCU有8位和16位,ARM 32位等等,FIFO的宽度在单片成品IC中是固定的,也有可选择的,如果用FPGA自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。FIFO的深度:THE DEEPTH,它指的是FIFO可以存储多少个N位的数据如果

10、宽度为N。如一个8位的FIFO,假如深度为8,它可以存储8个8位的数据,深度为12 ,就可以存储12个8位的数据,FIFO的深度可大可小。一般来说根据电路的具体情况,在兼顾系统性能和FIFO本钱的情况下估算一个大概的宽度和深度就可以了。而对于写速度慢于读速度的应用,FIFO的深度要根据读出的数据结构和读出数据的由那些具体的要求来确定。在FIFO实际工作中,其数据的满/空标志可以控制数据的继续写入或读出。满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出overflow。空标志:FIFO已空或将要空时由FIFO的状态电路送出的

11、一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出underflow。读时钟:读操作所遵循的时钟,在每个时钟沿降临时读数据。写时钟:写操作所遵循的时钟,在每个时钟沿降临时写数据。读指针:指向下一个读出地址。读完后自动加1。写指针:指向下一个要写入的地址的,写完自动加1。读写指针其实就是读写的地址,只不过这个地址不能任意选择,而是连续的。2.3 FIFO的分类与设计根均FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿降临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。FIF

12、O设计的难点在于怎样判断FIFO的空/满状态。为了保证数据正确的写入或读出,而不发生益处或读空的状态出现,必须保证FIFO在满的情况下,不能进展写操作。在空的状态下不能进展读操作。怎样判断FIFO的满/空就成了FIFO设计的核心问题。一般是异步FIFO有空/满标志所产生问题,但是在本次设计中暂不讨论这个问题。图2.1 FIFO连接模式3 先进先出缓存器设计先进先出法是指根据先入库先发出的原如此,对于输出的数据以先输入存储器的数据为依据。3.1 设计思想 在缓冲器内部定义一个89的存储空间用于暂存数据。初始状态读写指针都指向0号数存放器共8个。当输入通道打开时,每来一个脉冲由外部按键提供,向缓冲

13、期内输入一个9位的数,与此同时内部存放器读指针加1,准备承受下一个需要暂存的数,下一个脉冲到来,再存一个数,读指针再加1当输出通道打开时,每来一个脉冲输出一个9位数,写指针加1,准备输出下一个9位数,同理进展下一个数的输出由于输入/输出数据是按需进展的,故设计脉冲由按键提供,为更好的进展控制,加一个消抖电路使其每按一次内部计数确定加1。3.2 各局部模块本设计共由三个局部组成:先入先出缓存器、消抖模块、分频器。3.2.1 先入先出缓存器这是整个设计的核心模块,其输入输出端口设置如下:ready:控制输出通道,当其为1时,输出通道打开,可以进展读操作。writey:控制输入通道,当其为1时,输入

14、通道打开,可以进展写操作。rdptclr,wrptclr:缓冲器内部读写指针,用于规X内部存放器编号07的使用,两指针初始状态都指向0存放器。当写入第一个数据时,数据存入0存放器,同时写指针加1,指向下一个存放器,准备承受下一个将被写入的数据。在需要读出数据时,打开输出通道,同时由脉冲控制输出数据,每输出一个数据,读指针加1,准备输出下一个数据,同时输出数据以输入数据的个数为顶限。clk:脉冲控制输入,控制数据的写入和读出。data_in:放置将被输入的数据。data_out:用于输出数据的通道。readit:控制读取输入数据。编写的程序见附录。生成元件后如图3.1所示:图3.1 FIFO元件

15、图3.2.2 消抖电路本设计用外部按键产生脉冲来控制输入输出数据的个数,每一个脉冲对应一个数据,同时对应内部存放器的移位。为了保证数据输入顺序与数据输出顺序完全一样,要保证每按键一次只产生一个脉冲。通常的按键在闭合与断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5ms10ms。为确保电路对按键的一次闭合仅作一次处理,必须去除按键抖动。:图3.2 消抖模块原理图3.2.3 分频电路为了配合消抖电路,取延时为5ms,即使得采样频率为5ms,由此根据f=1/T,算得脉冲频率为200Hz,而实验箱上提供的是20M的时钟频率,故要对时钟进展分频。程序中用内部计数器计算到来的脉冲数,脉冲数小于50000时输出为0,否如此输出为1,同时计到100000时计数器清零。同理,将分频器生成元件,供顶层原理图使用。生成元件如图3.3所示:图3.3 分频器元件图3.2.4 顶层原

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号