Intel® Stratix® 10嵌入式存储器用户指南

ID 683423
日期 11/19/2019
Public
文档目录

4.3.2.4. FIFO信号

本节提供了FIFO Intel® FPGA IP核的SCFIFO和DCFIFO块的结构图,以帮助显示其输入和输出端口。本节还详细介绍了每个端口,来帮助了解它们的使用,功能或任何限制。为了更好说明,某些描述可能会建议您参阅本用户指南中的特定部分。
图 31. SCFIFO和DCFIFO输入和输出信号

对于SCFIFO模块,读和写信号同步到同一时钟;对于DCFIFO模块,读和写信号分别同步到rdclkwrclk时钟。前缀wrrd分别代表由wrclkrdclk时钟同步的信号。

表 33.  输入和输出端口描述下表列出了FIFO Intel® FPGA IP核的信号。术语“系列(series)”是指特定器件的所有器件系列。
端口 类型 是否需要 描述
clock 17 Input Yes 正边沿触发(positive-edge-triggered)时钟。
wrclk 18 Input Yes 正边沿触发(positive-edge-triggered)时钟。

用于同步以下端口:

  • data
  • wrreq
  • wrfull
  • wrempty
  • wrusedw
rdclk 18 Input Yes 正边沿触发(positive-edge-triggered)时钟。

用于同步以下端口:

  • q
  • rdreq
  • rdfull
  • rdempty
  • rdusedw
data 19 Input Yes wrreq信号置位时,保持要写入到FIFO Intel® FPGA IP核中的数据。如果手动例化FIFO Intel® FPGA IP核,则要确保端口宽度等于lpm_width参数。
wrreq 19 Input Yes 置位此信号以请求写操作。

确保满足以下条件:

  • full (SCFIFO)或者wrfull (DCFIFO)端口为高时,请勿置位wrreq信号。使能溢出保护电路或者将overflow_checking参数设置为ON,以便FIFO Intel® FPGA IP核能够自动禁用wrreq信号(已满时)。
  • wrreq信号必须满足基于full或者wrfull信号的功能时序要求。
  • aclr信号解除置位期间,请勿置位wrreq信号。违反该要求将会在aclr信号的下降沿与写时钟的上升沿之间产生一个竞争条件(如果wrreq端口设为高电平)。对于采用 Stratix® 目标器件系列的两个DCFIFO功能,您可以选择自动添加一个电路将aclr信号同步到wrclk时钟,或者将write_aclr_synch参数设置为ON。使用此选项可确保遵守限制。
rdreq 19 Input Yes 置位此信号以请求读操作。rdreq信号在正常模式和show-ahead模式下的行为有所不同。

要确保满足以下条件:

  • empty (SCFIFO)或者rdempty (DCFIFO)端口为高电平时,请勿置位rdreq信号。使能下溢保护电路或者将underflow_checking参数设置成ON,以便FIFO Intel® FPGA IP核能够自动禁止rdreq信号(为空时)。
  • rdreq信号必须满足基于empty或者rdempty信号的时序要求。
sclr 17

aclr 19

Input No 置位此信号清零所有输出状态端口,但是对于q输出的影响可能因不同的FIFO配置而有所不同。

对于必须保持在活动状态的aclr信号,没有最小时钟周期数。

q 19 Output Yes 显示从读取请求操作读取的数据。

对于SCFIFO功能和DCFIFO功能,q端口必须等于data端口的宽度。如果手动例化FIFO功能,则要确保端口宽度等于lpm_width参数。

对于DCFIFO_MIXED_WIDTHS功能,q端口的宽度可以与data端口的宽度不同。如果手动例化FIFO功能,那么要确保q端口的宽度等于lpm_width_r参数。FIFO功能支持具有狭窄读端口的宽阔写端口,反之亦然。但是,宽度比受RAM模块类型的限制,通常为2的幂。

full 17

wrfull 18

rdfull 18

Output No 置位时,视为FIFO Intel® FPGA IP核已满。FIFO Intel® FPGA IP核已满时不要执行写请求操作。

一般而言,rdfull信号是wrfull信号的延迟版本。 rdfull信号用作一个组合输出,而不是wrfull信号的一个衍生版本。因此,无论目标器件如何,您都要始终参考wrfull端口来确保是否能够执行一个有效的写请求操作。

empty 17

wrempty 18

rdempty 18

Output No 置位时,视为FIFO Intel® FPGA IP核已满。FIFO Intel® FPGA IP核已满时不要执行读请求操作。

一般而言,wrempty信号是rdempty信号的延迟版本。 wrempty信号用作一个组合输出,而不是rdempty信号的一个衍生版本。因此,无论目标器件如何,您都要始终参考rdempty端口来确保是否能够执行一个有效的读请求操作。

almost_full 17 Output No usedw信号大于或等于almost_full_value参数时置位此端口。此端口用作 full信号的早期指示。
almost_empty 17 Output No usedw信号小于almost_empty_value参数时置位此端口。此端口用作empty信号的早期指示。 20
usedw 17

wrusedw 18

rdusedw 18

Output No 显示存储在FIFO中的字数。

如果手动例化SCFIFO功能或者DCFIFO功能,那么要确保端口宽度等于lpm_widthu参数。对于DCFIFO_MIXED_WIDTH功能,wrusedwrdusedw端口的宽度必须分别等于LPM_WIDTHUlpm_widthu_r参数。

FIFO Intel® FPGA IP核都会显示已满。因此,无论目标器件如何,您都必须始终查看fullwrfull端口用于有效的写请求操作,而emptyrdempty端口用于有效的读请求操作。
注: 存储的数据可能无法读取。请参阅FIFO输出状态标记和延迟来了解"wrreq to empty"和"rdreq to empty"延迟,从而确保在读取FIFO之前数据已准备就绪。
eccstatus 21 Output No 2-bit宽纠错状态端口。指示从存储器中读取的数据是否存在single-bit with correction错误,fatal error with no correction错误或者未出现错误比特。
  • 00:无错误
  • 01:不合法
  • 10:出现一个可纠正错误,并且已在输出上纠正了此错误;但是,存储器阵列尚未更新。
  • 11:出现一个不可纠正错误,并且不可纠正的数据出现在输出上。

置位aclr输入时,DCFIFO功能rdempty输出可能会暂时出现故障。为防止外部寄存器错误捕获此故障,请确保满足以下条件之一:

  • 外部寄存器必须使用连接到DCFIFO功能的aclr输入的相同复位,或者
  • 连接到DCFIFO功能的aclr输入的复位必须同步置位到驱动外部寄存器的时钟。

FIFO Intel® FPGA IP核的输出延迟信息非常重要,尤其是对于q输出端口,因为没有输出标记指示输出何时有效并且可进行采样。

17 仅应用于SCFIFO功能。
18 仅应用于两个DCFIFO功能。
19 应用于SCFIFO,DCFIFO和DCFIFO_MIXED_WIDTH功能。
20 在特定条件下,SCFIFO置位empty信号,而不会置位almost_empty信号。请参阅SCFIFO ALMOST_EMPTY功能时序了解详细信息。
21 不适用于DCFIFO_MIXED_WIDTHS功能。