Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
17050 Discussions

waitrequest stuck high on simple avalon master

Altera_Forum
Honored Contributor II
4,905 Views

I have recently switched from sopc builder to qsys and am having problems with some of my own components that include avalon masters. 

 

I'm using a very simple avalon master (not pipelined). What I'm seeing is the waitrequest input to my master is always active if it's connected to a slave that is also connected to another master. 

 

The waitrequest is active even if my master isn't accessing the bus. Waitrequest is active even if no master in the system is accessing the slave port that my master is connected to. 

 

I don't recall having problems like this with sopc builder. Is there some setting that I've overlooked? 

 

The first time I saw this problem I was able to work around it by changing the system design so that only my master was connected to the slave (an internal RAM block which I changed to dual port). I'm now seeing the same problem on a second component which doesn't have such a simple work around. 

 

Thanks for any pointers.
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
3,855 Views

OK, it's been a long day. 

 

Just after posting I was going back through the Avalon spec and ran into this: 

 

 

--- Quote Start ---  

A master must make no assumption about the assertion state of waitrequest when the master is idle. 

--- Quote End ---  

That's my problem of course, I had misremembered how the waitrequest signal worked and was expecting it to be inactive when my master wasn't busy. 

 

Nothing to see here folkes, move along! :oops:
0 Kudos
Altera_Forum
Honored Contributor II
3,855 Views

Well, I've also been going through this and it means that if the waitrequest is stuck high, then it may simply be that the master is idle and hiding its bug.

0 Kudos
Altera_Forum
Honored Contributor II
3,855 Views

The master behavior has well to be changed on that case when migrating from SOPC to QSys to avoid the deadlock: 

SOPC Builder to Qsys Migration Guidelines : 

 

--- Quote Start ---  

 

Avalon-MM wait-request Signal 

If your Avalon-MM master component is configured to wait until the wait-request 

signal is deasserted before starting a transaction, the transaction may become 

deadlocked. You must configure your component to start transactions independent of 

the status of the wait-request signal. 

 

--- Quote End ---  

 

http://www.altera.com/literature/an/an632.pdf
0 Kudos
Reply