• 首先我在米联客上看到HLS算法基础入门12课时的S05_CH08_傅里叶变换的 HLS 实现,中间一段提到这个教程根据官方实现

在官方的参考手册 ug871-vivado-high-level-synthesis-tutorial.pdf 中对 FFT 有比较详细的介绍,并且官方提供的 Example 中也有对应的工程方便大家学习,这一节我们主要说一下如何使用 TCL 语言创建工程,并且进行对应的操作,源码直接使用官方提供的

  • 好的,那就没有米联客什么事了,打开Docnav搜索ug871,仔细找找在chapter 9,Using HLS IP in IP Integrator找到宝藏,藏得可真够深的,一句FFT都没有提到,而且这个教程有点奇怪,既有ISE示例截图又有Vivado示例截图,不过应该不影响使用。点击蓝字会跳转到PDF里一个教你如何下载例程的界面,解压文件后定位到文件夹Vivado_HLS_Tutorial\Using_IP_with_IPI

  • 首先要下载一下官方的例程Vivado_HLS_Tutorial,网址是https://www.xilinx.com/cgi-bin/docs/ctdoc?cid=fb443589-ba28-4756-841c-ba83be7ecdf8;d=ug871-design-files.zip,解压在一个英文名文件夹下。这个例程不大我自己搞了一个下载地址https://wws.lanzous.com/iBfghos5hih

  • 在应用里找到Vivado HLS 2018.3 Command Prompt

  • 定位到文件夹Vivado_HLS_Tutorial\Using_IP_with_IPI\lab1\hls_designs并输入命令vivado_hls -f run_hls.tcl

  • 运行完成可以看见多了两个文件夹be_vhls_prj和fe_vhls_prj

  • 如文档所述我们需要的IP就在这里面

  • 打开文件夹查看确实多了个zip文件


  • 新建一个名为RealFFT的工程

  • 打开settings的IP的Repository添加刚刚创建的IP

  • select选中后刷新一下

  • 最后结果如下

  • 点击加号就可以使用这个新建的IP

  • 如图所示

  • 接下来的步骤可以参考ug871,添加模块FFT并修改配置

  • 勾选低电平复位

  • 根据ug871进行连线,根据米联客这两个模块是用作数据转化,转换成FFT处理的数据

  • make external并修改端口名字为real2xfft_din

  • 输出端口也需要修改为xfft2real_dout

  • 为fft模块时钟和复位make external

  • 添加模块constant IP并设置位宽为1

  • 连接两个外接模块的ap_start

  • 把时钟信号和复位信号都连接在一起

  • 按照ug871添加realfft_rtl_tb.v,但顶层文件要修改为Real_FFT_wrapper,以及仿真10us时间也太长了

  • 但这没数据也看不出啥啊摸头

  • 按照米联客再添加一个AXI4模块axis_subset_converter并继续打包成IP在其他工程中进行调用

  • 这个教程旨在教会你用TCL创建工程,里面源代码还是可以看一下学习配置思路

  • hls_realfft.h尝试修改输入数据位宽为32位,将上述步骤再跑一遍,希望能成功

  • 直接修改不太行,开始位宽为32位输出为64位,先放弃这个想法/(ㄒoㄒ)/~~目前还不具备直接修改FFT代码的能力。

  • 打包IP

  • 点击当前工程current project点击include ip generate files

  • 点击package ip

  • 新生成模块如图所示

  • 或者全选整个模块点击create hierarchy输入名字real_fft

  • 展开来可以看见整个模块

  • 这里表扬一下米联客,虽然视频教程做得不深入,但起码解决了从无到有的问题,对概念的科普还是挺详细的。

  • 最后骂一句论文,一点卵用都没有,看了那么多还是白白浪费时间,都说根据官方教程来得,具体怎么实现却又都含糊其辞

