0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探索Vivado HLS设计流,Vivado HLS高层次综合设计

电子设计 来源:csdn 作者:Mculover666 2020-12-21 16:27 次阅读

作者:Mculover666

1.实验目的
通过例程探索Vivado HLS设计流

  • 用图形用户界面和TCL脚本两种方式创建Vivado HLS项目
  • 用各种HLS指令综合接口
  • 优化Vivado HLS设计来满足各种约束
  • 用不用的指令来探索多个HLS解决方案

2.实验内容
实验中文件中包含一个矩阵乘法器的实现,实现两个矩阵inA和inB相乘得出结果,并且提供了一个包含了计算结果的testbench文件来与所得结果进行对比验证。

3.实验步骤
3.1.在Vivado HLS GUI界面中创建项目
3.1.1.启动Vivado HLS 2018.1

3.1.2.创建一个新的工程


添加提前创建好的源文件进来,因为我们探索的是设计流而不是编程

添加提前创建好的测试文件进来:

o4YBAF9uG1yAVAdRAACEd52I2-U679.png

对于具体的FPGA进行解决方案配置,如图所示:

pIYBAF9uG16ADFyKAAEIqpr1vRI119.png


工程创建完成,综合界面如图所示:

3.2.在Vivado HLS 命令行中快速创建项目
在3.1节中采用GUI界面完成了创建工程的工作,这个工程命名和添加文件创建工程的工作可以由一个TCL脚本完成,可以大幅提高我们的效率~

3.2.1.打开Vivado HLS 命令行界面


3.2.2.编写创建工程TCL脚本
新建一个文件run_hls_pynq.tcl,然后编写以下工程配置:
# 创建工程
open_project -reset matrix_mult_prj

# 添加源文件和测试文件
add_files matrix_mult.cpp
add_files matrix_mult.h
add_files -tb matrix_mult_test.cpp

# 设置工程顶层
set_top matrix_mult

# 创建解决方案
open_solution -reset solution1

# 选择具体的FPGA芯片配置
set_part {xc7z010clg400-1}
create_clock -period 5

# 模拟C代码
csim_design

exit

3.2.3.在Vivado HLS命令行运行TCL脚本
在刚刚打开的Vivado HLS命令行界面中输入cd ,然后输入目录所在盘符,进入目录后使用命令vivado_hls -f run_hls_pynq.tcl即可运行脚本,完整过程如图所示:

这样一个工程就创建好了;

3.2.4.在Vivado HLS命令行打开创建的工程
使用命令vivado_hls -p matrix_mult_prj即可在GUI界面打开工程,如图:


3.3.Vidavo HLS中的设计优化
3.3.1.文件作用c

  • matrix_mult.cpp 包含了迭代计算矩阵乘法的代码
  • matrix_mult.h 包含了宏定义和函数声明
  • matrix_mult_test.cpp 测试文件,包含了使用HLS硬件解决方案计算和软件计算的结果,并计算验证

3.3.2.运行C仿真
点击Run C Simulation按钮,然后不用选择,直接下一步,可以看到控制台输出:


o4YBAF9uG3SAYxETAAEjf9_iBw0327.png

3.3.2.使用HLS综合C++代码
点击C Synthesis按钮,Vivado HLS会开始综合C++代码,综合完成后会自动打开综合报告,其中详细的描述了设计的时序以及FPGA资源占用估算等:

o4YBAF9uG3WAZYnAAADVlQ88W00053.png

3.3.3.C/RTL共同协作
点击Run C/RTL Cosimulation按钮,选择生成verilog语言文件,设计完成后会自动弹出结果,如图所示:


3.3.4.新建一个解决方案进行对比
点击New Solution按钮新建一个解决方案:

然后打开matrix_mult.cpp文件,选择右边的directive视图,右击Product,选择Inser Directive,然后选择PIPELINE,确定之后运行C综合来综合出RTL设计,完成后同样会弹出设计信息

然后可以将报告与之前solution1的报告进行对比,

3.3.5.分析
进入Analysis视图:

3.3.6.新建一个流水线解决方案

3.3.7.解决方案对比



o4YBAF9uG4GAPdJzAADqE2DLLgI643.png

3.4.接口综合
3.4.1.TCL脚本新建工程
在F:/SOC/PYNQ-Z2/HLSproject/hls/tut3C文件夹,使用命令:
vivado_hls -f run_hls_pynq.tcl

3.4.2.打开工程
vivado_hls -p matrix_mult_prj

3.4.3.C Synthesis

pIYBAF9uG4OAGHaBAACgyjbGK0U079.png

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Vivado
    +关注

    关注

    19

    文章

    808

    浏览量

    66321
