Forum Discussion
Altera_Forum
Honored Contributor
11 years agoFor fixed latency if you generate something like an on-chip RAM or PIO you'll find that they have fixed latency. They might lack a waitrequest line because they never backpressure though. Make sure in component editor to specify the latency if it's fixed so that Qsys knows how much buffering the fabric needs to support the readdata returning. If you component doesn't have a fixed latency then I recommend adding readdatavalid to make it a variable latency slave.
For variable latency I don't recall any simple ones and the only IP that comes to mind are the high speed memory controllers. Those would be too complicated to learn from so I recommend looking at the Avalon specification since they have timing diagrams showing how each slave type should react to an incoming Avalon transaction. With variable latency be sure to specify the maximum pending reads for your component when you feed it through component editor. This value means how many read transactions can be in flight in your IP before it starts issuing waitrequest, this value is used to let Qsys know how much buffering it should be putting into the fabric to handle the readdata that returns.