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

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

4.3.2.5. FIFO参数设置

表 34.  FIFO参数
参数 类型 是否需要 描述
lpm_width 整数 Yes 对SCFIFO功能和DCFIFO功能指定dataq端口的宽度。对于DCFIFO_MIXED_WIDTHS功能,此参数仅指定data端口的宽度。
lpm_width_r 22 整数 Yes 对DCFIFO_MIXED_WIDTHS功能指定q端口的宽度。
lpm_widthu 整数 Yes 指定SCFIFO功能usedw端口的宽度, 或者指定DCFIFO功能rdusedwwrusedw端口的宽度。对于DCFIFO_MIXED_WIDTHS功能,它仅代表wrusedw端口的宽度。
lpm_widthu_r 22 整数 Yes 指定DCFIFO_MIXED_WIDTHS功能rdusedw端口的宽度。
lpm_numwords 整数 Yes 指定需要的FIFO深度。此值必须至少为4

分配的值必须符合以下公式:

2^LPM_WIDTHU

lpm_showahead 字符串 Yes 指定FIFO处于normal模式(OFF)还是show-ahead模式(ON)。请参阅SCFIFO and DCFIFO Look-Ahead Mode部分有了解有关详细信。

如果将此参数设为ON,则可能会降低性 能。

lpm_type 字符串 No 标识参数化模块(LPM)实体名称库。值为SCFIFO DCFIFO
lpm_hint 字符串 No

这是一个旧参数,用于以下设置:

  1. 最大深度。使用“MAXIMUM_DEPTH=<depth>”设置需要的最大深度。如果忽略此参数,则允许 Intel® Quartus® Prime软件自动选择SCFIFO中使用的RAM的最大深度。
  2. RAM模块类型。通过“RAM_BLOCK_TYPE=<M20K|MLAB|AUTO>”选择RAM模块类型。默认值为AUTO
  3. 禁用Embedded Timing Constraint。这是DCFIFO必须设置的一个参数,此参数禁用FIFO Intel® FPGA IP中的旧set_false_path。将“DISABLE_EMBEDDED_TIMING_CONSTRAINT=TRUE”添加到lpm_hint, 进行DCFIFO IP中的synchronizer路径上的正确时序分析。

选项之间应用逗号连接,并用双引号引起来。例如:

lpm_hint = ”MAXIMUM_DEPTH=512, RAM_BLOCK_TYPE=M20K”

overflow_checking 字符串 No 指定是否使能保护电路进行上溢检查,该电路在FIFO Intel® FPGA IP核已满时,会禁用wrreq端口。值为ON或者OFF。如果忽略,则默认值为ON
underflow_checking 字符串 No 指定是否使能保护电路进行下溢检查,该电路在FIFO Intel® FPGA IP核已满时,会禁用rdreq端口。值为ON或者OFF。如果忽略,则默认值为ON

请注意,从空SCFIFO读取,会产生不可预测的结果。

enable_ecc 23 字符串 No 指定是否使能错误检查和纠正(ECC)功能,该功能可纠正单个位错误,双邻位错误以及检测存储器输出上的三邻位错误。此选项仅适用于使用M20K存储器模块类型。

默认情况下,ECC为禁用。

delay_wrusedw 24

字符串 No 使用相应的参数指定内部添加到rdusedw或者wrusedw端口的寄存器阶数(number of register stages)。

默认值1是将一个寄存器阶段添加到输出以提高其性能。增加此参数值不会增加最大系统速度。它只会对相应的输出端口增加额外的延迟。

add_usedw_msb_bit 24 字符串 No rdusedwwrusedw端口的宽度增加一个位。通过增加此宽度,可防止FIFO Intel® FPGA IP核满后滚动到零。该值为ON或者OFF。如果忽略,则默认值为OFF。
rdsync_delaypipe 24

wrsync_delaypipe 24

整数 No 指定跨时钟域中的同步阶段数(number of synchronization stages)。rdsync_delaypipe参数的值将同步阶段从写控制逻辑与读控制逻辑相关联;wrsync_delaypipe参数将同步阶段从读取控制逻辑与写入控制逻辑相关联。如果时钟不同步,那么使用这些参数设置同步阶段数,并将clocks_are_synchronized参数设置为FALSE

实际实现的同步阶段与各个不同的分配参数值相关,具体取决于目标器件。

这些参数的值从内部每次减去2。因此,这些参数的默认值3对应于单个同步阶段;值4产生两个同步阶段,依此类推。选择至少4(两个同步阶段)以进行亚稳保护。

use_eab 字符串 No 指定是否使用RAM模块构建FIFO Intel® FPGA IP核。值为ON或者OFF

将此参数值设置为OFF会产生在ALM中实现的FIFO Intel® FPGA IP核,无论分配给ram_block_type参数的TriMatrix存储器模块类型如何。

默认情况下此参数为使能。将使用ram_block_type中指定的RAM模块实现FIFO。

write_aclr_synch 24 字符串 No 指定是否添加一个电路,使aclr端口由wrclk时钟内部同步。加入该电路可防止wrreqaclr端口之间产生破坏FIFO Intel® FPGA IP核的竞争条件。

值为ON或者OFF。如果忽略,则默认值为OFF

read_aclr_synch 24 字符串 No 指定是否添加一个电路,使aclr端口由rdclk时钟内部同步。加入该电路可防止rdreqaclr端口之间产生破坏FIFO Intel® FPGA IP核的竞争条件。

值为ON或者OFF。如果忽略,则默认值为OFF

clocks_are_synchronized 24 字符串 No 指定写时钟和读时钟是否同步,另一方面又反过来决定使FIFO稳定运行需要增加的内部同步阶段数。值为TRUEFALSE。如果忽略,则默认值为FALSE。只有在写时钟和读时钟始终保持同步并且它们是彼此的倍数时,才必须将参数设置为TRUE。否则,请将其设置为FALSE以避免出现亚稳性问题。

如果时钟未同步,那么将此参数设置为FALSE,并使用rdsync_delaypipewrsync_delaypipe参数来确定需要的同步阶段数。

ram_block_type 字符串 No 指定要使用的目标器件的Trimatrix Memory Block。要得到基于您设置的RAM配置的正确实现,请忽略此参数,并允许 Intel® Quartus® Prime软件自动选择存储器类型并将use_eab参数设置成ON。这样编译器就可以根据需要的FIFO深度,灵活地将存储功能放置在任何可用的存储资源中。可用的RAM模块类型为:Auto (default),MLAB,M20K和M144K。
add_ram_output_register 字符串 No 指定是否寄存q输出。值为ONOFF。如果忽略,则默认值为OFF
almost_full_value 25 整数 No 设置almost_full端口的阈值。当存储在FIFO Intel® FPGA IP核中的字数大于或等于此值时,almost_full端口置位。
Almost_empty_value 25 整数 No 设置almost_empty端口的阈值。当存储在FIFO Intel® FPGA IP核中的字数大于或等于此值时,almost_empty端口置位。
allow_wrcycle_when_full 25 字符串 No 允许您将读周期和写周期组合到一个满的SCFIFO,使其保持满状态。值为ONOFF。如果忽略,那么默认为OFF。仅当OVERFLOW_CHECKING参数设置为ON时才使用此参数。
intended_device_family 字符串 No 指定与您的 Intel® Quartus® Prime工程中设置的预期器件相匹配的目标器件。此参数仅用于功能仿真。
22 仅适用于DCFIFO_MIXED_WIDTHS功能。
23 不适用于DCFIFO_MIXED_WIDTHS功能。
24 仅适用于DCFIFO功能。
25 仅应用于SCFIFO功能。