vivado和c语言开发,System Generator从入门到放弃(九)-利用Vivado HLS block实现Vivado HLS调用C/C++代码...

本文介绍了如何使用Vivado HLS结合System Generator进行FPGA设计,通过Vivado HLS将C/C++代码转换为RTL模型,并在Simulink环境中进行仿真测试。以中值滤波为例,详细阐述了设计流程,包括创建HLS程序,导出RTL到System Generator,最后在Simulink中进行仿真验证,展示了FPGA设计的一种高效方法。
摘要由CSDN通过智能技术生成

Vivado HLS是Xilinx FPGA开发套件中的一款软件,可以使用C/C++语言进行设计,并转换为RTL级模型。System Generator中的Vivado HLS block可以将HLS开发软件设计的C/C++代码整合到Simulink环境中,利用Simulink强大的仿真特性对设计进行仿真测试。

ug948中提供的官方例程为图像的中值滤波,该设计将一副256*256大小的RGB图像,添加噪声后提取出其中的Y通道,使用C++语言完成中值滤波。该设计将在Simulink环境下进行仿真。

本次设计的流程是利用Vivado HLS建立C/C++代码,Export RTL–>System Generator–>Vivado。

2、利用Vivado HLS block实现Vivado HLS调用C/C++代码 流程

2.1 Vivado HLS完成中值滤波设计

建立相关HLS中的程序,其中Source中建立MedianFilter.cpp程序,程序如下:

PS:这部分例程在官方ug948-design-files.zipLab2中找到。

MedianFilter.cpp

#include "MedianFilter.h"

#define WINDOW_SIZE 3

typedef unsigned char PixelType;

#define PIX_SWAP(a,b) { PixelType temp=(a);(a)=(b);(b)=temp; }

#define PIX_SORT(a,b) { if ((a)>(b)) PIX_SWAP((a),(b)); }

PixelType OptMedian9(PixelType * p)

{

PIX_SORT(p[1], p[2]) ; PIX_SORT(p[4], p[5]) ; PIX_SORT(p[7], p[8]) ;

PIX_SORT(p[0], p[1]) ; PIX_SORT(p[3], p[4]) ; PIX_SORT(p[6], p[7]) ;

PIX_SORT(p[1], p[2]) ; PIX_SORT(p[4], p[5]) ; PIX_SORT(p[7], p[8]) ;

PIX_SORT(p[0], p[3]) ; PIX_SORT(p[5], p[8]) ; PIX_SORT(p[4], p[7]) ;

PIX_SORT(p[3], p[6]) ; PIX_SORT(p[1], p[4]) ; PIX_SORT(p[2], p[5]) ;

PIX_SORT(p[4], p[7]) ; PIX_SORT(p[4], p[2]) ; PIX_SORT(p[6], p[4]) ;

PIX_SORT(p[

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值