Forum Discussion
Hello,
Can you provide some snapshots of the signals been delayed by the waitrequest in this thread?
Do you observe any different between both designs?
Does the delay only observe when running the transaction in burst mode? or can also occur in single read and write transaction?
Which Quartus version that you used?
Is there any timing issue reported in the design?
Regards,
Adzim
- rled642 years ago
Occasional Contributor
Thank you @sstrell and @AdzimZM_Intel for quick replies,
I didn't know we could quick visualize interconnect infos on plateform designer nodes !
Indeed I had a CDC bridge between my amm controller and EMIF amm agent because quartus thought it was different. Why is that, is because in my system view I first exported the emif_usr_clk, in order to access it in my toplevel design, then added an input clock bridge to take it back and bring it to my controller (master_amm_burst_0). It's indeed more logical to connect it directly inside qsys and export through an output clock bridge for other user stuff. Here in the pictures are the following previous and new connections which exluded the need of an interconnect adapter :Before:
After:
I have no more waitrequest low for each write and I am almost at the theoretical datarate. I say almost, because I noticed that I have now another issue which appears obviously when I perform long writes.
For instance on 20 bursts with burstlength of 127, writing 256bit databus , we see that the "ready" signal (meaning waitrequest_n) is going more or less every 2090 clock cycles (based of emif_usr_clk) and remains low for 80-100 cycles. Here is the signaltap of signals during a write.Mostly you can see master_amm_address incrementing each time a new burst of 127 is started, I perform the 20 bursts, and you can notice the master_amm_ready is low and stalls the master_amm_writedata and write_count for 80-100 cycles.
Do you have an idea where this behavior could be coming from ? Indeed I have timing issue :But I'm not really comfortable with timing constraints ! If you need more information, don't hesitate. If this can be relevant, here is also the amm host parameters of my custom component amm controller in the component editor :
I only matched the parameters with amm EMIF interface, meaning "Address units" as WORDS, and "Max. pending read transactions" as 64, not anything else.
Regards,