ZYNQ之HLS学习----开篇实验

1 Vivado HLS简介

Xilinx 推出的 Vivado HLS 工具可以直接使用C、C++或 System C 来对 Xilinx 系列的 FPGA 进行编程

FPGA 设计中从底层向上一共存在着四种抽象层级,依次为:结构性的、RTL、行为性的和高层

Vivado HLS 的功能简单地来说就是把 C、C++ 或 SystemC 的设计转换成 RTL 实现,然后就可以在 Xilinx FPGA 或 Zynq 芯片的可编程逻辑中综合并实现了

2 开篇实验

实验任务是使领航者底板上的 PL LED0 和 PL LED1 以固定的频率交替闪烁,要求使用 C 或C++语言完成设计,然后综合得到 RTL 级实现并进行验证

2.1 HLS设计

打开 Vivado HLS 工具,界面如图所示:

在这里插入图片描述

如下图,创建一个新的工程,输入工程名和路径,点击Next:

在这里插入图片描述

如下图,继续点击Next:

在这里插入图片描述

进入如下界面,继续点击Next:

在这里插入图片描述

选择芯片型号,如图所示:

在这里插入图片描述

创建工程完成,界面如下:

在这里插入图片描述

按下步骤新建源文件:

在这里插入图片描述

将源文件保存在工程目录下新建的名为src的文件下:

在这里插入图片描述

本次试验代码如下:

#include <ap_cint.h>

#define DELAY 50000000

void led_twinkle(uint2 *led ){
      int i = 0;
      for(i = 0; i < DELAY; i++){
           if(i < DELAY/2)
             *led = 1;
           else
             *led = 2;
     }
 }

输入代码,进行综合,如图所示:

在这里插入图片描述

综合结果的报告,如图所示:

在这里插入图片描述

打开 Directive 标签页,右击 led_twinkle ,选择Insert Directive,如图所示:

在这里插入图片描述

弹出界面,作如下配置:

在这里插入图片描述

然后,源代码多出语句如下:

在这里插入图片描述

Directive 标签页,右击 led ,然后选择Insert Directive,如图所示:

在这里插入图片描述

进行如下配置:

在这里插入图片描述

源码如下:

在这里插入图片描述

再次进行综合,综合报告如下:

在这里插入图片描述

进行如下操作,导出RTL:

在这里插入图片描述

弹出如下窗口,点击OK:

在这里插入图片描述

IP核如图所示:

在这里插入图片描述

2.2 IP验证

创建工程,如图所示:

在这里插入图片描述

输入工程名和工程路径,该路径与HLS工程路径保持一致:

在这里插入图片描述

按如下操作:

在这里插入图片描述

选择芯片型号:

在这里插入图片描述

工程创建完成:

在这里插入图片描述

将 HLS 设计过程中导出的 IP 核拷贝到 Vivado 工程目录下,在 Vivado 工
程目录下新建一个名为ip_repo的文件夹,然后拷贝并解压IP核压缩包:

在这里插入图片描述

将IP添加到工程的IP库,按如下操作:

在这里插入图片描述

点击IP中的Repository,然后点击+,添加IP核,如图所示:

在这里插入图片描述

如图所示,点击OK:

在这里插入图片描述

点击OK,完成IP核添加:

在这里插入图片描述

创建Block Design,名字为system,如图所示:

在这里插入图片描述

如图操作,添加IP:

在这里插入图片描述

添加Utility Vector Logic IP核:

在这里插入图片描述

进行如下IP核配置:

在这里插入图片描述

创建Port,如图所示:

在这里插入图片描述

sys_clk Port类型选择Clock:

在这里插入图片描述

Reset类型的Port重命名为sys_rst_n:

在这里插入图片描述

led设置为Other:

在这里插入图片描述

验证设计,如图所示:

在这里插入图片描述

验证成功,点击OK:

在这里插入图片描述

生成输入,操作如下:

在这里插入图片描述

选择Global,点击Generate:

在这里插入图片描述

成功后,点击OK:

在这里插入图片描述

创建HDL,如图操作:

在这里插入图片描述

弹出如下窗口,点击OK:

在这里插入图片描述

创建约束文件,操作如下:

在这里插入图片描述

输入名字,点击OK:

在这里插入图片描述

完成约束创建:

在这里插入图片描述

管脚约束代码:

set_property -dict {PACKAGE_PIN U18 IOSTANDARD LVCMOS33} [get_ports sys_clk] 
set_property -dict {PACKAGE_PIN J15 IOSTANDARD LVCMOS33} [get_ports sys_rst_n] 
set_property -dict {PACKAGE_PIN J18 IOSTANDARD LVCMOS33} [get_ports {led[0]}] 
set_property -dict {PACKAGE_PIN H18 IOSTANDARD LVCMOS33} [get_ports {led[1]}] 

添加管脚约束信息:

在这里插入图片描述

生成比特流文件:

在这里插入图片描述

点击OK:

在这里插入图片描述

点击Cancel即可:

在这里插入图片描述

2.3 下载验证

由于疫情,一直无法去实验室,故ZYNQ开发板不在身边,该步骤内容待更新

致谢领航者ZYNQ开发板,开启ZYNQ学习之路!

希望本文对大家有帮助,上文若有不妥之处,欢迎指正

分享决定高度,学习拉开差距

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲁棒最小二乘支持向量机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值