英特尔Agilex® 7嵌入式存储器用户指南

ID 683241
日期 4/10/2023
Public
文档目录

4.3.3.5. FIFO参数设置

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

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

2^LPM_WIDTHU

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

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

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

这是一个旧参数(legacy parameter),用于以下设置:

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

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

lpm_hint = ”MAXIMUM_DEPTH=512, RAM_BLOCK_TYPE=M20K”

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

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

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

默认情况下,ECC为禁用。

delay_wrusedw 18

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

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

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

wrsync_delaypipe 18

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

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

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

use_eab 字符串 指定是否使用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 18 字符串 指定是否添加一个电路,使wrclk时钟从内部同步aclr端口。加入电路防止wrreqaclr端口之间可能破坏FIFO Intel® FPGA IP core的竞争条件。

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

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

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

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

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

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