Previously I posted a reference design for the zedboard here. http://shakithweblog.blogspot.de/2012/12/getting-sobel-filter-application.html
A newer version that reduced the communication bottleneck is posted here.
http://parse.ele.tue.nl/research/usbcam/
Wednesday, December 11, 2013
Thursday, October 24, 2013
Saturday, September 21, 2013
Related Work for MAMPSx
The HeartBeat model: a platform abstraction
enabling fast prototyping of real-time applications on
NoC-based MPSoC on FPGA
http://www.mes.tu-darmstadt.de/media/mikroelektronische_systeme/pdf_3/recosoc2013/slides_1/session5_1/1_Robino.pdf
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6581536&sortType%3Dasc_p_Sequence%26filter%3DAND(p_IS_Number%3A6581516)
enabling fast prototyping of real-time applications on
NoC-based MPSoC on FPGA
http://www.mes.tu-darmstadt.de/media/mikroelektronische_systeme/pdf_3/recosoc2013/slides_1/session5_1/1_Robino.pdf
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6581536&sortType%3Dasc_p_Sequence%26filter%3DAND(p_IS_Number%3A6581516)
Thursday, September 19, 2013
Monday, September 16, 2013
Monday, September 2, 2013
Saturday, August 31, 2013
Tuesday, August 13, 2013
to read
A Survey of High Level Synthesis Languages, Tools, and Compilers for Reconfigurable High Performance Computing
http://www2.cose.isu.edu/~zydedawi/Research/publications.php
http://www2.cose.isu.edu/~zydedawi/Research/publications.php
Thursday, August 8, 2013
Wednesday, August 7, 2013
Friday, July 19, 2013
Thursday, July 18, 2013
Slides from dutch bitchips hardware conference is out
http://www.hardwareconference.nl/programma/programma-2013.html
Selected titles:
Kester Aernoudt, Xilinx
Enabling new product innovations across markets with Zynq-7000 all-programmable SoC and Vivado HLS
Dirk van den Heuvel, Topic
Designing with heterogeneous multicore systems-on-chip in medical applications
Selected titles:
Kester Aernoudt, Xilinx
Enabling new product innovations across markets with Zynq-7000 all-programmable SoC and Vivado HLS
Dirk van den Heuvel, Topic
Designing with heterogeneous multicore systems-on-chip in medical applications
Thursday, June 6, 2013
Related Work for DSE in HLS
On Learning-Based Methods for Design-Space Exploration
with High-Level Synthesis
http://delivery.acm.org/10.1145/2490000/2488795/a50-liu.pdf?ip=131.155.41.196&acc=ACTIVE%20SERVICE&key=C2716FEBFA981EF12214637723A2BFB946E5CCD26CF057B5&CFID=222938095&CFTOKEN=27113601&__acm__=1370512562_6472454faaf574797c50528a567d9ac9
with High-Level Synthesis
http://delivery.acm.org/10.1145/2490000/2488795/a50-liu.pdf?ip=131.155.41.196&acc=ACTIVE%20SERVICE&key=C2716FEBFA981EF12214637723A2BFB946E5CCD26CF057B5&CFID=222938095&CFTOKEN=27113601&__acm__=1370512562_6472454faaf574797c50528a567d9ac9
Friday, April 19, 2013
Wednesday, March 6, 2013
Differences between AXI Streaming and FSL
According to the UG761 AXI Reference Guide, the mapping of FSL Signals to AXI Streaming Signals is as follows:
But in actual fact, M_AXIS_TREADY = ! FSL_M_FULL, since it's active high. The rest of the signals has a direct one to one mapping.
Also there is slight handshaking difference.
The AXI_M_TVALID signal cannot be deasserted after being asserted unless a transfer is
completed with AXI_TREADY. However, a AXI_TREADY can be asserted and deasserted
whenever the AXI4-Stream slave requires assertion and deassertion.
A master is not permitted to wait until TREADY is asserted before asserting TVALID. Once
TVALID is asserted it must remain asserted until the handshake occurs.
That means what in FSL
if (!M_FULL)
M_Write
looks like this in AXI Streaming Masters.
M_Write
wait until !M_FULL
References:
AMBA 4 AXI4-Stream Protocol Specification
UG761 AXI Reference Guide
But in actual fact, M_AXIS_TREADY = ! FSL_M_FULL, since it's active high. The rest of the signals has a direct one to one mapping.
Also there is slight handshaking difference.
The AXI_M_TVALID signal cannot be deasserted after being asserted unless a transfer is
completed with AXI_TREADY. However, a AXI_TREADY can be asserted and deasserted
whenever the AXI4-Stream slave requires assertion and deassertion.
A master is not permitted to wait until TREADY is asserted before asserting TVALID. Once
TVALID is asserted it must remain asserted until the handshake occurs.
That means what in FSL
if (!M_FULL)
M_Write
looks like this in AXI Streaming Masters.
M_Write
wait until !M_FULL
References:
AMBA 4 AXI4-Stream Protocol Specification
UG761 AXI Reference Guide
Friday, December 21, 2012
Sobel Filter Application on the Xilinx Zynq Zedboard
Here are the steps for getting the Sobel Filter application running on the Zynq Zedboard using a webcam for the input data stream while the output frame is shown in the HDMI display. The Sobel Filter is implemented as a hardware accelerator on the fpga as well as an openCV software implementation on the arm processor.
Download Link:
Git Link:
UBoot File used:
Steps to get the application running on the board:
1. Connect Power, HDMI display, USB HUB with keyboard, mouse and webcam (I used a Logitech webcam) to the Zedboard.
2. Format the SD Card using the instructions as given in the link below:
http://wiki.analog.com/resources/tools-software/linux-drivers/platforms/zynq#enable_xf86-video-modesetting_xorg_driver
The first partition needs to have the boot.bin, zImage, and dts files. These can be found on the SD_card folder in the zip file. The second partition needs to have the Linaro file system (also found at the above link).
3. Set mode on the Zedboard to SD card boot mode.
4. Power on and boot into linux.
5. Install OpenCv by using the command "sudo apt-get install libopencv-dev" (sudo password is linaro).
6. Connect an ethernet cable and copy folder test_app in the zipfile to the filesystem.
(cf_adv7511_zed\workspace\test_app).
7. Run command "cmake ."
8. Run "make"
9. Run "sudo ./camera"
10. It will display the original webcam stream and you can enable hardware sobel filtering and software sobel filtering using "h" and "s" respectively. Original stream can be enabled with "o". Press escape to exit anytime.
Note. This design is not fully optimized as there is a significant communication bottleneck. This bottleneck is caused while copying the video stream buffer to the DMA region and back, as well as due to the slow latency of the DDR. For the first problem, I am looking into upgrading the kernel to the 3.8 version to use the DMA buffer sharing options. For the second problem, I'm working on using the Accelerator Coherency Port, as it provides a low latency path directly from the cache to the accelerator.
An EDK project is also shared with a bare metal application to test the hardware without the linux kernel.
This reference design was made available from the PARSE Research group at TU/e.
References-
http://wiki.analog.com/resources/tools-software/linux-drivers/platforms/zynq#enable_xf86-video-modesetting_xorg_driver
http://wiki.xilinx.com/zynq-base-trd-14-3
http://ez.analog.com/message/70323#70323
Download Link:
Git Link:
UBoot File used:
Steps to get the application running on the board:
1. Connect Power, HDMI display, USB HUB with keyboard, mouse and webcam (I used a Logitech webcam) to the Zedboard.
2. Format the SD Card using the instructions as given in the link below:
http://wiki.analog.com/resources/tools-software/linux-drivers/platforms/zynq#enable_xf86-video-modesetting_xorg_driver
The first partition needs to have the boot.bin, zImage, and dts files. These can be found on the SD_card folder in the zip file. The second partition needs to have the Linaro file system (also found at the above link).
3. Set mode on the Zedboard to SD card boot mode.
4. Power on and boot into linux.
5. Install OpenCv by using the command "sudo apt-get install libopencv-dev" (sudo password is linaro).
6. Connect an ethernet cable and copy folder test_app in the zipfile to the filesystem.
(cf_adv7511_zed\workspace\test_app).
7. Run command "cmake ."
8. Run "make"
9. Run "sudo ./camera"
10. It will display the original webcam stream and you can enable hardware sobel filtering and software sobel filtering using "h" and "s" respectively. Original stream can be enabled with "o". Press escape to exit anytime.
Note. This design is not fully optimized as there is a significant communication bottleneck. This bottleneck is caused while copying the video stream buffer to the DMA region and back, as well as due to the slow latency of the DDR. For the first problem, I am looking into upgrading the kernel to the 3.8 version to use the DMA buffer sharing options. For the second problem, I'm working on using the Accelerator Coherency Port, as it provides a low latency path directly from the cache to the accelerator.
An EDK project is also shared with a bare metal application to test the hardware without the linux kernel.
This reference design was made available from the PARSE Research group at TU/e.
References-
http://wiki.analog.com/resources/tools-software/linux-drivers/platforms/zynq#enable_xf86-video-modesetting_xorg_driver
http://wiki.xilinx.com/zynq-base-trd-14-3
http://ez.analog.com/message/70323#70323
Tuesday, November 13, 2012
Approximate Computing 2
A reading list for Approximate Computing /Soft Computing/ Imprecise Computing, Stochastic Computation
A NumericalOptimization-based Methodology forApplication Robustification: Transforming Applicationsfor Error Tolerance
Joseph Sloan, John Sartori, and Rakesh Kumar. " Exploiting Application-Level Error Tolerance in Software Design for Stochastic Processors. " In the 49th Design and Automation Conference. DAC, San Francisco, June 2012. (PDF). (invited)
Best-effort semantic document search on GPUs
A NumericalOptimization-based Methodology forApplication Robustification: Transforming Applicationsfor Error Tolerance
Joseph Sloan, John Sartori, and Rakesh Kumar. " Exploiting Application-Level Error Tolerance in Software Design for Stochastic Processors. " In the 49th Design and Automation Conference. DAC, San Francisco, June 2012. (PDF). (invited)
Best-effort semantic document search on GPUs
Subscribe to:
Posts (Atom)


