PYNQ Z1 AXI Quad SPI transaction speed


I have successfully established SPI communication between the PYNQ Z1 board as the master and the MCP3304 as the slave. The SPI communication is designed to operate at 2 MHz, which is functioning correctly. However, I’ve observed that the transaction rate (transactions per second) appears to be lower than expected when compared to other embedded controllers (Maybe the driver is slowing it down).
Please let me know if there’s any mistake or have suggestions for improvement.

I have attached screenshots of my code, as well as a scope shot demonstrating the bus speed for reference.