仅对英特尔可见 — GUID: jjp1548359144858
Ixiasoft
仅对英特尔可见 — GUID: jjp1548359144858
Ixiasoft
13.6. Intel® HLS Compiler Pro版组件存储器属性
使用组件存储器属性来控制组件的片上组件存储器架构。
存储器属性 | 描述 |
---|---|
hls_force_pow2_depth | 指定实现变量或数组的存储器的深度为2的幂(power-of-2)。 |
hls_register | 强制变量或数组在寄存器中通过管道传输。 寄存器变量既可以专门在触发器(FF)中实现,也可以在FF和基于RAM的FIFO混合体中实现。 |
hls_memory | 强制将变量或数组实现为嵌入式存储器。 |
hls_memory_impl | 强制将变量或数组实现为特定类型的嵌入式存储器。 |
hls_singlepump | 指定实现变量或数组的存储器必须与访问存储器的组件具有相同的时钟速率。 |
hls_doublepump | 指定实现变量或数组的存储器必须以访问存储器的组件速率的两倍计时。 |
hls_numbanks | 指定实现变量或数组的存储器具有定义数量的存储器bank。 |
hls_bankwidth | 指定实现变量或数组的存储器必须具有定义宽度的存储器bank。 |
hls_bankbits | 强制将存储器系统拆分成定义数量的存储器bank,并定义用于选择存储器bank的位。 |
hls_simple_dual_port_memory | 指定实现变量或数组的存储器不应具有同时提供读写服务的端口。 |
hls_merge (深度范畴) | 允许将两个或多个局部变量合并,以深度方式在组件存储器中实现为单个合并存储器系统。 |
hls_merge (宽度范畴) | 允许将两个或多个局部变量合并,以宽度方式在组件存储器中实现为单个合并存储器系统。 |
hls_init_on_reset | 当组件reset信号置位后,强制组件内部的静态变量初始化。 |
hls_init_on_powerup | 设置实现静态变量的组件存储器,以便在FPGA被编程时能在上电过程中进行初始化。 |
hls_max_concurrency |
Deprecated: 此属性已弃用,并将在未来的版本中被删除。使用 hls_private_copies存储器属性取而代之。
指定实现变量或数组的存储器具有定义数量的专用副本(private copy),以允许在任何给定时间进行循环的并发迭代。 |
hls_max_replicates | 指定实现变量或数组的存储器具有的replicate数不超过指定数量,以便能够从数据路径同时读取 |
hls_private_copies | 指定实现变量或数组的存储器具有定义数量的专用副本(private copy),以允许在任何给定时间进行循环的并发迭代。 |
hls_force_pow2_depth存储器属性
- 句法
- hls_force_pow2_depth(N)
- 约束
- N仅可为0或1。
- 默认值
- 1
- 描述
-
指定实现变量或数组的存储器深度为2的幂。如果N为1那么该选项使能;如果N为0则该选项被禁用。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/examples/tutorials/component_memories/non_power_of_two_memory
hls_register存储器属性
- 句法
- hls_register
- 约束
- N/A
- 默认值
- 根据编译器推断的存储器访问模式。
- 描述
-
强制将变量或数组实现为寄存器。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/examples/tutorials/best_practices/swap_vs_copy
hls_memory存储器属性
- 句法
- hls_memory
- 约束
- N/A
- 默认值
- 根据编译器推断的存储器访问模式。
- 描述
-
强制将变量或数组实现为嵌入式存储器。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_implementation
hls_memory_impl存储器属性
- 句法
- hls_memory_impl("type")
- 约束
- N/A
- 默认值
- 根据编译器推断的存储器大小和存储器访问模式。
- 描述
-
强制将变量或数组实现为特定类型的嵌入式存储器。
type参数可以是下列值之一:- BLOCK_RAM
- 将变量或数组实现为存储器模块,例如 M20K存储器模块。
- MLAB
- 将变量或数组实现为存储器逻辑阵列块(MLAB)。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_implementation
hls_singlepump存储器属性
- 句法
- hls_singlepump
- 约束
- N/A
- 默认值
- 根据编译器推断的存储器访问模式。
- 描述
-
指定实现变量或数组的存储器必须与访问存储器的组件以相同的速率计时。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/examples/QRD
hls_doublepump存储器属性
- 句法
- hls_doublepump
- 约束
- N/A
- 默认值
- 根据编译器推断的存储器访问模式。
- 描述
-
指定实现变量或数组的存储器必须以访问存储器的组件速率的两倍计时。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_bank_configuration
hls_numbanks存储器属性
- 句法
- hls_numbanks(N)
- 约束
- 此属性受到存储器Bank的属性约束中概述的约束限制。
- 默认值
- 根据编译器推断的存储器访问模式。
- 描述
-
指定实现变量或数组的存储器必须具有N个bank,其中N是2的幂次方常数。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_geometry
hls_bankwidth存储器属性
- 句法
- hls_bankwidth(N)
- 约束
- 此属性受到存储器Bank的属性约束中概述的约束限制。
- 默认值
- 根据编译器推断的存储器访问模式。
- 描述
-
指定实现变量或数组的存储器必须具有N个字节宽,其中N是2的幂次方常数。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_geometry
hls_bankbits存储器属性
- 句法
- hls_bankbits(b 0 , b 1 , ..., b n )
- 约束
- 此属性受到存储器Bank的属性约束中概述的约束限制。
- 默认值
- 根据编译器推断的存储器访问模式。
- 描述
-
强制存储器系统分裂成2个n+1 bank,通过{b 0 , b 1 , ..., b n }形成bank选择位。
重要: b 0 , b 1 , ..., b n 必须是连续的正整数。您可以按升序或降序指定连续的正整数。
如果您没有在指定该属性的同时指定hls_bankwidth(N)属性,则b 0 , b 1 , ..., b n 映射到存储器bank实现中的数组索引位0到n-1。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_geometry
hls_simple_dual_port_memory存储器属性
- 句法
- hls_simple_dual_port_memory
- 约束
- N/A
- 默认值
- N/A
- 描述
-
指定实现变量或数组的存储器不应该具有同时提供读和写服务的端口。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_bank_configuration
hls_merge (depthwise) 存储器属性
- 句法
- hls_merge("mem_name", "depth")
- 约束
- N/A
- 默认值
- N/A
- 描述
-
允许将两个或多个局部变量合并,以深度方式在组件存储器中实现为单个合并存储器系统。
所有以相同的<mem_name>标记指定其hls_merge属性的变量, 都被合并到同一个存储器系统中。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_merging
hls_merge (widthwise)存储器属性
- 句法
- hls_merge("mem_name", "width")
- 约束
- N/A
- 默认值
- N/A
- 描述
-
允许将两个或多个局部变量合并,以宽度方式在组件存储器中实现为单个合并存储器系统。
所有以相同的<mem_name>标记指定其hls_merge属性的变量, 都被合并到同一个存储器系统中。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_merging
hls_init_on_reset存储器属性
- 句法
- hls_init_on_reset
- 约束
- N/A
- 默认值
- 静态变量的默认行为
- 描述
-
当组件reset信号被置位时,强制初始化组件内部的静态变量。该操作需要为组件存储器实现提供额外的写端口,并且可能会增加组件复位时的上电延迟。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/examples/tutorials/component_memories/static_var_init.
hls_init_on_powerup存储器属性
- 句法
- hls_init_on_powerup
- 约束
- N/A
- 默认值
- N/A
- 描述
-
设置实现静态变量的组件存储器,以便在编程FPGA时上电初始化。当组件复位时,组件存储器不会复位到静态的初始化值。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/examples/tutorials/component_memories/static_var_init
hls_max_concurrency存储器属性
- 句法
- hls_max_concurrency(N)
- 约束
- N/A
- 默认值
- N/A
- 描述
-
指定实现变量或数组的存储器具有N 个专用副本,以允许在任何给定时间内循环的N个并发迭代。
仅当变量的范围(通过其声明或访问模式)被限制为循环时才应用此属性。如果将具有max_concurrency预处理指令的循环应用于该命令时,创建的专用副本数量是hls_max_concurrency存储器属性值和max_concurrency预处理指令值之中的较小者。
hls_max_replicates存储器属性
- 句法
- hls_max_replicates(N)
- 约束
- N/A
- 默认值
- N/A
- 描述
-
指定实现变量或数组的存储器具有的复制副本的数量不多于N 个复制副本,从而实现从数据路径的同时读取。
要了解更多信息,请查看以下教程: <quartus_installdir>/hls/tutorials/component_memories/memory_bank_configuration
hls_private_copies存储器属性
- 句法
- hls_private_copies(N)
- 约束
- N/A
- 默认值
- N/A
- 描述
-
指定实现变量或数组的存储器具有N个专用副本以允许在任何给定时间内循环的N次并发迭代。
仅当变量的范围(通过其声明或访问模式)被限制为循环时才应用此属性。如果将具有max_concurrency预处理指令的循环应用于该命令时,创建的专用副本数量是hls_private_copies存储器属性值和max_concurrency预处理指令值之中的较小者。