hls之BlockDesign 学fpga

用hls生成了ip之后,驱动也有了,代码也有了 。下面最重要的一步就是把ip加入到整个里面去,这个流程也是非常重要的 。
1、准备hls代码
#include 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=returnint i;if(key){for(i = 0; i < num; i++){if(i < num/2){*led = 1;}else{*led = 2;}}}else{*led = 0;}}
2、综合、导出RTL
注意里面的设置成0.0.0,不然可能编译不过 。
3、确认RTL压缩包生成,解压一下

hls之BlockDesign  学fpga

文章插图
4、重新利用创建工程 , 注意选择的芯片类型必须和hls选定的芯片类型一致,不然有可能发现不了ip 。接着还需要创建一个block ,这是zynq开发的一个必要环节 。
5、添加ip 目录,用于发现ip
6、验证确认是不是真的已经加入到ip 里面去了
7、依次选择zynq和,选择自动连线,
8、其他
因为在里面有一个输入信号key、一个输出信号led需要进行配置 。所以这部分的话在使用的时候 , 最好右击+make 一下 , 同时搭配一个文件 , 这样就完全没有问题了 。
注:
涉及到的管脚约束文件为
【hls之BlockDesign学fpga】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]}]