- Change your Lab 1 HDL code to accommodate the bigger matrix sizes for A, B, and RES (64x8, 8x1, 64x1 respectively). The A.csv file has some numbers which are 256, which was a mistake. Please open it in a text editor and replace all 256s by 255s.
- Test it thoroughly using a testbench. Note that the first version of the testbench provided in Lab 1 had a bug that M_AXIS_TVALID wasn't checked when M_AXIS_TLAST was asserted. Make sure your Lab 1 design is able to give M_AXIS_TLAST correctly, which can be tested using the second version of the testbench. You will have to modify the .mem files and the testbench to deal with the bigger matrix. There were also some other cases that were not tested by the Lab 1 testbench, such as the non-continuous assertion of S_AXIS_TVALID and M_AXIS_TREADY. Hopefully, these should be fine in your design.
- Now, integrate this coprocessor using the same procedure you had followed for the original Lab 1 template coprocessor. You might want to have a look at the Modifying the Coprocessor page to see how to re-package your modified coprocessor. You will have to modify the test_fifo_myip_v1_0.c file as appropriate. You will need to either increase the Transmit FIFO Depth of AXI Stream FIFO buffer size in Vivado (double click on the peripheral to change it) or send it over two transmit operations in C code to send more than 512 words. The first approach will take more hardware, but takes less time to send the full data over.
- Initially, hard code the test cases.
- Later, you can modify it to deal with the data streamed from RealTerm.
- Try the following, after you are done with the above tasks for Assignment 3
- Your system might not work as expected if line 116 of test_fifo_myip_v1_0.c has this line - xil_printf(" Receiving data for test case %d ... \r\n", test_case_cnt); is commented out.
- Your system might not work as expected if the line is changed to xil_printf( " Receiving \r\n");.
- Your system will work as expected if you do single-stepping in debug mode.
- Your system will work for the sample/template coprocessor given for Lab 1 irrespective of the above modifications.
- What is the minimum length of the string (passed to print) required for it to work? Why?
- Is there a better way to deal with this?