UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
ChinaForumAdmin
ChinaForumAdmin
15,359 次查看
注册日期: ‎02-01-2013

跟 Xilinx SAE 学 HLS (持续更新,中文讲解)

banner.jpg

 

现如今,日益复杂的电子产品中使用的先进设计正在挑战密度、性能和功耗的极限,同时也使设计团队面临挑战,要求我们必须在限定的预算,限定的时间内完成设计目标,从而获得市场机会窗口。赛灵思全可编程器件拥有强大的灵活性与高性能,但传统的 RTL 开发则让开发团队将大部分时间和资源耗费在细节的实施上……

 

现在,Vivado® HLS(高层次综合)来了!

 

无需手动创建RTL

 

直接使用 C,C++ 以及 System C 语言规范

 

让系统和设计架构师能够把更多的时间放在较高层次的描述中

 

获得更快的验证时间最大的生产效率的提升

 

所以……

 

我们的目标是:更优,更快,更鲁棒!

 


 

 本系列教学视频由赛灵思高级战略应用工程师带领你从零开始,一步步深入掌握 HLS 以及 UltraFAST 设计方法,帮助您成为系统设计和算法加速的大拿!

 

 

课 程 目 录

课程更新时间:每月的第二,第四个周二


Lesson 1:软件工程师该怎么了解 FPGA 架构?

课程介绍:本视频将由赛灵思专家向您详细介绍 FPGA 的架构,以及作为软件开发人员来说,应该对 FPGA 的哪些知识具备一定的了解?从而加速您的软硬件协同设计。

 

Lesson 2:Vivado HLS 工作机制

课程介绍:本节课的主要内容是通过具体实例来阐述 HLS 的原理,让工程师们可以放心使用 Vivado HLS。

 

Lesson 3:HLS 设计流程 — 基本概念介绍 

课程介绍:本节课介绍了与 Vivado HLS 设计流程相关的基本概念,使用户对基于 C/C++ 的高层次综合设计流程有一个基本的认识,为下一讲的实例演示做准备。

 

Lesson 4:HLS 设计流程 — 实例演示 

课程介绍:本讲通过具体实例演示 Vivado HLS 设计流程,包括设计输入、C 仿真、C 综合以及 C/RTL 协同仿真

 

 

Lesson 5:如何处理任意精度的数据类型 

课程介绍:本讲介绍了 Vivado HLS 所支持的数据类型,除了继承传统的 C/C++ 数据类型外,重点介绍针对硬件的任意精度数据类型

 

 

Lesson 6:数据类型的转换 

课程介绍:本节视频将首先介绍变量的初始化,之后重点介绍数据类型之间的转换,这对于算法描述时确定数据位宽非常重要

 

 

Lesson 7:了解 HLS 中的复合数据类型 

课程介绍:本节视频结合案例详细介绍了如何在 Vivado HLS 中使用 C++ 的复合数据类型:结构体和枚举类型

 

 

Lesson 8:在 Vivado HLS 中应用 C/C++ 基本运算 

课程介绍:本节视频涵盖了 C/C++ 中常用的基本运算,通过几个具体案例重点阐述在 Vivado HLS 中使用这些运算时应注意的一些事项。 

 

 

Lesson 9:Vivado HLS 下 C/C++ 测试平台的基本架构

课程介绍:本节课程着重讲解了在 Vivado HLS 下 C/C++ 测试平台的基本架构以及各组成部分的基本功能,包括测试激励、参考模型、待测单元和监测单元。 

 

 

Lesson 10:描述高效的C测试平台:测试激励 

课程介绍:本讲介绍了测试平台的重要组成部分测试激励,阐述了三种测试激励的描述方法,重点介绍了如何通过外部文件获取测试激励并结合具体实例加以演示。 

 

 

Lesson 11:描述高效的C测试平台:输出监测与格式控制 

