DSPRelated.com
Forums

Multiprocessor Syncronization -- C6713

Started by thamiral February 3, 2005


Hello,

I am currently trying to setup a system in which I have 2 DSKc6713
systems, one of which masters a USB ASIC that allows for Bi-
directional communication with a PC using a custom application layer
protocol that sits on the USB protocol.

Unfortunately, I am having difficulty choosing the best hardware and
its corresponding software implementation to be able to allow these
two DSPs to communicate (bidirectionally) effectively and allow for
both real time data streams and just regular data streams (i.e.
control messages being passed around etc)

All the research I have done seem to point in the direction of the
use of EMIF-->HPI or the use of some kind of BiDirectional FIFO
(Emif-->Emif) but I have NO idea how I would implement the software.

It would be nice to find a solution that can easily be prototyped.

I am new to the DSP world and especially multi DSPs and hence any
help is greatly apprecaited.

Sincerely,

----------------------------
Taha Amiralli University of Western Ontario

Electrical Engineering Support
Canadian Arrow, Electrical Engineering team
www.canadianarrow.com

Solar Array/High Power Systems Manager
SunStang Solar Car Project, Electrical Team
http://hyperserver.engga.uwo.ca/sunstang/



>Hello,
>
Hi,

>I am currently trying to setup a system in which I have 2 DSKc6713
>systems, one of which masters a USB ASIC that allows for Bi-
>directional communication with a PC using a custom application layer
>protocol that sits on the USB protocol.
>
>Unfortunately, I am having difficulty choosing the best hardware and
>its corresponding software implementation to be able to allow these
>two DSPs to communicate (bidirectionally) effectively and allow for
>both real time data streams and just regular data streams (i.e.
>control messages being passed around etc)
>

How much bandwidth do you need between them? The McBSPs might be an
easy way for you to transfer data between the DSPs - unless you are
using them already.

>All the research I have done seem to point in the direction of the
>use of EMIF-->HPI or the use of some kind of BiDirectional FIFO
>(Emif-->Emif) but I have NO idea how I would implement the software.
>

HPI is not very high bandwidth.

We've used dual-port RAM between DSP and other processors - it would
work also DSP<->DSP. The ones we use have semaphores in them which
allow the software to atomically-"lock" areas of DPRAM so the other side
doesn't write to it. That way you just have some external memory that
you fill with the appropriate data.

>It would be nice to find a solution that can easily be prototyped.
>

McBSPs are the easiest in that case, just wire them up between two
eval-boards.

Have fun!

Cheers,
Martin

--
Martin Thompson CEng MIEE
TRW Conekt, Stratford Road, Solihull, B90 4GW. UK
+44 (0)121-627-3569 :
http://www.conekt.net/





Hello Martin,

Thanks a lot for that quick response. I really do appreciate it.

Unfortunately, I am using both the McBSP ports (ADC on one and DAC
on the other) and hence I disregarded that option. It would have
been an easy way out but oh well...

Do you by any chance know how high the bandwidth of the HPI channel
is?

I was also considering an idea that is similar to the Dual port
memory idea you had suggested. (My version was comprised of putting
one of those inexpensive high speed bidirectional FIFOs) It works in
the same fashion as your idea except for the fact both these
solutions have one fundamental problem that I had not been able to
solve.

