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

Is waitrequestAllowance suported for Altera EMIF external mem interface?

FPGAOLOG
New Contributor I
1,780 Views

The Avalon document mentions waitrequestAllowance parameter but I cant see a way to set it in either Avalon mm bridge or EMIF Avalon interfaces.

How can I set it to 1 for EMIF Avalon interface?

0 Kudos
1 Solution
FPGAOLOG
New Contributor I
1,505 Views

" waitrequest will usually only be ...". There is no usually in RTL. There is always. So waitrequest may be asserted DURING the burst. This means everything connected to waitrequest must be combinatorial, and can't be pipelined.

 

Thanks for the help. You may close this ticket.

View solution in original post

0 Kudos
11 Replies
sstrell
Honored Contributor III
1,723 Views

Interface properties like that are usually for when you create a custom component that makes use of that property.  It may or may not be available as a parameter for an off-the-shelf IP.  If it's not in the parameter editor, it's not available for customization.

What are you trying to accomplish?  Perhaps there's an alternate way to do it.

0 Kudos
FPGAOLOG
New Contributor I
1,691 Views

I am trying to avoid combinatorial waitrequest signal  handshaking between the ddr IP and the user logic .

0 Kudos
sstrell
Honored Contributor III
1,683 Views

If you're using Platform Designer, you don't really have a choice in the matter. waitrequest is a required signal for the Avalon standard and required by PD on the host side.

If you are instantiating the EMIF directly in your Quartus project, it does not need to have the Avalon wrapper.  

Did you try creating an example design from the EMIF parameter editor to see what this type of connection between user logic and the controller can look like?

0 Kudos
AdzimZM_Intel
Employee
1,662 Views

Hello,


May I know if your question has been answered?


Regards,

Adzim


0 Kudos
FPGAOLOG
New Contributor I
1,648 Views

No it is not.

I said " avoid combinatorial waitrequest", not "avoid waitrequest".

But I did dig in to the code and found out waitrequestAllowance is not supported by Intel EMIF interface claiming it has Avalon interface but not complying on this setting.

Please read the definition of waitrequestAllowance and why it is needed for before answering .

0 Kudos
AdzimZM_Intel
Employee
1,641 Views

Hi,


Maybe you can share the issue that you're facing why simulating the design?


Thank you.

Adzim


0 Kudos
FPGAOLOG
New Contributor I
1,635 Views

I need tis at the EMIF user interface:

FPGAOLOG_0-1647358971725.png

 

 

instead of this:

 

FPGAOLOG_1-1647359043418.png

Avalon® Interface Specifications
Updated for Intel® Quartus® Prime Design Suite: 20.1

 

https://d2pgu9s4sfmw1s.cloudfront.net/DITA-technical-publications/PROD/PSG/mnl_avalon_spec-683091-667068.pdf

0 Kudos
AdzimZM_Intel
Employee
1,571 Views

Alright, I understand on what you're trying to do.

But the waitrequestAllowance signal is the internal setting hardcoded in EMIF IP that shouldn't be touched by user.

Changing this signal might cause functionality failure in the EMIF IP.


Have you tried the burst operation?



If you want to optimize the controller performance, you can refer to EMIF User Guide for the device that you used.





0 Kudos
FPGAOLOG
New Contributor I
1,562 Views

I did not ask for touching internal settings of EMIF. I asked if EMIF supports waitrequestAllowance parameter for the user. And I found out looking into EMIF code that the answer is no. There is no such thing in the code but instead a ready signal is inverted to create the waitrequest signal.

 

I am already using burst operation. But there is no explanation for waitrequest will not be asserted during burst. Can you tell that When burst start, waitrequest will not be asserted until the end of the burst?

0 Kudos
sstrell
Honored Contributor III
1,518 Views

waitrequest back to your user logic is handled by a combination of the signal coming from the agent (the EMIF IP) and the interconnect (usually for arbitration purposes but any time the agent can't currently accept a command).

If you initiate a burst and then waitrequest to your user logic goes high, that means your logic (host) gets access to the agent until the burst completes.  As the Avalon spec shows (figure 14 and 15 in the latest version of the doc), for a burst, waitrequest will usually only be asserted at the beginning of the burst or whenever the interconnect (or agent) requires the host to continue asserting the control signals for some reason (typically arbitration).

I think this is why Adzim suggested using bursts, since waitrequest isn't held high throughout them.

0 Kudos
FPGAOLOG
New Contributor I
1,506 Views

" waitrequest will usually only be ...". There is no usually in RTL. There is always. So waitrequest may be asserted DURING the burst. This means everything connected to waitrequest must be combinatorial, and can't be pipelined.

 

Thanks for the help. You may close this ticket.

0 Kudos
Reply