首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么延迟太高,即使它只是RGB到灰度转换(Vivado HLS)?

为什么延迟太高,即使它只是RGB到灰度转换(Vivado HLS)?
EN

Stack Overflow用户
提问于 2018-05-23 12:46:52
回答 1查看 347关注 0票数 0

我正在处理Vivado HLS 2015.4上的图像。

我得到了大约311774个时钟周期的非常高的延迟。即使程序只接受两个输入图像,并将其从RGB转换为灰度。总的延迟是311774,因为我在所有三个Axi2MatRGB2GRAYMat2AXI上都得到了77-78k的延迟。

有没有什么方法可以减少它,这样我就可以通过管道使最终延迟达到78k左右?

我附上了我的代码和综合报告:

代码语言:javascript
复制
#include <hls_video.h>
#include <hls/hls_video_types.h>
#include "top.h"


void toGray(AXI_IN_STREAM &IN_STREAM_1, AXI_IN_STREAM &IN_STREAM_2, AXI_OUT_STREAM &OUT_STREAM_1, AXI_OUT_STREAM &OUT_STREAM_2, unsigned int cols, unsigned int rows){
    #pragma HLS INTERFACE axis port=IN_STREAM_1
    #pragma HLS INTERFACE axis port=OUT_STREAM_1

    #pragma HLS INTERFACE axis port=IN_STREAM_2
    #pragma HLS INTERFACE axis port=OUT_STREAM_2


    #pragma HLS RESOURCE core=AXI_SLAVE variable=rows metadata="-bus_bundle CONTROL"
    #pragma HLS RESOURCE core=AXI_SLAVE variable=cols metadata="-bus_bundle CONTROL"
    #pragma HLS RESOURCE core=AXI_SLAVE variable=return metadata="-bus_bundle CONTROL"

    #pragma HLS INTERFACE ap_stable port=rows
    #pragma HLS INTERFACE ap_stable port=cols

    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC3> inMat_1(rows, cols);
    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC3> inMat_2(rows, cols);

    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> grayMat_1(rows, cols);
    hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> grayMat_2(rows, cols);


 // hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> outMat(rows, cols);

    hls::AXIvideo2Mat(IN_STREAM_1, inMat_1);
    hls::AXIvideo2Mat(IN_STREAM_2, inMat_2);

    hls::CvtColor<HLS_BGR2GRAY, HLS_8UC3, HLS_8UC1>(inMat_1, grayMat_1);
    hls::CvtColor<HLS_BGR2GRAY, HLS_8UC3, HLS_8UC1>(inMat_2, grayMat_2);
 // hls::EqualizeHist(grayMat, outMat );




    hls::Mat2AXIvideo(grayMat_1, OUT_STREAM_1);
    hls::Mat2AXIvideo(grayMat_2, OUT_STREAM_2);

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 05:44:32

Vivado UG902: Vivado Design Suite User Guide P.293:由于函数已经是流水线的,因此添加数据流优化可以确保流水线函数将并行执行。

因此,只需将#pragma HLS dataflow指令添加到代码中,就可以确保每个时钟处理一个样本,函数之间有数据流。因此,延迟应该减少到77-78k (我假设是cols*rows)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50479992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档