完整word版学习VivadoHLS第5章例程中文版.docx

上传人:b****1 文档编号:10302995 上传时间:2023-05-24 格式:DOCX 页数:11 大小:1.15MB
下载 相关 举报
完整word版学习VivadoHLS第5章例程中文版.docx_第1页
第1页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第2页
第2页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第3页
第3页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第4页
第4页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第5页
第5页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第6页
第6页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第7页
第7页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第8页
第8页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第9页
第9页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第10页
第10页 / 共11页
完整word版学习VivadoHLS第5章例程中文版.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

完整word版学习VivadoHLS第5章例程中文版.docx

《完整word版学习VivadoHLS第5章例程中文版.docx》由会员分享,可在线阅读,更多相关《完整word版学习VivadoHLS第5章例程中文版.docx(11页珍藏版)》请在冰点文库上搜索。

完整word版学习VivadoHLS第5章例程中文版.docx

完整word版学习VivadoHLS第5章例程中文版

学习Vivado第5章lab1——任意精度类型

概述

C/C++提供的数据类型被固定为8位边界

•char(8-bit)

•short(16-bit)

•in(32-bit)

•longlong(64-bit)

•float(32-bit)

•double(64-bit)

•精确宽度的整数类型,如int16_t(16位)和int32_t(32位)

当创建硬件时,经常在一些例子中要求更高精度的位宽。

例如,一个输入为12位的滤波器,累积的结果最大范围只要求27位,用标准C数据类型的硬件设计会导致不必要的硬件成本。

比精确类型要求更多LUT和寄存器的操作延迟甚至超过时钟周期,因此需要更多的周期来计算结果

Vivado高层次综合(HLS)提供了许多位准确或任意精度的数据类型,可以让你模拟使用任何(任意)宽度的变量。

本教程由两个实验练习组成:

•Lab1–综合使用浮点类型的设计和查看结果。

本设计采用标准C++浮点类型。

•Lab2–综合在lab1中使用同样的功能但使用任意精度合适类型,突出在精度和结果的优点。

这次演习显示了同样的设计如何可以转换到VivadoHLSap_fixed类型,保留所要求的精度,但创造一个更优化的硬件实现。

教程设计描述

从xilinx网站下载教程设计文件,在教程设计中查看信息。

教程所用的设计文件在教程目录vivado_HLS_Tutorial\Arbitary\Precision

任意精度:

Lab1

任意精度Lab1:

查看采用的标准C/C++类型设计

在这个lab中,您用标准的C类型综合设计,您用此设计作为一个参考,为lab2使用任意精度类型的设计的参考。

重要:

在教程中的图片和命令假设教程数据路径vivado_HLS_Tutorial被解压放置在c:

\vivado_HLS_Tutorial中。

如果教程数据目录解压缩到不同的位置,或者在Linux系统上,调整一些路径名引用到的位置您选择放置Vivado_HLS_Tutorial目录。

步骤1:

创建并打开工程

1.打开VivadoHLS命令提示符

a.在windows系统中,采用Start>AllPrograms>XilinxDesignTools>Vivado2014.2>VivadoHLS>VivadoHLS2014.2CommandPrompt,如下图

b.在linux系统下,打开新的shell,

2.用命令提示符窗口,如92,改变lab1C验证的路径

3.执行TCL并建立vivadoHLSProject,采用的是vivado_hls–frun_hls.tcl如图92所示

4.当vivadoHLS完成,在用户界面里打开工程。

用vivado_hls–phamming_window_prj命令打开,如图93

步骤2:

查看测试平台并运行C仿真

1.在资源管理器中打开Sourcefoleder,并双击window_fn_top.cpp打开代码如图94

2.按住ctrl键,并点击window_fn_top.h在45行,来打开头文件

3.向下滚动,展示类型定义如图95

这个设计采用标准的C/C++浮点类型对所有数据进行操作。

Vivado高层次综合能综合浮点类型直接转化成硬件,提供的操作是标准的数学操作(+、-、*、%、etc).

当用从math.h或cmath.h中调用数学函数时,参考vivadoHLSuserguide(ug902)更多的细节关于数学函数在综合中被支持。

4.在工具栏中点击runCSimulation按钮,打开C仿真对话框。

