fpga 中软 fifo 设计和实现

18
SA10225517 王王 FPGA 中中 FIFO 中中中中中

Upload: loc

Post on 11-Jan-2016

194 views

Category:

Documents


3 download

DESCRIPTION

FPGA 中软 FIFO 设计和实现. SA10225517 王瑜. 需求与目标. 随着 计算机 、 多媒体 和 数据通信技术 的高速发展, 数字图像 、 语音 等数据传输技术近年来得到了极大的重视和长足的发展,并取得了广泛的应用。. 需求与目标. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: FPGA 中软 FIFO 设计和实现

SA10225517王瑜

FPGA 中软 FIFO 设计和实现

Page 2: FPGA 中软 FIFO 设计和实现

需求与目标

随着计算机、多媒体和数据通信技术的高速发展,数字图像、语音等数据传输技术近年来得到了极大的重视和长足的发展,并取得了广泛的应用。

Page 3: FPGA 中软 FIFO 设计和实现
Page 4: FPGA 中软 FIFO 设计和实现

需求与目标 信息社会每时每刻要接触大量的数据 , 如监控、摄像、雷达跟踪、机载拍摄等 , 要从众多的信息中获取有用的数据进行相关的分析和处理 , 就需对数据进行存储。随着信息获取技术水平的提高和对获得的数据质量要求的提高 , 高速数据的存储也因其数据量巨大 , 数据输出速率快等因素 , 成为一个不易解决的问题。

Page 5: FPGA 中软 FIFO 设计和实现

需求与目标• 在现代的集成电路芯片中,随着

设计规模的不断扩大,一个系统中往往含有数个时钟。多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路。异步 FIFO ( First In First Out )是解决这个问题一种简便、快捷的解决方案。

使用异步 FIFO 可以在两个不同时钟系统之间快速而方便地传输实时数据。在网络接口、图像处理等方面,异步FIFO 得到了广泛的应用。

Page 6: FPGA 中软 FIFO 设计和实现

方案比较• 主要列举 ASIC 和 FPGA 两种实现方法ASIC 相对于 FPGA 的优势:功耗极低,抗

干扰能力强,单位价格便宜,可靠性高 ,设计密度大。

FPGA 与 ASIC 相比的优势:设计周期段,开发成本低,设计灵活,可移植性好

Page 7: FPGA 中软 FIFO 设计和实现

方案选择针对 FPGA 开放周期短,设计成本低等特

点,结合实验室的硬件资源,选用 Xilinx公司的 Virtex-5 来实现异步 FIFO 的功能。

运用 Modelsim 6.5a 前期功能设计,后期运用 Xilinx ISE 10.1 对系统进行综合实现和仿真

编程语言选用 Verilog HDL

Page 8: FPGA 中软 FIFO 设计和实现

FPGA 芯片 Modelsim 仿真软件 Ise 综合软件

Page 9: FPGA 中软 FIFO 设计和实现

实现功能• FIFO 的功能为 : 在写满标志无效时 (

为低电平 ) , 只要写使能信号有效就可以把数据写入 FIFO 中 , 一直到写满它的存储空间为止 , 这时写满标志为高表明不允许再写 ; 当读空标志无效时 , 读使能信号有效 ,数据可以一个一个读出 , 最先写入的数据最先读出 ( 读出一个数据 FIFO 中就少一个 ) , 直到 FIFO 中没有数据为止 , 此时读空标志有效为高电平 , 不允许再读。

Page 10: FPGA 中软 FIFO 设计和实现

Fifo 结构框图

Page 11: FPGA 中软 FIFO 设计和实现

整个系统分为两个完全独立的时钟域——读时钟域和写时间域; FIFO 的存储介质为一块双端口 RAM ,可以同时进行读写操作。在写时钟域部分,由写地址产生逻辑产生写控制信号和写地址;读时钟部分由读地址产生逻辑产生读控制信号和读地址。在空 /满标志产生部分,由读写地址相互比较产生空 /满标志。 双端口 RAM 是用来存储数据的 , 它的读和写是两个独立的过程 ,互不干扰。满空标志模块用来产生写满、读空标志 ,该模块的功能还包括实现读写地址的同步比较和二进制与格雷码的转换。

框图介绍

Page 12: FPGA 中软 FIFO 设计和实现

FIFO 功能模块图

Page 13: FPGA 中软 FIFO 设计和实现

wdata :输入数据端口; rdata :输出数据端口

rinc : 读使能端,当 rinc=1 时,可以读出数据

rclk : 读时钟, rclk 上升沿时才能读出数据

winc : 写使能端,当 rinc=1 时,可以写入数据

wclk : 写时钟, wclk 上升沿时才能写入数据

rst_n : 清零端, rst_n=0 时,读写都被清零(即:读写地

址指针都指向 0 )

full : FIFO 状态信号, full=1 时,表明该 FIFO 存储器已

经写满

empty : FIFO 状态信号, empty=1 时,表明该 FIFO 存储

器已经读空

模块端口说明

Page 14: FPGA 中软 FIFO 设计和实现

技术要点

1.避免亚稳态的产生

2.产生正确的空、满标志

Page 15: FPGA 中软 FIFO 设计和实现

亚稳态•亚稳态: 在涉及到触发器的电路中,亚稳态无法彻底消除,只能想办法将其发生的概率降到最低。一种有效的方法就是使用格雷码。格雷码在相邻的两个码元之间只由一位变换 (二进制码在很多情况下是很多码元在同时变化 )。这就会避免计数器与时钟同步的时候发生亚稳态现象 。

Page 16: FPGA 中软 FIFO 设计和实现

空 / 满标志• 空 /满标志产生的原则是:写满不溢出,读

空不多读。即无论在什么情况下都不应出现读写地址同时对一个存储器地址操作的情况。

在读写地址相等或相差一个或多个地址的时候,满标志应该有效,表示此时 FIFO已满,外部电路应对 FIFO 发数据。在满信号有效时写数据,应根据设计的要求,或保持、或抛弃重发。

Page 17: FPGA 中软 FIFO 设计和实现

系统模块化连接图

Page 18: FPGA 中软 FIFO 设计和实现