热度 1|||
记录FPGA学习历程……
本教程译自Xilinx UG871 2015.2,仅供学习交流之用。翻译不妥之处,请批评指正!
教程简介
简述
你现在看到的这个Vivado教程是一系列小例子的合辑。这些例子展示了运用高层综合(HLS)把C,C++或SyetemC代码转变成为RTL实现的过程。具体来说,它向你展现了如何(用C,C++或SyetemC)构建硬件电路最初的RTL级实现,以及在不改变C代码的情况下,如何通过优化命令把最初的RTL实现变为小面积、高吞吐率的硬件实现的方法。
高层综合(High-Level Synthesis)介绍
这个教程介绍了Vivado的高层综合(简称为HLS)。你可以学会使用HLS工具的方法。可以通过图形界面(GUI),也可以通过Tcl命令。
再强调一遍,这个教程告诉你如何建立最初的RTL级实现以及在不改变C代码的情况下通过优化指令把最初的RTL级实现变为低面积、高吞吐率的实现。
C验证
这个教程评估了C语言测试平台的一些概念,同时向你展现Vivado HLS环境中调试C语言的方法。这个教程也提到了调试“任意精度”数据类型的方法。
接口综合
教程的接口综合部分介绍了为RTL设计创建接口的所有内容。你可以学到怎样控制模块级的I/O口协议和布置I/O协议,C语言中的数组是如何是如何实现为多接口的,以及接口协议的类型(RAM,FIFO,AXI4-Stream)和AXI4总线接口的实现方法。
这个教程通过一个设计的实例,介绍了如何把I/O访问和逻辑放在一起进行优化,从而建立一个最佳的设计实现方案
任意精度数据类型
这个教程中的实验练习对比了同一个设计的两种描述方法。一种是通过C语言原生的数据类型,另一种则是通过Vivado HLS中特有的任意精度数据类型。通过对比,显示出后者在不牺牲结果精度的基础上提高了硬件的效率。
设计分析
这个教程通过一个DCT函数阐述了Vavido HLS的交互设计分析的特性。最初的设计通过一系列设计和优化的阶段,向你指明需要分析的各个方向的特点并且提供了基本的设计优化的方法。
设计优化
通过矩阵乘法器的例子,这个教程提出了两种优化方法。Lab1介绍了怎样把一个设计流水线化,同时对两种流水线化的方法进行了比拼:循环流水线化 VS 函数流水线化。
这个教程向你展示了怎样运用一些好的设计思想,这些思想源自分析并改进最初的C代码,从而为设计创建更优化的实现的过程。
RTL验证
这个教程告诉你怎样使用RTL协同仿真特性去自动验证综合器产生的RTL描述。这个教程展示了C语言测试平台的重要性,同时告诉你如何利用RTL验证的输出去查看Vivado和Mentor Graphics ModelSim 仿真器的波形图。
在IP核集中器中使用HLS IP核
这个教程展现了如何把HLS工具生成的RTL设计打包成IP核,加入Vivado IP核目录,同时在Vivado Design Suite中使用。
在一个Zynq AP SoC设计中使用HLS IP核
为了在Zynq-7000 SoC设计中使用 HLS IP 模块,这个教程展示了把HLS生成的C驱动文件添加到Zynq PS(ARM核)的软件中的方法。
在System Genertor for DSP中使用HLS IP核
这个教程展现了怎样把HLS创建的RTL设计打包成IP核并且在System Genertor for DSP中使用。
=========================================================================================================
软件要求:
Vivado
Design Suite 2015.1或更新版本
硬件要求:
建议有2GB以上的内存空间来运行Vivado