学fpga(hls之BlockDesign)
Posted 费晓行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学fpga(hls之BlockDesign)相关的知识,希望对你有一定的参考价值。
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
用hls生成了ip之后,驱动也有了,verilog代码也有了。下面最重要的一步就是把ip加入到整个BlockDesign里面去,这个流程也是非常重要的。
1、准备hls代码
#include <ap_cint.h>
extern "C" void led_twinkle(uint1 key, uint32 num, uint2* led)
#pragma HLS INTERFACE s_axilite port=num
#pragma HLS INTERFACE ap_none port=key
#pragma HLS INTERFACE ap_none port=led
#pragma HLS INTERFACE ap_ctrl_none port=return
int i;
if(key)
for(i = 0; i < num; i++)
if(i < num/2)
*led = 1;
else
*led = 2;
else
*led = 0;
2、综合、导出RTL
注意Configuration里面的Version设置成0.0.0,不然可能编译不过。
3、确认RTL压缩包生成,解压一下
4、重新利用vivado创建工程,注意选择的芯片类型必须和hls选定的芯片类型一致,不然有可能发现不了ip。接着还需要创建一个block design,这是zynq开发的一个必要环节。
5、添加ip catalog目录,用于发现ip
6、验证确认Led_twinkle是不是真的已经加入到ip repository里面去了
7、依次选择zynq和Led_twinkle,选择自动连线,
8、其他
因为在led_twinkle_0里面有一个输入信号key、一个输出信号led需要进行配置。所以这部分的话在使用的时候,最好右击+make external一下,同时搭配一个constrain文件,这样就完全没有问题了。
注:
涉及到的管脚约束文件为
set_property -dict PACKAGE_PIN H15 iosTANDARD LVCMOS33 [get_ports key_0]
set_property -dict PACKAGE_PIN H17 IOSTANDARD LVCMOS33 [get_ports led_0[0]]
set_property -dict PACKAGE_PIN H18 IOSTANDARD LVCMOS33 [get_ports led_0[1]]
创作打卡挑战赛
赢取流量/现金/CSDN周边激励大奖
以上是关于学fpga(hls之BlockDesign)的主要内容,如果未能解决你的问题,请参考以下文章