读zynq_ebook笔记知识点(三)
0赞第十一章:硬件/软件划分
FPGA 可编程逻辑适合解决那种能高效地划分为多道并行任务的问题。由于可编程逻辑固有的并行执行方式,多个运算可以被同时处理,用比串行处理更短的时间计算出最终的结果。FPGA 实现的例子应用包括数字过滤计算、波束形成和图像处理。传统上这些任务是重复的,而且计算的过程本质上是完全静态的。另一方面,存在一些更动态、不可预测的问题,这些任务更适合在基于处理器的系统上实现。
在决定一个过程应该以硬件还是软件来实现的时候,另一个要考虑的因素是要用到的格式的数量。传统上,由于存在特别开发的向量数学引擎和专用的浮点单元,处理器对于浮点运算具有更好的支持。FPGA 可以支持浮点计算,但是需要很大数量的逻辑单元来实现。对于高精度定点计算也是类似的情况。现在,随着FPGA 尺寸的增加,用于实现高精度计算的逻辑部分所占的面积,相对于芯片的尺寸已经变少了,所以高精度计算也变得常见了。因此,如果一个应用需要高精度浮点运算,最好的选择是要么用处理器实现,要么在大规模的FPGA 中实现。
2.串并比较
第十三章:IP 包设计
vivado HLS设计流程:
IP-XACT — IP-XACT 是由SPIRIT 财团提出的一种公共的设计IP 的文档规范。这是一种被广泛使用的描述IP 的XML 模版,它与具体的工具无关而且机器可读[1]。如果你的IP 设计要被引入到Vivado IP Catalog,就应该选
择这种格式[6]。
第18 章《IP 重用与集成》更详细地说明了IPXACT。
IP Core — 选择这个选项的时候,你的IP 会被输出成能被输入到XPS 去的格式。
SysGen — 这个选项让你能把结果RTL 文件输出成一个可以用在SystemGenerator 的设计中的包。
2. 选择正确的IP 创建方法
实现最高运算频率、利用最少的硬件资源、最短的开发时间,还是折中。你还必须考虑你或你的团队对于哪种方法最具经验,以及采用不熟悉的方法时所需的学习曲线的问题。如果某种格式具有仿真模型,比如MATLAB/ Simulink 或C/C++,你很有可能可以利用它们,然后用某个方法从中产生IP,比如HDL Coder 或Vivado HLS。
第十四章:高层综合
终于可以学vivado HLS这方面的内容啦,后嗨新,在接下来两章里面介绍高级综合和vivado HLS使用。
Vivado HLS 把C、C++ 或SystemC 的设计转换成RTL 实现,然后就可以在Xilinx FPGA 或Zynq 芯片的可编程逻辑中综合并实现了
2. 在做HLS 的时候,要分析设计的两个主要方面:
. 设计的接口,也就是它的顶层连接,以及;
. 设计的功能性,也就是它所实现的算法。
3. Vivado HLS 设计流
第十五章:vivado HLS
1. vivado HLS 综合过程的概述
2. Vivado HLS 的C 和C++ 任意精度数据类型
注意在C 中使用任意精度整数类型的时候,必须使用另一个编译器(apcc 而不是gcc),细节见[18]。C++ 无需如此。
,并非所有的浮点运算都被HLS所支持,所以写代码的时候得要记着这些限制。