Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
21 years ago

Dual Slave UserLogic

Hi all,

Can anyone point me in the right direction of an example SOPC peripheral with multiple slave ports?

I basically want to have a standard slave register port for setting up a continuous stream and another

slave port that supports streaming so a DMA controller can continuously pull data out of it.

I can't see any obvious documentation on this and unless I've missed something simple in SOPC I can't

see how to add the second port as a separate unit, alternatively what changes are required in the hdl to

support this or won't the userlogic plugin support different modules?

Thanks in advance...

5 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I just used two ports. A setup port and data port. I write to the setup port to control (set up) the peripheral and then the data streams into the data port. Never got streaming dma perfect, only 99.99% perfect. Perfect data stream didn't come until I used a fifo and dma'd those contents on AlmostFull.

    I'm about to give streaming dma another try going out to my USB chip though.

    Good Luck,

    Ken
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    What I did in NiosI was to make two seperate slaves (say 1 and 2). Slave 1 was implemented as a route through for the processor signals. Slave 2 had extra inputs for the processor signals from slave1.

    I know it is not the most beatifull solution, but it works perfect. And no hassle with ptf files needed.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Well I just got stuck in with the Class.ptf for the peripheral and it seems to be okay.

    So one port with control and status signals on it and then a second slave that supports

    streaming transfers (with a 1k fifo inside it for buffering), seems to be okay but i'll know more

    soon if it can handle my streaming rates.

    It'll be interesting to see if there is any advantage

    to be gained by using dynamic bus sizing on it since my streamed output is only 12 bits,

    so assuming I promote this to 16 bits, I'm wondering how the dma will handle multi word

    transfers, I'm hoping it will improve throughput by doing a double read and then transfering

    the data.

    Thanks anyways,

    ...Darren