xilinx官方教程ug871利用HLS实现RealFFT相关推荐

  1. socket 获取回传信息_Luat系列官方教程5:Socket代码详解

    文章篇幅较长,代码部分建议横屏查看,或在PC端打开本文链接.文末依然为爱学习的你准备了专属福利~ TCP和UDP除了在Lua代码声明时有一些不同,其他地方完全一样,所以下面的代码将以TCP长连接的数据 ...

  2. Hololens官方教程精简版 - 08. Sharing holograms(共享全息影像)

    前言 注意:本文已更新到5.5.1f1版本 本篇集中学习全息影像"共享"的功能,以实现在同一房间的人,看到"同一个物体".之所以打引号,是因为,每个人看到的并非 ...

  3. TensorFlow2.0 Guide官方教程 学习笔记20 -‘Effective TensorFlow 2‘

    本笔记参照TensorFlow Guide官方教程,主要是对'Effictive TensorFlow 2'教程内容翻译和内容结构编排,原文链接:Effictive TensorFlow 2 高效的T ...

  4. 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  5. Unity3D官方教程爬坑

    全是在学官教时遇到的坑,然后数小时后爬出来.同时会添加到处学来的的Unity技巧 ---------------------------------------------------------- ...

  6. Keras Tuner官方教程

    Keras Tuner官方教程 import tensorflow as tf from tensorflow import keras Install and import the Keras Tu ...

  7. 《SteamVR2.2.0官方教程(二)》(Yanlz+Unity+XR+VR+AR+MR+SteamVR+Valve+Tutorials+Interaction+Oculus+立钻哥哥++ok++)

    <SteamVR2.2.0官方教程> <SteamVR2.2.0官方教程> 版本 作者 参与者 完成日期 备注 SteamVR2.2.0_Tutorials_V01_1.0 严 ...

  8. 《SteamVR2.2.0官方教程(一)》(Yanlz+Unity+XR+VR+AR+MR+SteamVR+Valve+Oculus+Tutorials+Interaction+立钻哥哥++ok++)

    <SteamVR2.2.0官方教程> <SteamVR2.2.0官方教程> 版本 作者 参与者 完成日期 备注 SteamVR2.2.0_Tutorials_V01_1.0 严 ...

  9. 网页更新提醒官方教程(选项配置)

    网页更新提醒:任何网页.任何RSS.任何API,给您24小时盯着 全局配置 全局配置用于设置所有任务公共或默认属性,避免相同的重复设置. 公共配置 选取模式:具体参考网页更新提醒官方教程(区域圈选) ...

最新文章

  1. Uncaught SyntaxError: Unexpected token
  2. Visual Studio 2005 中的 命令窗口
  3. 蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践
  4. IT服务台的进化(2)--企业外部服务台的优缺点
  5. Servlet3.0 多图片,文件上传
  6. 洛谷 P5091 【模板】欧拉定理
  7. Linux Netcat command – The swiss army knife of net
  8. 数据分析师初级—中级—高级,每个阶段都需要学习什么?
  9. 何凯明最新一作:Masked Autoencoders Are Scalable Vision Learners
  10. 如何在Mac OS上从Photoshop 2020作为插件访问Topaz DeNoise AI?
  11. 小技巧|H5禁止手机虚拟键盘弹出
  12. 青岛阳光计算机学校,青岛恒星科技学院
  13. C语言fgets()函数
  14. Java 基础学习(9)
  15. java wate_Java Items.water_bucket方法代码示例
  16. 荨麻疹自我治理指南(民间版)
  17. MCU DC-DC数控电源
  18. java中文句号转换英文句号_java实现中文或其他语言及标点符号等转换成unicode字符串,或unicode的16进制码转换回文字或符号等...
  19. Guitar Pro里的渐强渐弱符号
  20. 史蒂夫·乔布斯 - 简介

热门文章

  1. 未来比较火的计算机领域,【火了】未来十年,中国人才最紧缺的6个专业!
  2. 自考运筹学第三章课后题
  3. JavaScript-this指向问题
  4. vue组件内数值做watch监听,首次监听不到的问题
  5. FFmpeg源代码结构图 - 编码
  6. layUI table 按条件搜索 结果整个页面刷新
  7. erlang 变量存储在哪里_erlang中变量作用域
  8. 【服务器】【个人网盘】宝塔安装NextCloud
  9. NYOJ105 - 九的余数
  10. linux查看log日志在哪,如何查看linux的系统log日志