收藏 人收藏

    评论

    相关推荐

    Vivado 高层次综合

    感谢你对Vivado HLS也就是XILINX’s 高层次综合解决方案有兴趣,这个解决方案综合c,c++和系统c代码成Verilog和VHD
    发表于 04-25 08:59 2865次阅读

    来自vivado hls的RTL可以由Design Compiler进行综合吗?

    您好我有一个关于vivado hls的问题。RTL是否来自xivix FPGA的vivado hls onyl?我们可以在Design Compiler上使用它进行
    发表于 04-13 09:12

    高层次综合工作的基本流程

      下图揭示了高层次综合工作的基本流程,以及它于传统的RTL综合流程的对比。接下来将对行为描述,行为综合,分析与优化三个主要子流程详细描述。    1、行为描述  当我们把
    发表于 01-06 17:52

    vivado高层次综合HLS定义及挑战

    HLS高阶综合(highlevelsynthesis)在被广泛使用之前,作为商业技术其实已经存在了20多年。设计团队对于这项技术可以说呈现出两极化的态度:要么坚信它是先进技术之翘楚,要么对其持谨慎
    发表于 07-06 08:00

    Vivado HLS设计的相关资料分享

    1.实验目的通过例程探索Vivado HLS设计流用图形用户界面和TCL脚本两种方式创建Vivado HLS项目用各种
    发表于 11-11 07:09

    FPGA高层次综合HLS之Vitis HLS知识库简析

    1、HLS最全知识库介绍高层次综合(High-level Synthesis)简称HLS,指的是将高层次语言描述的逻辑结构,自动转换成低抽象
    发表于 09-07 15:21

    使用Vitis HLS创建属于自己的IP相关资料分享

    1、使用Vitis HLS创建属于自己的IP高层次综合(High-level Synthesis)简称HLS,指的是将高层次语言描述的逻辑结
    发表于 09-09 16:45

    使用Vivado高层次综合 (HLS)进行FPGA设计的简介

    Introduction to FPGA Design with Vivado High-Level Synthesis,使用 Vivado 高层次综合 (
    发表于 01-06 11:32 65次下载

    Hackaday读者有话说:Vivado HLS使用经验分享

    ,Xilinx Vivado HLS是一个高级综合工具,能够将C语言转换成硬件描述语言(HDL),也就是说我们可以用C语言来实现HDL模块编程了。 图1 Vivado
    发表于 02-08 20:01 649次阅读
    Hackaday读者有话说:<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>使用经验分享

    Vivado Hls 设计分析(二)

    在使用高层次综合,创造高质量的RTL设计时,一个重要部分就是对C代码进行优化。Vivado Hls总是试图最小化loop和function的latency,为了实现这一点,它在loop
    发表于 11-16 14:44 3653次阅读

    使用Vivado高层次综合工具高效评估和实现所选压缩算法

    ,有助于应对这种挑战。 我们使用 Vivado® Design Suite 的高层次综合 (HLS) 工具来评估针对 E-UTRA I/Q 数据的开放无线电设备接口 (ORI) 标准压
    发表于 11-16 20:05 2152次阅读
    使用<b class='flag-5'>Vivado</b><b class='flag-5'>高层次</b><b class='flag-5'>综合</b>工具高效评估和实现所选压缩算法

    关于赛灵思高层次综合工具加速FPGA设计的介绍和分享

    Vivado HLS配合C语言等高级语言能帮助您在FPGA上快速实现算法。 高层次综合HLS)是指自动
    发表于 10-06 10:44 1371次阅读
    关于赛灵思<b class='flag-5'>高层次</b><b class='flag-5'>综合</b>工具加速FPGA设计的介绍和分享

    基于Vivado高层次综合工具评估IQ数据的无线电设备接口压缩算法设计

    我们使用 Vivado ®Design Suite 的高层次综合HLS) 工具来评估针对 E-UTRA I/Q 数据的开放无线电设备接口 (ORI) 标准压缩方案,以估计其对信号
    发表于 07-24 09:30 2164次阅读
    基于<b class='flag-5'>Vivado</b><b class='flag-5'>高层次</b><b class='flag-5'>综合</b>工具评估IQ数据的无线电设备接口压缩算法设计

    PYNQ上手笔记 | ⑤采用Vivado HLS进行高层次综合设计

    1.实验目的通过例程探索Vivado HLS设计流用图形用户界面和TCL脚本两种方式创建Vivado HLS项目用各种
    发表于 11-06 09:20 6次下载
    PYNQ上手笔记 | ⑤采用<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>进行<b class='flag-5'>高层次</b><b class='flag-5'>综合</b>设计

    使用Vivado高层次综合(HLS)进行FPGA设计的简介

    电子发烧友网站提供《使用Vivado高层次综合(HLS)进行FPGA设计的简介.pdf》资料免费下载
    发表于 11-16 09:33 0次下载
    使用<b class='flag-5'>Vivado</b><b class='flag-5'>高层次</b><b class='flag-5'>综合</b>(<b class='flag-5'>HLS</b>)进行FPGA设计的简介