in a project that i am working i have an accelerator that does corner detection on an image. The accelerator is controlled by a set of 1bit signals.
Right now i have grouped these signals in 2 registers(control_reg, response_reg) and access them for read and write through xillybus-lite.
The accelerator gets the actual data from an asynchronous 8bit xillybus stream and sends the results to an asynchronous 32bit xillybus stream.
The thing is that i have second thoughts regarding the xillybus-lite for controlling the accelerator because i need the communication latency to be as low as possible.
So i am thinking to stop using xillybus-lite and add another stream for control. Any thought or suggestion as to what is better or how to improve utilization of xillybus-lite
in my program would be much appreciated.
The image is partitioned in 12 segments and the processing now is done based on the following flow :
- 1. check accelerator ready response(read response_reg)
2. if (ready) send new computation command(write control_reg) else goto 1
3. check request data response(read response_reg)
4. if (request data) send segment data else goto 3
5. check results ready response(read response_reg)
6. if (results ready) send give results command(write control_reg) else goto 5
7. check segment done response(read response_reg)
8. check image done response(read response_reg)
9. if (segment done and image done) goto 1 and repeat for next image elseif (segment done ) goto 3 and repeat for next segment else goto 7
Thanks.