How would you rapidly prototype such a solution. (I have not been
able to find any boards equipped with either Dual port mem. or
FIFOs. My alternative was to try and look for EMIF-->EMIF boards
with an FPGA in the middle and design my own FIFO/Dual port RAM. Not
a plesant alternative if I might add.

Many thanks,

Sincerely,

----------------------------
Taha Amiralli University of Western Ontario

Electrical Engineering Support
Canadian Arrow, Electrical Engineering team
www.canadianarrow.com

Solar Array/High Power Systems Manager
SunStang Solar Car Project, Electrical Team
http://hyperserver.engga.uwo.ca/sunstang/ --- In , "Martin.J Thompson"
<Martin.J.Thompson@t...> wrote:
> >Hello,
> >
> Hi,
>
> >I am currently trying to setup a system in which I have 2
DSKc6713
> >systems, one of which masters a USB ASIC that allows for Bi-
> >directional communication with a PC using a custom application
layer
> >protocol that sits on the USB protocol.
> >
> >Unfortunately, I am having difficulty choosing the best hardware
and
> >its corresponding software implementation to be able to allow
these
> >two DSPs to communicate (bidirectionally) effectively and allow
for
> >both real time data streams and just regular data streams (i.e.
> >control messages being passed around etc)
> >
>
> How much bandwidth do you need between them? The McBSPs might be
an
> easy way for you to transfer data between the DSPs - unless you are
> using them already.
>
> >All the research I have done seem to point in the direction of
the
> >use of EMIF-->HPI or the use of some kind of BiDirectional FIFO
> >(Emif-->Emif) but I have NO idea how I would implement the
software.
> >
>
> HPI is not very high bandwidth.
>
> We've used dual-port RAM between DSP and other processors - it
would
> work also DSP<->DSP. The ones we use have semaphores in them which
> allow the software to atomically-"lock" areas of DPRAM so the
other side
> doesn't write to it. That way you just have some external memory
that
> you fill with the appropriate data.
>
> >It would be nice to find a solution that can easily be prototyped.
> >
>
> McBSPs are the easiest in that case, just wire them up between two
> eval-boards.
>
> Have fun!
>
> Cheers,
> Martin
>
> --
> Martin Thompson CEng MIEE
> TRW Conekt, Stratford Road, Solihull, B90 4GW. UK
> +44 (0)121-627-3569 : martin.j.thompson@t...
> http://www.conekt.net/



Hello Taha,
 
I don't think that you will find an existing solution. 
 
The EMIF1-->HPI2 and EMIF2-->1 is as easy/difficult as a FIFO or Dual Port RAM solution - with much slower performance.
 
My advice would be to 'byte the bullet' all at once and not mess around.  It sounds like you are already using a daughtercard - Create a 4" x 8" [I'm guessing on dimensions] PCB with 'pass through' daughtercard connectors [so that you can still plug in a daughtercard on top] that allows you to connect 2 boards.  Put an FPGA [most flexible, most work], 1 or 2 FIFOs [can be a little more work if you find that you need to do something out of sequence], or a Dual Port RAM [my choice] in the middle - or you could do all three.
 
Don't forget to add some signaling [like 'interrupt' to the other computer].
 
If you do 'special stuff' very often, you might seriously consider the FPGA for potential reuse - that would give you something to do while the board is being fab'd  01.gif
 
good luck,
mikedunn

thamiral <t...@uwo.ca> wrote:
Hello Martin,

Thanks a lot for that quick response. I really do appreciate it.

Unfortunately, I am using both the McBSP ports (ADC on one and DAC
on the other) and hence I disregarded that option. It would have
been an easy way out but oh well...

Do you by any chance know how high the bandwidth of the HPI channel
is?

I was also considering an idea that is similar to the Dual port
memory idea you had suggested. (My version was comprised of putting
one of those inexpensive high speed bidirectional FIFOs) It works in
the same fashion as your idea except for the fact both these
solutions have one fundamental problem that I had not been able to
solve.

How would you rapidly prototype such a solution. (I have not been
able to find any boards equipped with either Dual port mem. or
FIFOs. My alternative was to try and look for EMIF-->EMIF boards
with an FPGA in the middle and design my own FIFO/Dual port RAM. Not
a plesant alternative if I might add.

Many thanks,

Sincerely,

----------------------------
Taha Amiralli
t...@uwo.ca

University of Western Ontario

Electrical Engineering Support
Canadian Arrow, Electrical Engineering team
www.canadianarrow.com

Solar Array/High Power Systems Manager
SunStang Solar Car Project, Electrical Team
http://hyperserver.engga.uwo.ca/sunstang/--- In c...@yahoogroups.com, "Martin.J Thompson"
wrote:
> >Hello,
> >
> Hi,
>
> >I am currently trying to setup a system in which I have 2
DSKc6713
> >systems, one of which masters a USB ASIC that allows for Bi-
> >directional communication with a PC using a custom application
layer
> >protocol that sits on the USB protocol.
> >
> >Unfortunately, I am having difficulty choosing the best hardware
and
> >its corresponding software implementation to be able to allow
these
> >two DSPs to communicate (bidirectionally) effectively and allow
for
> >both real time data streams and just regular data streams (i.e.
> >control messages being passed around etc)
> >
>
> How much bandwidth do you need between them? The McBSPs might be
an
> easy way for you to transfer data between the DSPs - unless you are
> using them already.
>
> >All the research I have done seem to point in the direction of
the
> >use of EMIF-->HPI or the use of some kind of BiDirectional FIFO
> >(Emif-->Emif) but I have NO idea how I would implement the
software.
> >
>
> HPI is not very high bandwidth.
>
> We've used dual-port RAM between DSP and other processors - it
would
> work also DSP<->DSP. The ones we use have semaphores in them which
> allow the software to atomically-"lock" areas of DPRAM so the
other side
> doesn't write to it. That way you just have some external memory
that
> you fill with the appropriate data.
>
> >It would be nice to find a solution that can easily be prototyped.
> >
>
> McBSPs are the easiest in that case, just wire them up between two
> eval-boards.
>
> Have fun!
>
> Cheers,
> Martin
>
> --
> Martin Thompson CEng MIEE
> TRW Conekt, Stratford Road, Solihull, B90 4GW. UK
> +44 (0)121-627-3569 : martin.j.thompson@t...
> http://www.conekt.net/

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/c6x/

<*> To unsubscribe from this group, send an email to:
c...@yahoogroups.com

<*




Hello Mike,

Thanks a lot for that advice.

Yes you are correct, I am using the 2 DSKs, with AvNet Analog (5-6K) daughter
boards and Data converter EVMs on all serial ports.

Just to make sure I understand your suggestion correctly... You were suggesting
that I make a "Bridge" board between the Two DSKs with four connectors that
pass through and an FPGA/Dual port Ram/FIFO in the middle that connects the
"Pass through" Emif ports of this custom board?

My only concern over this is that adding trace lenghts to that EMIF connector
may result in signal degradations that I cannot forsee and hence start
corrupting data that I write using the EMIF port. Am I being too paranoid or
are there "reference designs" out there that I can follow?

Any reasons for the choice of Dual port memory or any suggested dual port ram
devices ;)?

Once again, Thanks a lot.

Sincerely,
----------------------------
Taha Amiralli University of Western Ontario

Electrical Engineering Support
Canadian Arrow, Electrical Engineering team
www.canadianarrow.com

Solar Array/High Power Systems Manager
SunStang Solar Car Project, Electrical Team
http://hyperserver.engga.uwo.ca/sunstang/ Quoting Mike Dunn <>:

> Hello Taha,
>
> I don't think that you will find an existing solution.
>
> The EMIF1-->HPI2 and EMIF2-->1 is as easy/difficult as a FIFO or Dual Port
> RAM solution - with much slower performance.
>
> My advice would be to 'byte the bullet' all at once and not mess around. It
> sounds like you are already using a daughtercard - Create a 4" x 8" [I'm
> guessing on dimensions] PCB with 'pass through' daughtercard connectors [so
> that you can still plug in a daughtercard on top] that allows you to connect
> 2 boards. Put an FPGA [most flexible, most work], 1 or 2 FIFOs [can be a
> little more work if you find that you need to do something out of sequence],
> or a Dual Port RAM [my choice] in the middle - or you could do all three.
>
> Don't forget to add some signaling [like 'interrupt' to the other computer].
>
> If you do 'special stuff' very often, you might seriously consider the FPGA
> for potential reuse - that would give you something to do while the board is
> being fab'd
>
> good luck,
> mikedunn
>
> thamiral <> wrote: >
> Hello Martin,
>
> Thanks a lot for that quick response. I really do appreciate it.
>
> Unfortunately, I am using both the McBSP ports (ADC on one and DAC
> on the other) and hence I disregarded that option. It would have
> been an easy way out but oh well...
>
> Do you by any chance know how high the bandwidth of the HPI channel
> is?
>
> I was also considering an idea that is similar to the Dual port
> memory idea you had suggested. (My version was comprised of putting
> one of those inexpensive high speed bidirectional FIFOs) It works in
> the same fashion as your idea except for the fact both these
> solutions have one fundamental problem that I had not been able to
> solve.
>
> How would you rapidly prototype such a solution. (I have not been
> able to find any boards equipped with either Dual port mem. or
> FIFOs. My alternative was to try and look for EMIF-->EMIF boards
> with an FPGA in the middle and design my own FIFO/Dual port RAM. Not
> a plesant alternative if I might add.
>
> Many thanks,
>
> Sincerely,
>
> ----------------------------
> Taha Amiralli > University of Western Ontario
>
> Electrical Engineering Support
> Canadian Arrow, Electrical Engineering team
> www.canadianarrow.com
>
> Solar Array/High Power Systems Manager
> SunStang Solar Car Project, Electrical Team
> http://hyperserver.engga.uwo.ca/sunstang/ > --- In , "Martin.J Thompson"
> wrote:
> > >Hello,
> > >
> > Hi,
> >
> > >I am currently trying to setup a system in which I have 2
> DSKc6713
> > >systems, one of which masters a USB ASIC that allows for Bi-
> > >directional communication with a PC using a custom application
> layer
> > >protocol that sits on the USB protocol.
> > >
> > >Unfortunately, I am having difficulty choosing the best hardware
> and
> > >its corresponding software implementation to be able to allow
> these
> > >two DSPs to communicate (bidirectionally) effectively and allow
> for
> > >both real time data streams and just regular data streams (i.e.
> > >control messages being passed around etc)
> > >
> >
> > How much bandwidth do you need between them? The McBSPs might be
> an
> > easy way for you to transfer data between the DSPs - unless you are
> > using them already.
> >
> > >All the research I have done seem to point in the direction of
> the
> > >use of EMIF-->HPI or the use of some kind of BiDirectional FIFO
> > >(Emif-->Emif) but I have NO idea how I would implement the
> software.
> > >
> >
> > HPI is not very high bandwidth.
> >
> > We've used dual-port RAM between DSP and other processors - it
> would
> > work also DSP<->DSP. The ones we use have semaphores in them which
> > allow the software to atomically-"lock" areas of DPRAM so the
> other side
> > doesn't write to it. That way you just have some external memory
> that
> > you fill with the appropriate data.
> >
> > >It would be nice to find a solution that can easily be prototyped.
> > >
> >
> > McBSPs are the easiest in that case, just wire them up between two
> > eval-boards.
> >
> > Have fun!
> >
> > Cheers,
> > Martin
> >
> > --
> > Martin Thompson CEng MIEE
> > TRW Conekt, Stratford Road, Solihull, B90 4GW. UK
> > +44 (0)121-627-3569 : martin.j.thompson@t...
> > http://www.conekt.net/


I'll add my stuff here as Mike suggested most of what I was going to!

>
>Hello Mike,
>
>Thanks a lot for that advice.
>
>Yes you are correct, I am using the 2 DSKs, with AvNet Analog (5-6K)
daughter
>boards and Data converter EVMs on all serial ports.
>
>Just to make sure I understand your suggestion correctly... You were
suggesting
>that I make a "Bridge" board between the Two DSKs with four connectors
that
>pass through and an FPGA/Dual port Ram/FIFO in the middle that
connects the
>"Pass through" Emif ports of this custom board?
>
>My only concern over this is that adding trace lenghts to that EMIF
connector
>may result in signal degradations that I cannot forsee and hence
start
>corrupting data that I write using the EMIF port. Am I being too
paranoid or
>are there "reference designs" out there that I can follow?
>

You'll probably be alright, the DSP edges are reasonably well
controlled. If you can keep things to <3 inches you should be OK. To
be sure you'd simulate...

If you go the FPGA route, note that they can have some really evil
edges on them. When I did this, I was using an Altera 10KE FPGA, which
is really old-hat these days and even then I was seeing 700ps edges
which I had to terminate.

The newer ones have better slew control as you probably won't mind
losing that small bit of time.

>Any reasons for the choice of Dual port memory or any suggested dual
port ram
>devices ;)?
>

Our DPRAMs were IDT ones. The semaphores and interrupt line come in
very handy for synchronising the two processors. Try typing "dpram
semaphore" into their search, there seems to be a load of them...

Cheers,
Martin --
Martin Thompson CEng MIEE
TRW Conekt, Stratford Road, Solihull, B90 4GW. UK
+44 (0)121-627-3569 :
http://www.conekt.net/



Taha,
 
I have a picture in my mind, let me see if I can describe it.
 
Notice that all of the EMIF signals are on a single connector.  Position one DSK so that this connector is at the top right.  Position another DSK so that its connector is in the lower left.  Now position the DSKs such that the connectors are about 1" apart.  Now - what is the trace length problem??  Also the EMIF connectors are buffered on all of the DSKs that I have seen.
 
Also, to be accurate, this board will require 4 male + 4 female daughtercard connectors - 2 for DSK#1, 2 for DSK#1 pass-thru, 2 for DSK#2, 2 for DSK#2 pass-thru.
 
My main preference for DPRAM is the flexibility.  I have worked on systems with a single pipe between them and things can get complicated if you are transfering multiple data and control streams with different buffer sizes and priorities between the systems.  The programming model for shared memory seems more flexible [but requires more discipline]. 
 
FYI -  I like using fixed memory definitions in a single header that uses a 'SYSTEM1' or 'SYSTEM2' preprocessor directive to ensure that memory regions are consistent and complimentary between the two systems.
 
I don't have any 'contemporary dual port' suggestions but I seem to remember some reasonably priced devices in the 50 - 100 ns speed range.  If this isn't for a product, I would just check out Cypress and see what they have...
 
mikedunn
 


Taha Amiralli <t...@uwo.ca> wrote:
Hello Mike,

Thanks a lot for that advice.

Yes you are correct, I am using the 2 DSKs, with AvNet Analog (5-6K) daughter
boards and Data converter EVMs on all serial ports.

Just to make sure I understand your suggestion correctly... You were suggesting
that I make a "Bridge" board between the Two DSKs with four connectors that
pass through and an FPGA/Dual port Ram/FIFO in the middle that connects the
"Pass through" Emif ports of this custom board?

My only concern over this is that adding trace lenghts to that EMIF connector
may result in signal degradations that I cannot forsee and hence start
corrupting data that I write using the EMIF port. Am I being too paranoid or
are there "reference designs" out there that I can follow?

Any reasons for the choice of Dual port memory or any suggested dual port ram
devices ;)?

Once again, Thanks a lot.

Sincerely,
----------------------------
Taha Amiralli
t...@uwo.ca

University of Western Ontario

Electrical Engineering Support
Canadian Arrow, Electrical Engineering team
www.canadianarrow.com

Solar Array/High Power Systems Manager
SunStang Solar Car Project, Electrical Team
http://hyperserver.engga.uwo.ca/sunstang/Quoting Mike Dunn :

> Hello Taha,
>
> I don't think that you will find an existing solution.
>
> The EMIF1-->HPI2 and EMIF2-->1 is as easy/difficult as a FIFO or Dual Port
> RAM solution - with much slower performance.
>
> My advice would be to 'byte the bullet' all at once and not mess around. It
> sounds like you are already using a daughtercard - Create a 4" x 8" [I'm
> guessing on dimensions] PCB with 'pass through' daughtercard connectors [so
> that you can still plug in a daughtercard on top] that allows you to connect
> 2 boards. Put an FPGA [most flexible, most work], 1 or 2 FIFOs [can be a
> little more work if you find that you need to do something out of sequence],
> or a Dual Port RAM [my choice] in the middle - or you could do all three.
>
> Don't forget to add some signaling [like 'interrupt' to the other computer].
>
> If you do 'special stuff' very often, you might seriously consider the FPGA
> for potential reuse - that would give you something to do while the board is
> being fab'd
>
> good luck,
> mikedunn
>
> thamiral wrote:>
> Hello Martin,
>
> Thanks a lot for that quick response. I really do appreciate it.
>
> Unfortunately, I am using both the McBSP ports (ADC on one and DAC
> on the other) and hence I disregarded that option. It would have
> been an easy way out but oh well...
>
> Do you by any chance know how high the bandwidth of the HPI channel
> is?
>
> I was also considering an idea that is similar to the Dual port
> memory idea you had suggested. (My version was comprised of putting
> one of those inexpensive high speed bidirectional FIFOs) It works in
> the same fashion as your idea except for the fact both these
> solutions have one fundamental problem that I had not been able to
> solve.
>
> How would you rapidly prototype such a solution. (I have not been
> able to find any boards equipped with either Dual port mem. or
> FIFOs. My alternative was to try and look for EMIF-->EMIF boards
> with an FPGA in the middle and design my own FIFO/Dual port RAM. Not
> a plesant alternative if I might add.
>
> Many thanks,
>
> Sincerely,
>
> ----------------------------
> Taha Amiralli
> t...@uwo.ca
>
> University of Western Ontario
>
> Electrical Engineering Support
> Canadian Arrow, Electrical Engineering team
> www.canadianarrow.com
>
> Solar Array/High Power Systems Manager
> SunStang Solar Car Project, Electrical Team
> http://hyperserver.engga.uwo.ca/sunstang/> --- In c...@yahoogroups.com, "Martin.J Thompson"
> wrote:
> > >Hello,
> > >
> > Hi,
> >
> > >I am currently trying to setup a system in which I have 2
> DSKc6713
> > >systems, one of which masters a USB ASIC that allows for Bi-
> > >directional communication with a PC using a custom application
> layer
> > >protocol that sits on the USB protocol.
> > >
> > >Unfortunately, I am having difficulty choosing the best hardware
> and
> > >its corresponding software implementation to be able to allow
> these
> > >two DSPs to communicate (bidirectionally) effectively and allow
> for
> > >both real time data streams and just regular data streams (i.e.
> > >control messages being passed around etc)
> > >
> >
> > How much bandwidth do you need between them? The McBSPs might be
> an
> > easy way for you to transfer data between the DSPs - unless you are
> > using them already.
> >
> > >All the research I have done seem to point in the direction of
> the
> > >use of EMIF-->HPI or the use of some kind of BiDirectional FIFO
> > >(Emif-->Emif) but I have NO idea how I would implement the
> software.
> > >
> >
> > HPI is not very high bandwidth.
> >
> > We've used dual-port RAM between DSP and other processors
- it
> would
> > work also DSP<->DSP. The ones we use have semaphores in them which
> > allow the software to atomically-"lock" areas of DPRAM so the
> other side
> > doesn't write to it. That way you just have some external memory
> that
> > you fill with the appropriate data.
> >
> > >It would be nice to find a solution that can easily be prototyped.
> > >
> >
> > McBSPs are the easiest in that case, just wire them up between two
> > eval-boards.
> >
> > Have fun!
> >
> > Cheers,
> > Martin
> >
> > --
> > Martin Thompson CEng MIEE
> > TRW Conekt, Stratford Road, Solihull, B90 4GW. UK
> > +44 (0)121-627-3569 : martin.j.thompson@t...
> > http://www.conekt.net/>
>
> <*> To visit your group on the web, go to:
> http://groups.yahoo.com/group/c6x/
>
> <*> To unsubscribe from this group, send an email to:
> c...@yahoogroups.com
>
> <*




Hello Mike,

Thanks a lot for the input. I guess I was being paranoid about a 1-2" trace
length problem. :)

I am just curious about how you manage to maintain/communicate atomicity when
communicating with the other microprocessor.

Specifically, if I were to use DSP/BIOS semaphores, then the problem becomes
that there is no such thing as a shared "semaphore" since both RTOS's can be
polling/writing on that semaphore and we can potentially still have an
atomicity problem.

If we use hardware semaphores (avail in the Dual port mem) as suggested by
Martin, then the problem becomes communicating the "locked" state somehow to
the other DSP. (i.e. one DSP can lock the memory whilst the other DSP is trying
to find out if the memory is locked)

This is not for a product actually (its a research project) and I will take a
look if cypress has anything that would speed up development with respect to
this project.

Thanks a lotnonce again,

Sincerely,
----------------------------
Taha Amiralli University of Western Ontario

Electrical Engineering Support
Canadian Arrow, Electrical Engineering team
www.canadianarrow.com

Solar Array/High Power Systems Manager
SunStang Solar Car Project, Electrical Team
http://hyperserver.engga.uwo.ca/sunstang/ Quoting Mike Dunn <>:

> Taha,
>
> I have a picture in my mind, let me see if I can describe it.
>
> Notice that all of the EMIF signals are on a single connector. Position one
> DSK so that this connector is at the top right. Position another DSK so that
> its connector is in the lower left. Now position the DSKs such that the
> connectors are about 1" apart. Now - what is the trace length problem??
> Also the EMIF connectors are buffered on all of the DSKs that I have seen.
>
> Also, to be accurate, this board will require 4 male + 4 female daughtercard
> connectors - 2 for DSK#1, 2 for DSK#1 pass-thru, 2 for DSK#2, 2 for DSK#2
> pass-thru.
>
> My main preference for DPRAM is the flexibility. I have worked on systems
> with a single pipe between them and things can get complicated if you are
> transfering multiple data and control streams with different buffer sizes and
> priorities between the systems. The programming model for shared memory
> seems more flexible [but requires more discipline].
>
> FYI - I like using fixed memory definitions in a single header that uses a
> 'SYSTEM1' or 'SYSTEM2' preprocessor directive to ensure that memory regions
> are consistent and complimentary between the two systems.
>
> I don't have any 'contemporary dual port' suggestions but I seem to remember
> some reasonably priced devices in the 50 - 100 ns speed range. If this isn't
> for a product, I would just check out Cypress and see what they have...
>
> mikedunn >
> Taha Amiralli <> wrote:
> Hello Mike,
>
> Thanks a lot for that advice.
>
> Yes you are correct, I am using the 2 DSKs, with AvNet Analog (5-6K) daughter
> boards and Data converter EVMs on all serial ports.
>
> Just to make sure I understand your suggestion correctly... You were
> suggesting
> that I make a "Bridge" board between the Two DSKs with four connectors that
> pass through and an FPGA/Dual port Ram/FIFO in the middle that connects the
> "Pass through" Emif ports of this custom board?
>
> My only concern over this is that adding trace lenghts to that EMIF connector
> may result in signal degradations that I cannot forsee and hence start
> corrupting data that I write using the EMIF port. Am I being too paranoid or
> are there "reference designs" out there that I can follow?
>
> Any reasons for the choice of Dual port memory or any suggested dual port ram
> devices ;)?
>
> Once again, Thanks a lot.
>
> Sincerely,
> ----------------------------
> Taha Amiralli > University of Western Ontario
>
> Electrical Engineering Support
> Canadian Arrow, Electrical Engineering team
> www.canadianarrow.com
>
> Solar Array/High Power Systems Manager
> SunStang Solar Car Project, Electrical Team
> http://hyperserver.engga.uwo.ca/sunstang/ > Quoting Mike Dunn :
>
> > Hello Taha,
> >
> > I don't think that you will find an existing solution.
> >
> > The EMIF1-->HPI2 and EMIF2-->1 is as easy/difficult as a FIFO or Dual Port
> > RAM solution - with much slower performance.
> >
> > My advice would be to 'byte the bullet' all at once and not mess around. It
> > sounds like you are already using a daughtercard - Create a 4" x 8" [I'm
> > guessing on dimensions] PCB with 'pass through' daughtercard connectors [so
> > that you can still plug in a daughtercard on top] that allows you to
> connect
> > 2 boards. Put an FPGA [most flexible, most work], 1 or 2 FIFOs [can be a
> > little more work if you find that you need to do something out of
> sequence],
> > or a Dual Port RAM [my choice] in the middle - or you could do all three.
> >
> > Don't forget to add some signaling [like 'interrupt' to the other
> computer].
> >
> > If you do 'special stuff' very often, you might seriously consider the FPGA
> > for potential reuse - that would give you something to do while the board
> is
> > being fab'd
> >
> > good luck,
> > mikedunn
> >
> > thamiral wrote:
> >
> >
> >
> > Hello Martin,
> >
> > Thanks a lot for that quick response. I really do appreciate it.
> >
> > Unfortunately, I am using both the McBSP ports (ADC on one and DAC
> > on the other) and hence I disregarded that option. It would have
> > been an easy way out but oh well...
> >
> > Do you by any chance know how high the bandwidth of the HPI channel
> > is?
> >
> > I was also considering an idea that is similar to the Dual port
> > memory idea you had suggested. (My version was comprised of putting
> > one of those inexpensive high speed bidirectional FIFOs) It works in
> > the same fashion as your idea except for the fact both these
> > solutions have one fundamental problem that I had not been able to
> > solve.
> >
> > How would you rapidly prototype such a solution. (I have not been
> > able to find any boards equipped with either Dual port mem. or
> > FIFOs. My alternative was to try and look for EMIF-->EMIF boards
> > with an FPGA in the middle and design my own FIFO/Dual port RAM. Not
> > a plesant alternative if I might add.
> >
> > Many thanks,
> >
> > Sincerely,
> >
> > ----------------------------
> > Taha Amiralli
> >
> >
> > University of Western Ontario
> >
> > Electrical Engineering Support
> > Canadian Arrow, Electrical Engineering team
> > www.canadianarrow.com
> >
> > Solar Array/High Power Systems Manager
> > SunStang Solar Car Project, Electrical Team
> > http://hyperserver.engga.uwo.ca/sunstang/
> >
> >
> >
> >
> >
> >
> >
> >
> > --- In , "Martin.J Thompson"
> > wrote:
> > > >Hello,
> > > >
> > > Hi,
> > >
> > > >I am currently trying to setup a system in which I have 2
> > DSKc6713
> > > >systems, one of which masters a USB ASIC that allows for Bi-
> > > >directional communication with a PC using a custom application
> > layer
> > > >protocol that sits on the USB protocol.
> > > >
> > > >Unfortunately, I am having difficulty choosing the best hardware
> > and
> > > >its corresponding software implementation to be able to allow
> > these
> > > >two DSPs to communicate (bidirectionally) effectively and allow
> > for
> > > >both real time data streams and just regular data streams (i.e.
> > > >control messages being passed around etc)
> > > >
> > >
> > > How much bandwidth do you need between them? The McBSPs might be
> > an
> > > easy way for you to transfer data between the DSPs - unless you are
> > > using them already.
> > >
> > > >All the research I have done seem to point in the direction of
> > the
> > > >use of EMIF-->HPI or the use of some kind of BiDirectional FIFO
> > > >(Emif-->Emif) but I have NO idea how I would implement the
> > software.
> > > >
> > >
> > > HPI is not very high bandwidth.
> > >
> > > We've used dual-port RAM between DSP and other processors - it
> > would
> > > work also DSP<->DSP. The ones we use have semaphores in them which
> > > allow the software to atomically-"lock" areas of DPRAM so the
> > other side
> > > doesn't write to it. That way you just have some external memory
> > that
> > > you fill with the appropriate data.
> > >
> > > >It would be nice to find a solution that can easily be prototyped.
> > > >
> > >
> > > McBSPs are the easiest in that case, just wire them up between two
> > > eval-boards.
> > >
> > > Have fun!
> > >
> > > Cheers,
> > > Martin
> > >
> > > --
> > > Martin Thompson CEng MIEE
> > > TRW Conekt, Stratford Road, Solihull, B90 4GW. UK
> > > +44 (0)121-627-3569 : martin.j.thompson@t...
> > > http://www.conekt.net/
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >



>
>>>> Taha Amiralli <> 04 February 2005 16:03:54 >>>
>If we use hardware semaphores (avail in the Dual port mem) as
suggested by
>Martin, then the problem becomes communicating the "locked" state
somehow to
>the other DSP. (i.e. one DSP can lock the memory whilst the other DSP
is trying
>to find out if the memory is locked)
>

The other DSP will "know", as it will try and take the semaphore and
fail. The DPRAM parts gurarntee that if both sides try and take the
semaphore, only one will succeed.

Or was that not the question?

Cheers,
Martin

--
Martin Thompson CEng MIEE
TRW Conekt, Stratford Road, Solihull, B90 4GW. UK
+44 (0)121-627-3569 :
http://www.conekt.net/





Hello Martin,

Thanks for the info... Can software semaphores be used as opposed to
hardware semaphores?

Sincerely,

Taha Amiralli

--- In , "Martin.J Thompson"
<Martin.J.Thompson@t...> wrote:
>
> >
> >>>> Taha Amiralli <thamiral@u...> 04 February 2005 16:03:54 >>>
> >If we use hardware semaphores (avail in the Dual port mem) as
> suggested by
> >Martin, then the problem becomes communicating the "locked" state
> somehow to
> >the other DSP. (i.e. one DSP can lock the memory whilst the other
DSP
> is trying
> >to find out if the memory is locked)
> >
>
> The other DSP will "know", as it will try and take the semaphore
and
> fail. The DPRAM parts gurarntee that if both sides try and take
the
> semaphore, only one will succeed.
>
> Or was that not the question?
>
> Cheers,
> Martin
>
> --
> Martin Thompson CEng MIEE
> TRW Conekt, Stratford Road, Solihull, B90 4GW. UK
> +44 (0)121-627-3569 : martin.j.thompson@t...
> http://www.conekt.net/