logo资料库

c_ug902-vivado-high-level-synthesis(中文).pdf

第1页 / 共489页
第2页 / 共489页
第3页 / 共489页
第4页 / 共489页
第5页 / 共489页
第6页 / 共489页
第7页 / 共489页
第8页 / 共489页
资料共489页,剩余部分请下载后查看
Vivado Design Suite 用户指南
修订历史
目录
1:高层次综合
高层次综合的优势
高层次综合基础
调度和绑定示例
控制逻辑提取和 I/O 端口实现示例
性能指标示例
理解 Vivado HLS
输入和输出
测试激励文件、语言支持和 C 语言库
测试激励文件
语言支持
C 语言库
综合、最优化和分析
最优化
分析
RTL 验证
RTL 导出
使用 Vivado HLS
创建新的综合工程
对 C 语言代码进行仿真
查看 C 语言仿真输出
对 C 语言代码进行综合
创建初始解决方案
复查 C 语言综合的输出
分析 C 语言综合的结果
综合报告
分析透视图
Schedule Viewer
数据流查看器
创建新解决方案
应用最优化指令
使用 Tcl 命令或嵌入式编译指示
编译指示验证
将最优化指令应用于全局变量
对类对象应用最优化指令
对模板应用最优化指令
将 #Define 与编译指示指令配合使用
无法满足最优化指令
验证 RTL 正确与否
复查 C/RTL 协同仿真的输出
IP 封装
复查 IP 封装的输出
工程归档
使用命令提示符和 Tcl 接口
改善运行时间和容量
设计示例与参考
教程
设计示例
编码示例
高效硬件的数据类型
硬件有效的数据类型的优势
任意精度整数数据类型概述
任意精度定点数据类型概述
管理接口
接口综合
接口综合概述
时钟和复位端口
块级接口协议
端口级接口协议
接口综合 I/O 协议
块级接口协议
端口级接口协议:AXI4 接口
端口级接口协议:无 I/O 协议
端口级接口协议:有线握手
端口级接口协议:内存接口
接口综合与结构体
接口综合和多次访问指针
指定接口
对应 SystemC 的接口综合
对 SystemC 应用接口指令
块 RAM 内存端口
SystemC AXI4-Stream 接口
SystemC AXI4-Lite 接口
SystemC AXI4 主接口
使用 AXI4 接口
AXI4-Stream 接口
不含旁路的 AXI4-Stream 接口
含旁路的 AXI4-Stream 接口
将结构体封装到 AXI4-Stream 接口中
AXI4-Lite 接口
控制 AXI4-Lite 接口中的时钟和复位
C 驱动文件
C 驱动文件和浮点类型
控制硬件
控制软件
在 IP integrator 中自定义 AXI4-Lite 从接口
AXI4 主接口
控制 AXI4 突发行为
创建具有 64 位地址功能的 AXI4 接口
控制 AXI4 接口中的地址偏移
在 IP integrator 中自定义 AXI4 主接口
利用 SSI 技术器件管理接口
对设计进行最优化
时钟、复位和 RTL 输出
指定时钟频率
指定复位
初始化行为
控制复位行为
数组初始化和复位
RTL 输出
吞吐量最优化
函数与循环流水线化
回绕已流水线化的循环以保障性能
清空流水线
自动循环流水线化
解决流水线化失败的问题
静态变量
通过数组分区来改善流水线化
自动数组分区
与 Vivado HLS 之间的依赖关系
移除假性依赖关系以改善循环流水线化
标量依赖关系
最优化循环展开以改善流水线
利用任务级别并行化:数据流最优化
规范形式
规范主体
数据流检查
数据流最优化限制
配置数据流内存通道
将数组指定为乒乓缓存或 FIFO
指定编译器 - FIFO 深度
Stable 数组
在数据流内使用 ap_ctrl_none
时延最优化
使用时延约束
合并顺序循环以减少时延
将嵌套循环扁平化以改进时延
面积最优化
数据类型和位宽
函数内联
将大量数组映射到单一大型数组
水平数组映射
映射垂直数组
数组映射以及特殊注意事项
数组重塑
函数例化
控制硬件资源
限制运算符数量
全局最大限度减少运算符
控制硬件核
全局最优化硬件核
最优化逻辑
控制运算符流水线化
最优化逻辑表达式
验证 RTL
自动验证 RTL
测试激励文件要求
接口综合要求
RTL 仿真器支持
不支持用于协同仿真的最优化
仿真 IP 核
使用 C/RTL 协同仿真
执行 RTL 仿真
指令验证
分析 RTL 仿真
波形查看器
调试 C/RTL 协同仿真
设置环境
最优化指令
C 语言测试激励文件和 C 语言源代码
导出 RTL 设计
综合 RTL
封装 IP 目录格式
将 IP 导出至 System Generator
导出已综合的检查点
2:高层次综合 C 语言库
任意精度数据类型库
使用任意精度数据类型
用于 C 的任意整数精度类型
用于 C++ 的任意整数精度类型
用于 SystemC 的任意精度整数类型
任意精度定点数据类型
定点标识汇总
使用 ap_fixed 的示例
使用 sc_fixed 的示例
C 任意精度整数数据类型
C 任意精度数据类型的优势
在 C 中验证任意精度类型
整数提升
C 任意精度整数类型:参考信息
C++ 任意精度整数类型
C++ 任意精度整数类型:参考信息
C++ 任意精度定点类型
定点标识汇总
C++ 任意精度定点类型:参考信息
HLS 流传输库
C 语言建模与 RTL 实现
全局和局部流传输
使用 HLS 流传输
阻塞读写
阻塞写入方法
阻塞读取方法
非阻塞读写
非阻塞写操作
满盈度测试
非阻塞读取
空状态测试
控制 RTL FIFO 深度
C/RTL 协同仿真支持
HLS 数学库
HLS 数学库精度
HLS 数学库
定点数学函数
验证和数学函数
验证选项 1:标准数学库和验证差异
验证选项 2:HLS 函数库和验证差异
验证选项 3:HLS 数学库文件和验证差异
常见综合错误
HLS 视频库
HLS IP 库
FFT IP 库
FFT 静态参数
FFT 结构体参数
FFT 结构体参数值
FFT 运行时间配置与状态
使用 FFT 函数
SSR FFT IP 库
使用 SSR FFT 定点配置的建议流程
定点建模与实现
开始处理定点模型
选择输入位宽
旋转因子或正弦/余弦查找表量化
选择最佳缩放模式
SSR FFT IP 库的使用
SSR FFT 输入数组读写注意事项
在数据流区域中使用 SSR FFT 进行流传输连接和非流传输连接
FIR 滤波器 IP 库
FIR 静态参数
FIR 结构体参数
FIR 构造体参数值
使用 FIR 函数
可选 FIR 运行时间配置
DDS IP 库
DDS 静态参数
DDS 接口参数值
SRL IP 库
直接映射到 SRL 资源中
从移位器中读取
数据的读取、写入和移位
读、写和使能移位
HLS 线性代数库
使用线性代数库
线性代数函数最优化
Cholesky
实现控制
关键因子
规格
Cholesky 求逆和 QR 求逆
实现控制
关键因子
规格
矩阵乘法
实现控制
关键因子
规格
QRF
实现控制
关键因子
规格
SVD
实现控制
关键因子
规格
HLS DSP 库
使用 DSP 库
HLS SQL 库
使用 SQL 库
3:高层次综合编码样式
不受支持的 C 语言构造
系统调用
动态内存使用
指针限制
递归函数
标准模板库
C 语言测试激励文件
高效的测试激励文件
设计文件和测试激励文件
组合测试激励文件与设计文件
函数
函数内联
编码样式的影响
RTL 黑盒
循环
变量循环边界
循环流水线化
非完美嵌套矩阵
循环并行化
循环依赖关系
展开 C++ 类中的循环
数组
数组访问和性能
FIFO 访问
接口上的数组
数组接口
FIFO 接口
数组初始化
实现 ROM
数据类型
标准类型
浮点与双精度
复合数据类型
结构体
枚举类型
联合体
类型限定符
Volatile
静态
Const
Vivado HLS 最优化
全局变量
将全局变量作为 I/O 端口公开
指针
接口上的指针
基本指针
指针算法
多重访问指针接口:数据流传输
理解易变 (Volatile) 数据
对流传输数据接口进行建模
多重访问指针和 RTL 仿真
C 语言内置函数
硬件高效型 C 语言代码
用于卷积函数的典型 C 语言代码
水平卷积
垂直卷积
边界像素
确保数据连续流动和数据复用
使用 HLS 流进行数据流传输
水平卷积
垂直卷积
边界像素
高效硬件的 C 语言摘要
C++ 类和模板
构造函数、析构函数和虚拟函数
全局变量和类
模板
使用模板创建专用实例
断言
SystemC 综合
设计建模
使用 SC_ MODULE
使用 SC_METHOD
例化 SC_MODULES
使用 SC_CTHREAD
循环综合
使用多个时钟进行综合
通信通道
顶层 SystemC 端口
SystemC 接口综合
RAM 端口综合
FIFO 端口综合
不受支持的 SystemC 语言构造
模块和构造函数
模块例化
模块构造函数
虚拟函数
顶层接口端口
4:高层次综合参考指南
命令参考
add_files
close_project
close_solution
config_array_partition
config_bind
config_compile
config_core
config_dataflow
config_export
config_interface
config_rtl
config_schedule
config_sdx
config_unroll
cosim_design
create_clock
csim_design
csynth_design
delete_project
delete_solution
export_design
help
list_core
list_part
open_project
open_solution
set_clock_uncertainty
set_directive_allocation
set_directive_array_map
set_directive_array_partition
set_directive_array_reshape
set_directive_clock
set_directive_dataflow
set_directive_data_pack
set_directive_dependence
set_directive_expression_balance
set_directive_function_instantiate
set_directive_inline
set_directive_interface
set_directive_latency
set_directive_loop_flatten
set_directive_loop_merge
set_directive_loop_tripcount
set_directive_occurrence
set_directive_pipeline
set_directive_reset
set_directive_resource
set_directive_stable
set_directive_stream
set_directive_top
set_directive_unroll
set_part
set_top
GUI 参考
变量监控
解析头文件信息
解决源代码中的注释
自定义 GUI 行为
接口综合参考
块级 I/O 协议
端口级 I/O 协议
AXI4-Lite 从接口 C 驱动参考
XDut_Initialize
XDut_CfgInitialize
XDut_LookupConfig
XDut_Release
XDut_Start
XDut_IsDone
XDut_IsIdle
XDut_IsReady
XDut_Continue
XDut_EnableAutoRestart
XDut_DisableAutoRestart
XDut_Set_ARG
XDut_Set_ARG_vld
XDut_Set_ARG_ack
XDut_Get_ARG
XDut_Get_ARG_vld
XDut_Get_ARG_ack
XDut_Get_ARG_BaseAddress
XDut_Get_ARG_HighAddress
XDut_Get_ARG_TotalBytes
XDut_Get_ARG_BitWidth
XDut_Get_ARG_Depth
XDut_Write_ARG_Words
XDut_Read_ARG_Words
XDut_Write_ARG_Bytes
XDut_Read_ARG_Bytes
XDut_InterruptGlobalEnable
XDut_InterruptGlobalDisable
XDut_InterruptEnable
XDut_InterruptDisable
XDut_InterruptClear
XDut_InterruptGetEnabled
XDut_InterruptGetStatus
HLS 视频函数库
HLS 线性代数库函数
HLS DSP 库函数
HLS DSP 函数
HLS DSP 设计示例
HLS SQL 库函数
C 语言任意精度类型
编译 [u]int#W 类型
声明/定义 [u]int#W 变量
从常量初始化和赋值(字面值)
控制台 I/O 支持(打印)
涉及 [u]int#W 类型的表达式
位级运算:支持函数
C++ 任意精度类型
编译 ap_[u]int<> 类型
声明/定义 ap_[u] 变量
从常量初始化和赋值(字面值)
控制台 I/O 支持(打印)
涉及 ap_[u]<> 类型的表达式
方法与运算符分类
其它类方法、运算符和数据成员
C++ 任意精度定点类型
ap_[u]fixed 表示法
量化模式
溢出模式
编译 ap_[u]fixed<> 类型
声明和定义 ap_[u]fixed<> 变量
从常量初始化和赋值(字面值)
控制台 I/O 支持(打印)
涉及 ap_[u]fixed<> 类型的表达式
类方法、运算符和数据成员
SystemC 类型与 Vivado HLS 类型之比较
默认构造函数
整数除法
整数取模
负相移
过左移
范围运算
除法和定点类型
右移和定点类型
左移和定点类型
RTL 黑盒 JSON 文件
附录 A:附加资源与法律提示
赛灵思资源
Documentation Navigator 与设计中心
参考资料
请阅读:重要法律提示
Vivado Design Suite 用户指南 高层次综合 UG902 (v2019.2) 2020 年 1 月 13 日 条款中英文版本如有歧义,概以英文版本为准。
修订历史 下表列出了本文档的修订历史。 章节 更新命令参考信息。 HLS 数学库和定点数学函数 移除假性依赖关系以改善循环流水线化 吞吐量最优化 将数组指定为乒乓缓存或 FIFO Stable 数组、set_directive_stable 在数据流内使用 ap_ctrl_none RTL 黑盒、RTL 黑盒 JSON 文件和 add_files 波形查看器 SSR FFT IP 库 修订历史 修订综述 2020 年 1 月 13 日 2019.2 版 更新命令。 2019 年 10 月 30 日 2019.2 版 移除 Gamma 函数。 2019 年 7 月 12 日 2019.1 版 澄清有关依赖关系的信息。 2019 年 5 月 22 日 2019.1 版 更新有关数据流和流水线化吞吐量部分的信息。 更新乒乓缓存的解释。 新增有关 stable 数组的信息。 新增有关在数据流内使用 ap_ctrl_none 的信息。 新增有关 RTL 黑盒新功能的信息、新增必需 JSON 文件的规格, 并更新 add_files 命令以包含 -blackbox 选项。 新增有关波形查看器 (Waveform Viewer) 的信息。 新增有关新超采样率 (SSR) FFT 的信息。 新增下列小节: 使用 SSR FFT 定点配置的建议流程 SSR FFT IP 库的使用 UG902 (v2019.2) 2020 年 1 月 13 日 高层次综合 china.xilinx.com 2 Send Feedback
目录 修订历史..........................................................................................................................................................................2 第 1 章:高层次综合...............................................................................................................................................5 高层次综合的优势........................................................................................................................................................... 5 高层次综合基础............................................................................................................................................................... 5 理解 Vivado HLS........................................................................................................................................................... 10 使用 Vivado HLS........................................................................................................................................................... 15 高效硬件的数据类型......................................................................................................................................................59 管理接口........................................................................................................................................................................ 65 对设计进行最优化......................................................................................................................................................... 97 验证 RTL...................................................................................................................................................................... 143 导出 RTL 设计..............................................................................................................................................................154 第 2 章:高层次综合 C 语言库.................................................................................................................... 160 任意精度数据类型库....................................................................................................................................................160 HLS 流传输库.............................................................................................................................................................. 172 HLS 数学库.................................................................................................................................................................. 179 HLS 视频库.................................................................................................................................................................. 188 HLS IP 库..................................................................................................................................................................... 188 HLS 线性代数库...........................................................................................................................................................214 HLS DSP 库..................................................................................................................................................................223 HLS SQL 库..................................................................................................................................................................225 第 3 章:高层次综合编码样式.....................................................................................................................226 不受支持的 C 语言构造............................................................................................................................................... 226 C 语言测试激励文件....................................................................................................................................................230 函数..............................................................................................................................................................................236 RTL 黑盒...................................................................................................................................................................... 237 循环..............................................................................................................................................................................242 数组..............................................................................................................................................................................248 数据类型...................................................................................................................................................................... 255 C 语言内置函数........................................................................................................................................................... 276 硬件高效型 C 语言代码............................................................................................................................................... 277 C++ 类和模板...............................................................................................................................................................292 断言..............................................................................................................................................................................299 SystemC 综合..............................................................................................................................................................301 第 4 章:高层次综合参考指南.....................................................................................................................318 命令参考...................................................................................................................................................................... 318 UG902 (v2019.2) 2020 年 1 月 13 日 高层次综合 china.xilinx.com 3 Send Feedback
GUI 参考......................................................................................................................................................................379 接口综合参考...............................................................................................................................................................383 AXI4-Lite 从接口 C 驱动参考...................................................................................................................................... 397 HLS 视频函数库...........................................................................................................................................................409 HLS 线性代数库函数................................................................................................................................................... 409 HLS DSP 库函数.......................................................................................................................................................... 417 HLS SQL 库函数.......................................................................................................................................................... 429 C 语言任意精度类型....................................................................................................................................................431 C++ 任意精度类型....................................................................................................................................................... 443 C++ 任意精度定点类型................................................................................................................................................460 SystemC 类型与 Vivado HLS 类型之比较..................................................................................................................479 RTL 黑盒 JSON 文件.................................................................................................................................................... 485 附录 A:附加资源与法律提示......................................................................................................................488 赛灵思资源.................................................................................................................................................................. 488 Documentation Navigator 与设计中心....................................................................................................................488 参考资料...................................................................................................................................................................... 488 请阅读:重要法律提示................................................................................................................................................489 UG902 (v2019.2) 2020 年 1 月 13 日 高层次综合 china.xilinx.com 4 Send Feedback
第 1 章:高层次综合 第 1 章 高层次综合 高层次综合的优势 赛灵思 Vivado® 高层次综合 (HLS) 工具将 C 语言规格转换为寄存器传输级 (RTL) 实现,供您综合到赛灵思现场可编程门 阵列 (FPGA) 中。您可使用 C、C++ 或 SystemC 来编写 C 语言规格,FPGA 可提供大规模并行处理架构,其性能、成本 和功耗都比传统处理器更胜一筹。本章提供了高层次综合概述。 注释:如需了解有关 FPGA 架构和 Vivado HLS 基本概念的更多信息,请参阅《采用 Vivado 高层次综合开展 FPGA 设 计的简介》(UG998)。 高层次综合将硬件域和软件域桥接在一起,从而提供如下主要优势: • 提升硬件设计人员的工作效率 • 为软件设计人员提升系统性能 创建高性能硬件时,硬件设计人员可以在更高的抽象层次上开展工作。 软件开发者可以在新的编译目标(即 FPGA)上加速完成其算法的计算密集型部分操作。 通过使用高层次综合设计方法,您即可: • 在 C 语言层次开发算法 从占用开发时间的实现细节中抽身 • 在 C 语言层次执行验证 以相比于传统硬件描述语言更快的速度验证设计的功能正确性。 • 通过最优化指令来控制 C 语言综合进程 创建特定的高性能硬件实现。 • 使用最优化指令从 C 语言源代码创建多种实现 浏览设计空间,提升找到最优化实现的可能性。 • 创建可读且可移植的 C 语言源代码 将 C 语言源代码目标调整为其它器件,并将 C 语言源代码整合到新工程中。 高层次综合基础 高层次综合所含阶段如下: UG902 (v2019.2) 2020 年 1 月 13 日 高层次综合 china.xilinx.com 5 Send Feedback
第 1 章:高层次综合 • 调度 根据下列条件判定每个时钟周期内发生的操作: • 时钟周期或时钟频率长度 • 操作完成所需时间(由目标器件来定义) • 用户指定的最优化指令 如果时钟周期延长或者目标 FPGA 速度加快,那么在单一时钟周期内可完成更多操作,所有操作都可能在一个时钟 周期内完成。反之,如果时钟周期缩短或者目标 FPGA 速度减慢,那么高层次综合会自动将操作调度到更多个时钟 周期内完成,部分操作可能需要作为多周期资源来实现。 判定用于实现调度的每项操作所需的硬件资源。高层次综合会使用有关目标器件的信息来实现最优化解决方案。 提取控制逻辑以创建有限状态机 (FSM) 以便对 RTL 设计中的操作进行排序。 • 绑定 • 控制逻辑提取 高层次综合按如下方式综合 C 语言代码: • 顶层函数实参综合到 RTL I/O 端口内 • C 语言函数综合到 RTL 层级内的块中 • C 语言函数中的循环默认情况下全部保持收起状态。 如果 C 语言代码包含子函数层级,那么最终 RTL 设计将包含与原始 C 语言函数层级具有一对一对应关系的模块或 实体层级。函数的所有实例都使用相同 RTL 实现或时钟。 收起循环时,综合会为循环的单次迭代创建逻辑,RTL 设计会为序列中循环的每次迭代都执行此逻辑。通过使用最 优化指令,即可展开循环以允许并行执行所有迭代。 循环还可通过如下任一方法实现流水线化:通过有限状态机细 颗粒度实现(循环流水线化)或者采用基于较粗颗粒度的握手的实现(数据流)。 如果数组位于顶层函数接口上,那么高层次综合可将此数组作为端口来实现,以便访问设计外部的块 RAM。 • C 语言代码中的数组可综合到最终 FPGA 设计中的块 RAM 或 UltraRAM 中 高层次综合可基于默认行为、约束和您指定的任意最优化指令来创建最优化的实现。您可使用最优化指令来修改和控制 内部逻辑和 I/O 端口的默认行为。这样您即可从相同 C 语言代码生成不同的硬件实现。 为判定设计是否满足您的要求,您可复查高层次综合生成的综合报告中的性能指标。分析报告后,您可使用最优化指令 来对实现进行调优。综合报告包含有关如下性能指标的信息: • 面积:根据 FPGA 中可用资源(包括查找表 (LUT)、寄存器、块 RAM 和 DSP48)实现设计所需的硬件资源量。 • 时延:函数计算所有输出值所需的时钟周期数。 • 启动时间间隔 (II):函数接受新输入数据之前的时钟周期数。 • 循环迭代时延:完成循环的单次迭代所需的时钟周期数。 • 循环启动时间间隔:下一次循环迭代开始处理数据前的时钟周期数。 • 循环时延:执行所有循环迭代的周期数。 UG902 (v2019.2) 2020 年 1 月 13 日 高层次综合 china.xilinx.com 6 Send Feedback
第 1 章:高层次综合 调度和绑定示例 下图显示了此代码示例的调度和绑定阶段的示例: int foo(char x, char a, char b, char c) { char y; y = x*a+b+c; return y; } 图 1:调度和绑定示例 Clock Cycle Scheduling Phase 1 * a x b c 2 3 + y + Initial Binding Phase Target Binding Phase Mul AddSub AddSub DSP48 AddSub X14220-061518 在此示例的调度阶段,根据高层次综合的调度,在每个时钟周期内将执行以下操作: • 第一个时钟周期:乘法和第一次加法 • 第二个时钟周期:第二次加法并生成输出 注释:在上图中,第一个和第二个时钟周期之间的方块指示内部寄存器存储变量的时间。在此示例中,高层次综合仅要 求在一个时钟周期内寄存加法的输出。第一个周期读取 x、a 和 b 数据端口。第二个周期读取数据端口 c 并生成输出 y。 在最终的硬件实现中,高层次综合将顶层函数的实参实现为输入和输出 (I/O) 端口。在此示例中,实参是简单数据端 口。因为每个输入变量都是 char 类型,所以输入数据端口位宽均为 8 位。return 函数为 32 位 int 数据类型,而输 出数据端口位宽为 32 位。 重要提示!在硬件中实现 C 语言代码的优点是所有运算都在更少的时钟周期内完成。在此示例中,完成运算仅需 2 个 时钟周期。在中央处理器 (CPU) 中,即使这个简单的代码示例也需要更多时钟周期才能完成。 在此示例的初始绑定阶段,高层次综合使用组合乘法器 (Mul) 实现乘法运算,并使用组合加法器/减法器 (AddSub) 实现 两次加法运算。 UG902 (v2019.2) 2020 年 1 月 13 日 高层次综合 china.xilinx.com 7 Send Feedback
第 1 章:高层次综合 在目标绑定阶段,高层次综合使用 DSP48 资源实现乘法器和其中一项加法运算。DSP48 资源是 FPGA 架构中可用的计 算块,可在高性能和高效实现之间达成理想的平衡。 控制逻辑提取和 I/O 端口实现示例 下图显示了对应此代码示例的控制逻辑的提取和 I/O 端口的实现过程: void foo(int in[3], char a, char b, char c, int out[3]) { int x,y; for(int i = 0; i < 3; i++) { x = in[i]; y = a*x + b + c; out[i] = y; } } 图 2:控制逻辑提取和 I/O 端口实现示例 Clock b c a in_data + + in_addr in_ce Finite State Machine (FSM) C0 C1 C2 x3 y out_data + * x out_addr out_ce out_we C3 X14218 此代码示例执行的运算与前述示例相同。但它在 for 循环内执行运算,且 2 个函数实参为数组。调度此代码后,生成的 设计在 for 循环内执行 3 次该逻辑。高层次综合会从 C 语言代码自动提取控制逻辑,并在 RTL 设计中创建 FSM 以对这 些运算进行排序。高层次综合在最终 RTL 设计中将顶层函数实参作为端口来实现。类型为 char 的标量变量将映射到 标准 8 位数据总线端口。数组实参(如 in 和 out)包含完整数据集合。 在高层次综合中,数组默认综合到块 RAM 中,但有其它选项可供选择,例如,FIFO、分布式 RAM 和独立寄存器。使 用数组作为顶层函数中的实参时,高层次综合假定块 RAM 位于顶层函数外,并自动创建端口以访问位于设计外的块 RAM,例如,数据端口、地址端口和任何必需的芯片使能信号或写使能信号。 FSM 用于控制寄存器何时存储数据并控制任意 I/O 控制信号的状态。FSM 启动状态为 C0。在下一个时钟上,它会按 顺序依次进入 C1 状态、C2 状态和 C3 状态。它会返回 C1、C2 和 C3 状态总计 3 次,最后返回 C0 状态。 UG902 (v2019.2) 2020 年 1 月 13 日 高层次综合 china.xilinx.com 8 Send Feedback
分享到:
收藏