I’m using the AXI VVC to simulate read requests from a PCIE root complex. My problem is that I am limited by the size of the command queue, for which the entries are never deleted. Why is it the case?
Yes, I can increase the default size of the queue but I have nearly three thousands read request to make, and I don’t need the sizes of all the AXI channels command queues to be as great.
An ideal solution would be at some point to delete all the entries of the command queue. If it is harmless for the framework, where would be the best place to do that?
Hi Pierre,
Could you please elaborate a bit here?
You say the entries are never deleted. They are supposed to be deleted when fetched by the executor. Does this not happen - or is the problem a different scenario?
You don’t really increase the size of the queue by setting the generics GC_CMD/RESULT_QUEUE_COUNT_MAX, as this is a linked list. The generics are thus only used to give a warning or detect an error, which means no the memory usage is restricted to only the current entries in each individual queue.
If for some reason you want to delete all queues before all commands have been fetched, you can do this using the VVC command flush_command_queue().