课程介绍:本讲介绍了测试平台的重要组成部分输出监测,用于将待测模型的输出与参考模型的输出进行比较。同时也介绍了常用的格式控制,增强对输出信息的管理,以便于查找目标信息,为分析与定位错误提供便利。 

 

Lesson 12:接口综合 — 基本介绍 

课程介绍:本节介绍了接口综合的基本概念,包括 Block-level 接口和 Port-level 接口。着重介绍了 Vivado HLS 所支持的接口规范、C 函数的形参和 RTL 接口的关系。 

 

Lesson 13:接口综合 — 对数组的处理 

课程介绍:当数组作为形参出现在顶层函数时,Vivado HLS 通常会将其映射为 RAM 接口。本节介绍了 Vivado HLS 如何实现这一功能以及相应的 RAM 接口类型。 

 

Lesson 14:接口综合 — 其他案例 

课程介绍:本节介绍了接口综合的其他案例,包括如何添加I/O寄存器,添加全局时钟使能信号,控制I/O个数和设置复位信号的属性等。 

 

Lesson 15:FOR 循环优化 — 基本性能指标 

课程介绍:从本讲开始,我们将给大家介绍 Vivado HLS 所支持的 for 循环的优化方法。本讲着重介绍一些基本概念如 latency, Initial Interval 等,同时介绍了常用的优化方法:流水设计。 

 

Lesson 16:FOR 循环优化 — 循环合并 

课程介绍:在默认情况下,Vivado HLS 并不会对顺序执行的 for 循环优化为并行执行,LOOP_MERGE 约束提供了这样一种可能:for 循环并行执行。本讲结合案例介绍了循环合并的三个主要规则。 

 

Lesson 17:FOR 循环 — 数据流 

课程介绍:数据流约束可以使得原本顺序执行的多个 FOR 循环并行执行,但使用该约束是有条件限制的。本节讲述了数据流约束的使用方法和要求,重点讲述了如何通过代码层面的优化突破这些限制。 

 

Lesson 18:FOR 循环优化 — 嵌套的 FOR 循环 

课程介绍:在很多算法中都不可避免地用到嵌套的 FOR 循环,Vivado HLS 把嵌套的 FOR 循环分为三类。本节重点讲述如何通过流水对嵌套的 FOR 循环实现资源和性能的折中。 

 

Lesson 19:FOR 循环优化 - 其他优化方法 

课程介绍:本讲作为“FOR 循环优化”的收尾,介绍了其余的优化方法。包括:如何使独立的 FOR 循环并行执行、如何在使用 pipeline 时添加 rewind 以及如何处理循环边界为变量的情形。 

 

Lesson 20:数组优化 — 数组分割 

课程介绍:从本讲开始,我们将逐步介绍 “数组” 的一些优化方法。本讲介绍通过对数组分割来实现数据吞吐率的提升。 

 

Lesson 21:数组优化 — 数组映射和重组 

课程介绍:在本讲,我们介绍了数组优化的另外两种方法:数组映射和重组。两者均可减少对存储资源(LUTRAM,BRAM 或 URAM)的消耗。 

 

Lesson 22:数组优化 - 其他优化方法 

课程介绍:本节课中,我们将着重介绍在 Vivado HLS 中如何定义 ROM 以及如何对 RAM 初始化。 

 

Lesson 23:Vivado HLS 函数层面的优化 

课程介绍:本讲介绍了几种针对函数的优化,包括 inline,allocation 和 dataflow,同时也介绍了这些优化方法对综合的影响。 

 


--- 专家介绍 ---

Lauren Gao(高亚军),赛灵思高级战略应用工程师

Lauren 专注于 C/C++ 高层次综合,拥有多年利用 Xilinx FPGA 实现数字信号处理算法的经验,对 Xilinx FPGA 的架构、开发工具和设计理念有深入的理解。发布网络视频课程《Vivado入门与提高》点击率超过5万、出版《基于FPGA的数字信号处理(第2版)》一书,并广受好评。

---
^_^. 喵咿呜 @鱼猫饭