仅对英特尔可见 — GUID: sxx1522247697341
Ixiasoft
1. Intel® HLS Compiler Pro版参考手册
2. 编译器
3. C语言和库支持
4. 组件接口
5. 组件存储器(存储器属性)
6. 组件中的循环
7. 组件并发
8. 任意精度数学支持
9. 组件目标频率(Target Frequency)
10. 任务系统
11. 库
12. 高级硬件综合控制
13. Intel® High Level Synthesis Compiler Pro版参考总结
A. 高级数学源代码库
B. 支持的数学函数
C. Cyclone® V限制
D. Intel® HLS Compiler Pro版参考手册存档
E. Intel® HLS Compiler Pro版参考手册修订历史
13.1. Intel® HLS Compiler Pro版i++命令行参数
13.2. Intel® HLS Compiler Pro版头文件
13.3. Intel® HLS Compiler Pro版编译器定义的预处理器宏
13.4. Intel® HLS Compiler Pro版关键字
13.5. Intel® HLS Compiler Pro版模拟API(仅测试台)
13.6. Intel® HLS Compiler Pro版组件存储器属性
13.7. Intel® HLS Compiler Pro版循环预处理指令
13.8. Intel® HLS Compiler Pro版范围预处理指令
13.9. Intel® HLS Compiler Pro版组件属性
13.10. Intel® HLS Compiler Pro版组件默认值接口
13.11. Intel® HLS Compiler Pro版组件调用接口控制属性
13.12. Intel® HLS Compiler Pro版组件宏
13.13. Intel® HLS Compiler Pro版技术性任务系统API
13.14. Intel® HLS Compiler Pro版管道API
13.15. Intel® HLS Compiler Pro版流输入接口
13.16. Intel® HLS Compiler Pro版流输出接口
13.17. Intel® HLS Compiler Pro版存储器映射接口
13.18. Intel® HLS Compiler Pro版加载-存储单元控制
13.19. Intel® HLS Compiler Pro版任意精度数据类型
仅对英特尔可见 — GUID: sxx1522247697341
Ixiasoft
A.1. 随机数生成程序库
Intel® HLS Compiler Pro Edition附带的随机数生成程序源代码库为您提供针对FPGA优化的随机数生成器模板类,可以将其添加到您的组件中,而无需编写自己的模板类。
随机数生成程序库和密码学
不建议将这些伪随机数生成程序(PRNG)算法用于加密目的。此库中包含的PRNG不是加密安全的伪随机数生成器 (CSPRNG),不应该用于加密。CSPRNG算法旨在使得任何多项式时间算法 (PTA)都无法计算或预测伪随机序列中的下一位,也没有PTA可以预测CSPRNG过去的值;这些算法无法实现此目的。此外,这些算法尚未经过审查,也不建议将其用作CSPRNG的PRNG组件,即使输入值来自具有适当熵(entropy)提取器的非确定性熵源。
值分布 | 值类型 | 值范围 | 生成方式 |
---|---|---|---|
Uniform(均匀分布) | 整数 | [-2³¹, 2³¹-1] | Tausworthe Generator |
浮点 | [0, 1) (非包含) | Tausworthe Generator | |
Gaussian(高斯分布) | 浮点 | [0, 1) | Central limit theorem (CLT) (默认) |
Box-Muller |
头文件
要在组件中加入随机数生成器库,请在组件中添加以下行:
#include "HLS/rand_lib.h”
头文件是自动文档化文件。您可以查看头文件以了解如何在组件中使用随机数生成器库。
随机数对象声明
在您的组件中声明随机数对象,如下所示。在所有情况下,将 <seed_value> 指定为可选。
- 均匀分布整数随机数
static RNG_Uniform<int> <object_name>(<seed_value>)
- 均匀分布浮点随机数
static RNG_Uniform<float> <object_name>(<seed_value>)
- 高斯分布浮点随机数(CLT方法)
static RNG_Gaussian<float> <object_name>(<seed_value>)
或者static RNG_Gaussian<float, ihc::GAUSSIAN_CLT> <object_name>(<seed_value>)
- 高斯分布浮点随机数(Box-Muller方法)
static RNG_Gaussian<float, ihc::GAUSSIAN_BOX_MULLER> <object_name>(<seed_value>)