Forum Discussion

Sushmita's avatar
Sushmita
Icon for Occasional Contributor rankOccasional Contributor
6 years ago

Should read request signal in avalon interface be a continously high signal or just a pulse?

Hi,

I want to use avalon interface to read the data from DDR to BRAM with a burst size of 512, bit interface is 64. Currently i am sending the read request as a pulse. But i am not sure if it is the correct way. My rtl stops at some point when i run it on FPGA .

Can someone specify if the READ REQUEST is a pulse or continuous signal?

Thanks

SBilg

7 Replies

  • sstrell's avatar
    sstrell
    Icon for Super Contributor rankSuper Contributor

    There is no "read request" signal in Avalon. If you are saying that you are reading from an Avalon slave, as a master, you must honor the waitrequest signal. You can issue a read command to the slave, but you must hold the command active until one clock cycle after waitrequest goes low (unless there's some additional latency parameters set by the slave) at which point the readdata should be available.

    See the Avalon spec for details:

    https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/manual/mnl_avalon_spec.pdf

    #iwork4intel

    • Sushmita's avatar
      Sushmita
      Icon for Occasional Contributor rankOccasional Contributor

      Hi sstrell,

      Yes, i want to read as a master. I am using the signal WAITREQUEST_N. When i run the module on FPGA, the WAITREQUEST_N is always high, irrespective of whether i am issuing a read command or not. I am using a single master.Even In this case should my module be WAITREQUEST_N dependent?

      Thank you for your reply.

      • KennyT_altera's avatar
        KennyT_altera
        Icon for Super Contributor rankSuper Contributor

        Your wait request need to be deassert in the slave itself. without deassert on the slave, you cannot do anythings.

        Unless you are using fixed wait states, your wait request need to be deassert. Page 26 base on the link above.

  • KennyT_altera's avatar
    KennyT_altera
    Icon for Super Contributor rankSuper Contributor

    additionally, you can refer to the above link page 21 for the waveforms and explanation.

    • Sushmita's avatar
      Sushmita
      Icon for Occasional Contributor rankOccasional Contributor

      Hi,

      What happens to the wait request while the data is being sent from the slave side? Does it remain low​ the whole time until entire transaction is completed?

  • KennyT_altera's avatar
    KennyT_altera
    Icon for Super Contributor rankSuper Contributor

    When the slave asserts waitrequest, the transfer is delayed. While waitrequest is asserted, the address and other control signals are held constant. Transfers complete on the rising edge of the first clk after the slave interface deasserts waitrequest.