5.接受默认的设置(没有选项被选择)并点击OK

控制台窗口出现了设计仿真希望的结果

步骤3:

综合设计查看结果

1.在工具栏中点击RunCSynthesis按钮,为了把设计综合成RTL级

当综合完成,综合报告自动打开,图96出现了综合报告

实例中的顶层设计占用大多数资源。

2.把滚轮到报告的底部,展看实例,查看资源估计的细节部分如图97

细节展示了浮点乘法,(fmul),浮点操作花费了大量的资源和时钟。

分析视图(图98)展示了这个操作还用了大部分的时钟周期,(8个状态中的5个需要来执行有循环winfn创建的逻辑)。

在本教程中,关于使用分析视图的更多细节可用。

为了理解这种设计的目的,操作的两个状态,在第一个状态中,花费两个时钟从存储器中读操作,最后一个状态的操作是往存储器中写状态。

3.退出vivadoHLS用户界面,返回命令提示符

学习Vivado第5章lab2——查看用任意精度类型的设计

简介

这个lab练习采用了和lab1同样的设计,但是数据类型现在是任意精度类型。

您首先查看设计,并检查设计结果。

步骤1:

创建并仿真工程

1.在lab1中用命令提示符窗口,变为lab2路径如图99

2.执行TCL并建立vivadoHLSProject,采用的是vivado_hls–frun_hls.tcl如图99所示

3.在用户界面里打开工程。

用vivado_hls–pwindow_fn_prj命令打开,

4.在资源管理器中打开源文件夹,并双击window_fn_top.cpp打开代码,如图100

5.按住ctrl键,并在45行单击window_fn_top.h,打开头文件

6.滚动文件的下方,查看类型定义如图101

头文件,window_fn_top.h仅有这个文件不同于lab1,数据类型已更改为ap_fixed点类型,类似于float和double类型的,他们支持整数和小数位表示。

数据类型在头文件ap_fixed中被定义。

在头文件中的定义定义数据类型的大小:

∙首先规定了总字的长度

∙第二定了整形位数

∙因此小数位的数目是第一项减去第二项

当你修改C代码使用任意精度的类型,而不是标准的C类型,你必须做出最常见的变化之一是降低数据类型的大小。

在这种情况下,你改变使用8位,24位和18位的字,而不是32位浮点类型的设计。

这将导致较小的操作,减小的面积,以及更少的时钟周期来完成。

类似的优化帮助,当你改变较为常见的C类型,如int,short和char。

例如,改变只需要从整形(32位)变为INT18位数据类型,确保只用一个单一的DSP48需要执行任何乘法。

在这两种情况下,必须确认该设计仍执行正确的操作,并且它也具有所要求的精度。

设置有Vivado高级综合的任意精度类型的好处是可以模拟的更新的C代码,以确认其功能和精确度。

7.在资源管理器中打开测试平台文件夹,并双击

8.滚到文件下方,查看如图102

为了这个设计的测试平台包括代码用了检查结果的精度。

预期的结果是使用浮点类型仍然产生。

结果检查验证的结果是准确的指定范围之内(在这种情况下,内0.001的预期结果)。

这使得更新后的设计可以快速,高效地使用C进行验证,以快速编译和运行时间。

9.在工具栏中点击RunCSimulation按钮,打开C仿真对话框

10.接受默认设置(没有选项的选择)并点击OK

控制台窗口展示了C仿真的结果,用更新数据类型,其结果与期望的结果不再相同,但是它们是在误差范围内。

步骤2:

综合设计并查看结果

1.在工具栏里点击RunCSynthesis按钮,把设计综合成RTL。

当综合完成,综合报告自动打开,如图104所示综合报告

注意通过使用任意精度类型,你可以减少延迟和资源使用(25%和60%),和在RTL硬件中的操作是不大于必要了。

2.向下滚动到接口总结报告图105

图105展示了数据端口现在是8位和24位

3.退出VIVADOHLS用户界面,返回命令提示符

总结

在这个教程中,您学习到:

•如何更新现有的标准C类型为Vivado高层次综合任意精度的类型。

•在硬件性能和使用位精确的数据类型的面积计算的优势。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 自我管理与提升

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2