David B

Members
  • Content Count

    4
  • Joined

  • Last visited

Everything posted by David B

  1. Hi, I have created an hls ip for sobel on nexys video. It takes the video in via hdmi in port , push it via my ip and then send it out via hdmi out port. Now, i want to able to control if it display the sobel or display the original image by using a switch. I added a new parameter to top function and an if condition, but i get "ERROR: [XFORM 203-733] An internal stream 'img_6.data_stream[2].V10' (SobelVideoWorking/a.cpp:17) with default size is used in a non-dataflow region, which may result in deadlock. Please consider to resize the stream using the directive 'set_directive_stream' or the 'HLS stream' pragma. SobelVideoWorking:solution1 Jan 27, 2019 12:49:03 PM" error. this is my cpp file: #include "a.hpp" void Sobel_filter(AXI_STREAM& INPUT_STREAM, AXI_STREAM& OUTPUT_STREAM, char enable)//, int rows, int cols) { #pragma HLS INTERFACE axis port=INPUT_STREAM #pragma HLS INTERFACE axis port=OUTPUT_STREAM RGB_IMAGE img_0(MAX_HEIGHT, MAX_WIDTH); GRAY_IMAGE img_1(MAX_HEIGHT, MAX_WIDTH); GRAY_IMAGE img_2(MAX_HEIGHT, MAX_WIDTH); GRAY_IMAGE img_2a(MAX_HEIGHT, MAX_WIDTH); GRAY_IMAGE img_2b(MAX_HEIGHT, MAX_WIDTH); GRAY_IMAGE img_3(MAX_HEIGHT, MAX_WIDTH); GRAY_IMAGE img_4(MAX_HEIGHT, MAX_WIDTH); GRAY_IMAGE img_5(MAX_HEIGHT, MAX_WIDTH); RGB_IMAGE img_6(MAX_HEIGHT, MAX_WIDTH); ; #pragma HLS dataflow hls::AXIvideo2Mat(INPUT_STREAM, img_0); if(0 == enable) { hls::Mat2AXIvideo(img_0, OUTPUT_STREAM); } else { hls::CvtColor<HLS_BGR2GRAY>(img_0, img_1); hls::GaussianBlur<3,3>(img_1,img_2); hls::Duplicate(img_2,img_2a,img_2b); hls::Sobel<1,0,3>(img_2a, img_3); hls::Sobel<0,1,3>(img_2b, img_4); hls::AddWeighted(img_4,0.5,img_3,0.5,0.0,img_5); hls::CvtColor<HLS_GRAY2RGB>(img_5, img_6); hls::Mat2AXIvideo(img_6, OUTPUT_STREAM); } } and this is the header: #include "hls_video.h" #include <ap_fixed.h> #define MAX_WIDTH 1280 #define MAX_HEIGHT 720 typedef hls::stream<ap_axiu<24,1,1,1> > AXI_STREAM; typedef hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC3> RGB_IMAGE; typedef hls::Mat<MAX_HEIGHT, MAX_WIDTH, HLS_8UC1> GRAY_IMAGE; void Sobel_filter(AXI_STREAM& INPUT_STREAM, AXI_STREAM& OUTPUT_STREAM);//int rows, int cols); I haven't found any solution to the problem. Thank you!
  2. Whenever is possible, I can't find very useful informations.
  3. Hi, I have a Digilent Zybo z7-20 board and I took the Linux base vivado project and compiled the petalinux from Digilent's GitHub . The os is working fine. I observed a dvi2rgb block which terminates in video memory access and also, in petalinux repo, it's specified that there is a hdmi in via uio. My question is: how can I get a picture from hdmi via user space io. Thank you!Merry Christmas!