现如今,日益复杂的电子产品中使用的先进设计正在挑战密度、性能和功耗的极限,同时也使设计团队面临挑战,要求我们必须在限定的预算,限定的时间内完成设计目标,从而获得市场机会窗口。赛灵思全可编程器件拥有强大的灵活性与高性能,但传统的 RTL 开发则让开发团队将大部分时间和资源耗费在细节的实施上……
现在,Vivado® HLS(高层次综合)来了!
无需手动创建RTL
直接使用 C,C++ 以及 System C 语言规范
让系统和设计架构师能够把更多的时间放在较高层次的描述中
获得更快的验证时间和最大的生产效率的提升
所以……
我们的目标是:更优,更快,更鲁棒!
本系列教学视频由赛灵思高级战略应用工程师带领你从零开始,一步步深入掌握 HLS 以及 UltraFAST 设计方法,帮助您成为系统设计和算法加速的大拿!
课 程 目 录
课程更新时间:每月的第二,第四个周二
课程介绍:本视频将由赛灵思专家向您详细介绍 FPGA 的架构,以及作为软件开发人员来说,应该对 FPGA 的哪些知识具备一定的了解?从而加速您的软硬件协同设计。
课程介绍:本节课的主要内容是通过具体实例来阐述 HLS 的原理,让工程师们可以放心使用 Vivado HLS。
课程介绍:本节课介绍了与 Vivado HLS 设计流程相关的基本概念,使用户对基于 C/C++ 的高层次综合设计流程有一个基本的认识,为下一讲的实例演示做准备。
课程介绍:本讲通过具体实例演示 Vivado HLS 设计流程,包括设计输入、C 仿真、C 综合以及 C/RTL 协同仿真。
课程介绍:本讲介绍了 Vivado HLS 所支持的数据类型,除了继承传统的 C/C++ 数据类型外,重点介绍针对硬件的任意精度数据类型。
课程介绍:本节视频将首先介绍变量的初始化,之后重点介绍数据类型之间的转换,这对于算法描述时确定数据位宽非常重要。
课程介绍:本节视频结合案例详细介绍了如何在 Vivado HLS 中使用 C++ 的复合数据类型:结构体和枚举类型。
Lesson 8:在 Vivado HLS 中应用 C/C++ 基本
课程介绍:本节视频涵盖了 C/C++ 中常用的基本运算,通过几个具体案例重点阐述在 Vivado HLS 中使用这些运算时应注意的一些事项。
Lesson 9:Vivado HLS 下 C/C++ 测试平台的基本架构
课程介绍:本节课程着重讲解了在 Vivado HLS 下 C/C++ 测试平台的基本架构以及各组成部分的基本功能,包括测试激励、参考模型、待测单元和监测单元。
课程介绍:本讲介绍了测试平台的重要组成部分测试激励,阐述了三种测试激励的描述方法,重点介绍了如何通过外部文件获
Lesson 11:描述高效的C测试平台:输出监测与格式控制
课程介绍:本讲介绍了测试平台的重要组成部分输出监测,用于将待测模型的输出与参考模型的输出进行比较。同时也介绍了
课程介绍:本节介绍了接口综合的基本概念,包括 Block-level 接口和 Port-level 接口。着重介绍了 Vivado HLS 所支持的接口规范、C 函数的形参和 RTL 接口的关系。
课程介绍:当数组作为形参出现在顶层函数时,Vivado HLS 通常会将其映射为 RAM 接口。本节介绍了 Vivado HLS 如何实现这一功能以及相应的 RAM 接口类型。
课程介绍:本节介绍了接口综合的其他案例,包括如何添加I/O寄存器,添加全局时钟使能信号,控制I/O个数和设置复位信号的属性等。
课程介绍:从本讲开始,我们将给大家介绍 Vivado HLS 所支持的 for 循环的优化方法。本讲着重介绍一些基本概念如 latency, Initial Interval 等,同时介绍了常用的优化方法:流水设计。
课程介绍:在默认情况下,Vivado HLS 并不会对顺序执行的 for 循环优化为并行执行,LOOP_MERGE 约束提供了这样一种可能:for 循环并行执行。本讲结合案例介绍了循环合并的三个主要规则。
课程介绍:数据流约束可以使得原本顺序执行的多个 FOR 循环并行执行,但使用该约束是有条件限制的。本节讲述了数据流约束的使用方法和要求,重点讲述了如何通过代码层面的优化突破这些限制。
Lesson 18:FOR 循环优化 — 嵌套的 FOR 循环
课程介绍:在很多算法中都不可避免地用到嵌套的 FOR 循环,Vivado HLS 把嵌套的 FOR 循环分为三类。本节重点讲述如何通过流水对嵌套的 FOR 循环实现资源和性能的折中。
课程介绍:本讲作为“FOR 循环优化”的收尾,介绍了其余的优化方法。包括:如何使独立的 FOR 循环并行执行、如何在使用 pipeline 时添加 rewind 以及如何处理循环边界为变量的情形。
课程介绍:从本讲开始,我们将逐步介绍 “数组” 的一些优化方法。本讲介绍通过对数组分割来实现数据吞吐率的提升。
课程介绍:在本讲,我们介绍了数组优化的另外两种方法:数组映射和重组。两者均可减少对存储资源(LUTRAM,BRAM 或 URAM)的消耗。
课程介绍:本节课中,我们将着重介绍在 Vivado HLS 中如何定义 ROM 以及如何对 RAM 初始化。
课程介绍:本讲介绍了几种针对函数的优化,包括 inline,allocation 和 dataflow,同时也介绍了这些优化方法对综合的影响。
--- 专家介绍 ---
Lauren Gao(高亚军),赛灵思高级战略应用工程师
Lauren 专注于 C/C++ 高层次综合,拥有多年利用 Xilinx FPGA 实现数字信号处理算法的经验,对 Xilinx FPGA 的架构、开发工具和设计理念有深入的理解。发布网络视频课程《Vivado入门与提高》点击率超过5万、出版《基于FPGA的数字信号处理(第2版)》一书,并广受好评。