DSPRelated.com
Forums

LDF file.

Started by Steve Holle March 1, 2004
I've got a question I'm having trouble finding an answer for.

I'm using an ADSP-21065L with two 256kx16 SRAM connected to MS0. The chips
are connected in parallel with one hooked to D0-D15 and the other
D16-D31. Both parts connect to A0-A17.

What should the ldf file entry for these parts look like? I'm not able to
find where the calculations are. I've looked at the SDRAM ldf and it looks
weird.

seg_pm_sdram { TYPE(PM RAM) START(0x00020000) END(0x00027fff)
WIDTH(32) }
seg_dm_sdram { TYPE(DM RAM) START(0x00030000) END(0x0005ffff)
WIDTH(32) }

Why the space between PM (0x00027ff) and DM (0x000300000) ? is the total
range for my SRAM 0x00020000 to 0x00023ffff ? How do I calculate start
addresses for each segment?

--------------------------
Steve Holle
Link Communications, Inc.
1035 Cerise Road
Billings, Montana 59101-7378
406.245.5002

--------------------------



Hello Steve,

From ADSP-21065L SHARC DSP User's Manual, page 5-26, I
read the following about external memory:

Bank 0 (/MS0): 0x00020000 - 0x00FFFFFF
Bank 1 (/MS1): 0x01000000 - 0x01FFFFFF
Bank 2 (/MS2): 0x02000000 - 0x02FFFFFF
Bank 3 (/MS3): 0x03000000 - 0x03FFFFFF

So, supposing that nothing else is attached to /MS0,
you could have something like:

seg_dm_mysram { TYPE(DM RAM) START(0x00020000)
END(0x00023fff) WIDTH(32) }

(assuming you'll use to store data DM, change to PM
otherwise).

But, from what you write, seems like you also have
SDRAM attached to /MS0, so in that case you should
either change the /MSx signals, one for external SRAM
and a different one for SDRAM, or use the free space
in your LDF, in the weird manner that you mentioned.
Mmhh.. but there is a problem. You address lines in
ext SRAM are A0-A17, so the "free" space for the /MS0
signal doen't cover A0-A17 without also covering the
range for your seg_pm_sdram segment. I think _the_
solution is to use separate /MSx signals for each one,
ext SRAM and SDRAM.

About the question: "is the total range for my SRAM
0x00020000 to 0x00023ffff?". My calculations say
"yes". But that applies supposing that you have /MS0
_FREE_ for just the SRAM.

Regards,

JaaC

--- Steve Holle <> wrote:
> I've got a question I'm having trouble finding an
> answer for.
>
> I'm using an ADSP-21065L with two 256kx16 SRAM
> connected to MS0. The chips
> are connected in parallel with one hooked to D0-D15
> and the other
> D16-D31. Both parts connect to A0-A17.
>
> What should the ldf file entry for these parts look
> like? I'm not able to
> find where the calculations are. I've looked at the
> SDRAM ldf and it looks
> weird.
>
> seg_pm_sdram { TYPE(PM RAM)
> START(0x00020000) END(0x00027fff)
> WIDTH(32) }
> seg_dm_sdram { TYPE(DM RAM)
> START(0x00030000) END(0x0005ffff)
> WIDTH(32) }
>
> Why the space between PM (0x00027ff) and DM
> (0x000300000) ? is the total
> range for my SRAM 0x00020000 to 0x00023ffff ? How
> do I calculate start
> addresses for each segment?
>
> --------------------------
> Steve Holle
> Link Communications, Inc.
> 1035 Cerise Road
> Billings, Montana 59101-7378
> 406.245.5002
>
> -------------------------- >
>
> _____________________________________
> Note: If you do a simple "reply" with your email
> client, only the author of this message will receive
> your answer. You need to do a "reply all" if you
> want your answer to be distributed to the entire
> group.
>
> _____________________________________
> About this discussion group:
>
> To Join: Send an email to > To Post: Send an email to
>
> To Leave: Send an email to > Archives: http://groups.yahoo.com/group/adsp
>
> Other Groups: http://www.dsprelated.com/groups.php3
>
> Yahoo! Groups Links >


=====

Jaime Andr Aranguren Cardona

__________________________________



At 07:01 AM 3/2/2004, Jaime Andres Aranguren Cardona wrote:
>Hello Steve,
>
> >From ADSP-21065L SHARC DSP User's Manual, page 5-26, I
>read the following about external memory:
>
>Bank 0 (/MS0): 0x00020000 - 0x00FFFFFF
>Bank 1 (/MS1): 0x01000000 - 0x01FFFFFF
>Bank 2 (/MS2): 0x02000000 - 0x02FFFFFF
>Bank 3 (/MS3): 0x03000000 - 0x03FFFFFF
>
>So, supposing that nothing else is attached to /MS0,
>you could have something like:
>
>seg_dm_mysram { TYPE(DM RAM) START(0x00020000)
>END(0x00023fff) WIDTH(32) }

Is this end right? >(assuming you'll use to store data DM, change to PM
>otherwise).
>
>But, from what you write, seems like you also have
>SDRAM attached to /MS0,

I don't have any SDRAM in this system. Sorry for the label confusion.

>so in that case you should
>either change the /MSx signals, one for external SRAM
>and a different one for SDRAM, or use the free space
>in your LDF, in the weird manner that you mentioned.
>Mmhh.. but there is a problem. You address lines in
>ext SRAM are A0-A17, so the "free" space for the /MS0
>signal doen't cover A0-A17 without also covering the
>range for your seg_pm_sdram segment. I think _the_
>solution is to use separate /MSx signals for each one,
>ext SRAM and SDRAM.
>
>About the question: "is the total range for my SRAM
>0x00020000 to 0x00023ffff?". My calculations say
>"yes". But that applies supposing that you have /MS0
>_FREE_ for just the SRAM.
>
>Regards,
>
>JaaC
>
>--- Steve Holle <> wrote:
> > I've got a question I'm having trouble finding an
> > answer for.
> >
> > I'm using an ADSP-21065L with two 256kx16 SRAM
> > connected to MS0. The chips
> > are connected in parallel with one hooked to D0-D15
> > and the other
> > D16-D31. Both parts connect to A0-A17.
> >
> > What should the ldf file entry for these parts look
> > like? I'm not able to
> > find where the calculations are. I've looked at the
> > SDRAM ldf and it looks
> > weird.
> >
> > seg_pm_sdram { TYPE(PM RAM)
> > START(0x00020000) END(0x00027fff)
> > WIDTH(32) }
> > seg_dm_sdram { TYPE(DM RAM)
> > START(0x00030000) END(0x0005ffff)
> > WIDTH(32) }
> >
> > Why the space between PM (0x00027ff) and DM
> > (0x000300000) ? is the total
> > range for my SRAM 0x00020000 to 0x00023ffff ? How
> > do I calculate start
> > addresses for each segment?
> >
> > --------------------------
> > Steve Holle
> > Link Communications, Inc.
> > 1035 Cerise Road
> > Billings, Montana 59101-7378
> > 406.245.5002
> >
> > --------------------------
> >
> >
> >
> >
> > _____________________________________
> > Note: If you do a simple "reply" with your email
> > client, only the author of this message will receive
> > your answer. You need to do a "reply all" if you
> > want your answer to be distributed to the entire
> > group.
> >
> > _____________________________________
> > About this discussion group:
> >
> > To Join: Send an email to
> >
> >
> > To Post: Send an email to
> >
> > To Leave: Send an email to
> >
> >
> > Archives: http://groups.yahoo.com/group/adsp
> >
> > Other Groups: http://www.dsprelated.com/groups.php3
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >=====
>
>Jaime Andr Aranguren Cardona >
>
>__________________________________
>
--------------------------
Steve Holle
Link Communications, Inc.
1035 Cerise Road
Billings, Montana 59101-7378
406.245.5002

--------------------------



On Mon, 1 Mar 2004, Steve Holle wrote:

> I've got a question I'm having trouble finding an answer for.
>
> I'm using an ADSP-21065L with two 256kx16 SRAM connected to MS0. The chips
> are connected in parallel with one hooked to D0-D15 and the other
> D16-D31. Both parts connect to A0-A17.
>
> What should the ldf file entry for these parts look like? I'm not able to
> find where the calculations are. I've looked at the SDRAM ldf and it looks
> weird.
>
> seg_pm_sdram { TYPE(PM RAM) START(0x00020000) END(0x00027fff)
> WIDTH(32) }
> seg_dm_sdram { TYPE(DM RAM) START(0x00030000) END(0x0005ffff)
> WIDTH(32) }
>
> Why the space between PM (0x00027ff) and DM (0x000300000) ? is the total
> range for my SRAM 0x00020000 to 0x00023ffff ? How do I calculate start
> addresses for each segment?

Maybe because there are two 32 bit reads for each 48 bit instruction, so
only half the range is useful for pm. In your case, is all dm space? If
so, you want to use the range 0x20000 to 0x5ffff (That's 0->3ffff + 20000)
If you use pm space, then you need to allocate 2 addresses for each 48 bit
word, and I bet the external port knows what the correct address is to
output. So if you say you want 64k of pm, that actually takes 128k of
space, but you specify only 64k in the ldf.

Patience, persistence, truth,
Dr. mike



Hello Steve,
From your explanations i am guessing that the total memory you
have is 256K*32. There is only 18 address lines, so the maximum
addressable location is 262144 (0x40000) = 256K. Also you are
mentioned that they are connected parallel, thereby you get a 32bit
memory. So the maximum memory address is 0x40000. but this memory is
connected to MS0 pin; there is some restriction for accessing the
initial address location (please look at the user manual - memory
section). So the available memory starts from 0x20000 to 0x40000. If
there is no program code(48bit - it stores at 2 address location in
external memory), there neednot be any gap in memory address at ldf
file.

regards
ajith

--- In , Jaime Andres Aranguren Cardona
<jaime_aranguren@y...> wrote:
> Hello Steve,
>
> From ADSP-21065L SHARC DSP User's Manual, page 5-26, I
> read the following about external memory:
>
> Bank 0 (/MS0): 0x00020000 - 0x00FFFFFF
> Bank 1 (/MS1): 0x01000000 - 0x01FFFFFF
> Bank 2 (/MS2): 0x02000000 - 0x02FFFFFF
> Bank 3 (/MS3): 0x03000000 - 0x03FFFFFF
>
> So, supposing that nothing else is attached to /MS0,
> you could have something like:
>
> seg_dm_mysram { TYPE(DM RAM) START(0x00020000)
> END(0x00023fff) WIDTH(32) }
>
> (assuming you'll use to store data DM, change to PM
> otherwise).
>
> But, from what you write, seems like you also have
> SDRAM attached to /MS0, so in that case you should
> either change the /MSx signals, one for external SRAM
> and a different one for SDRAM, or use the free space
> in your LDF, in the weird manner that you mentioned.
> Mmhh.. but there is a problem. You address lines in
> ext SRAM are A0-A17, so the "free" space for the /MS0
> signal doen't cover A0-A17 without also covering the
> range for your seg_pm_sdram segment. I think _the_
> solution is to use separate /MSx signals for each one,
> ext SRAM and SDRAM.
>
> About the question: "is the total range for my SRAM
> 0x00020000 to 0x00023ffff?". My calculations say
> "yes". But that applies supposing that you have /MS0
> _FREE_ for just the SRAM.
>
> Regards,
>
> JaaC
>
> --- Steve Holle <sholle@l...> wrote:
> > I've got a question I'm having trouble finding an
> > answer for.
> >
> > I'm using an ADSP-21065L with two 256kx16 SRAM
> > connected to MS0. The chips
> > are connected in parallel with one hooked to D0-D15
> > and the other
> > D16-D31. Both parts connect to A0-A17.
> >
> > What should the ldf file entry for these parts look
> > like? I'm not able to
> > find where the calculations are. I've looked at the
> > SDRAM ldf and it looks
> > weird.
> >
> > seg_pm_sdram { TYPE(PM RAM)
> > START(0x00020000) END(0x00027fff)
> > WIDTH(32) }
> > seg_dm_sdram { TYPE(DM RAM)
> > START(0x00030000) END(0x0005ffff)
> > WIDTH(32) }
> >
> > Why the space between PM (0x00027ff) and DM
> > (0x000300000) ? is the total
> > range for my SRAM 0x00020000 to 0x00023ffff ? How
> > do I calculate start
> > addresses for each segment?
> >
> > --------------------------
> > Steve Holle
> > Link Communications, Inc.
> > 1035 Cerise Road
> > Billings, Montana 59101-7378
> > 406.245.5002
> > sholle@l...
> > --------------------------
> >
> >
> >
> >
> > _____________________________________
> > Note: If you do a simple "reply" with your email
> > client, only the author of this message will receive
> > your answer. You need to do a "reply all" if you
> > want your answer to be distributed to the entire
> > group.
> >
> > _____________________________________
> > About this discussion group:
> >
> > To Join: Send an email to
> >
> >
> > To Post: Send an email to
> >
> > To Leave: Send an email to
> >
> >
> > Archives: http://groups.yahoo.com/group/adsp
> >
> > Other Groups: http://www.dsprelated.com/groups.php3
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> > =====
>
> Jaime Andr Aranguren Cardona
> jaime.aranguren@i...
> jaime.aranguren@c... > __________________________________
>




Hi, Steve.

My comments inlined.

Regards,

JaaC

--- Steve Holle <> wrote:
> At 07:01 AM 3/2/2004, Jaime Andres Aranguren Cardona
> wrote:
> >Hello Steve,
> >
> > >From ADSP-21065L SHARC DSP User's Manual, page
> 5-26, I
> >read the following about external memory:
> >
> >Bank 0 (/MS0): 0x00020000 - 0x00FFFFFF
> >Bank 1 (/MS1): 0x01000000 - 0x01FFFFFF
> >Bank 2 (/MS2): 0x02000000 - 0x02FFFFFF
> >Bank 3 (/MS3): 0x03000000 - 0x03FFFFFF
> >
> >So, supposing that nothing else is attached to
> /MS0,
> >you could have something like:
> >
> >seg_dm_mysram { TYPE(DM RAM) START(0x00020000)
> >END(0x00023fff) WIDTH(32) }
>
> Is this end right?

Mike Rosing's post was more accurate about the
addresses range, I apologize for my mistake. Also
beware of the issues with PM, as he pointed out.
>
>
> >(assuming you'll use to store data DM, change to PM
> >otherwise).
> >
> >But, from what you write, seems like you also have
> >SDRAM attached to /MS0,
>
> I don't have any SDRAM in this system. Sorry for
> the label confusion.
>

So, it's quite straightfoward. Follow Ms. Rosing's
suggestions.

N' god luck!

> >
> >About the question: "is the total range for my SRAM
> >0x00020000 to 0x00023ffff?". My calculations say

0x00020000 + 0x0003FFFF = 0x0005FFFF. So the correct
range is from 0x00020000 to 0x0005FFFF. My mistake
again... I'm sorry.

> >"yes". But that applies supposing that you have
> /MS0
> >_FREE_ for just the SRAM.
> >
> >Regards,
> >
> >JaaC
> >
> >--- Steve Holle <> wrote:
> > > I've got a question I'm having trouble finding
> an
> > > answer for.
> > >
> > > I'm using an ADSP-21065L with two 256kx16 SRAM
> > > connected to MS0. The chips
> > > are connected in parallel with one hooked to
> D0-D15
> > > and the other
> > > D16-D31. Both parts connect to A0-A17.
> > >
> > > What should the ldf file entry for these parts
> look
> > > like? I'm not able to
> > > find where the calculations are. I've looked at
> the
> > > SDRAM ldf and it looks
> > > weird.
> > >
> > > seg_pm_sdram { TYPE(PM RAM)
> > > START(0x00020000) END(0x00027fff)
> > > WIDTH(32) }
> > > seg_dm_sdram { TYPE(DM RAM)
> > > START(0x00030000) END(0x0005ffff)
> > > WIDTH(32) }
> > >
> > > Why the space between PM (0x00027ff) and DM
> > > (0x000300000) ? is the total
> > > range for my SRAM 0x00020000 to 0x00023ffff ?
> How
> > > do I calculate start
> > > addresses for each segment?
> > >
> > > --------------------------
> > > Steve Holle
> > > Link Communications, Inc.
> > > 1035 Cerise Road
> > > Billings, Montana 59101-7378
> > > 406.245.5002
> > >
> > > --------------------------
> > >
> > >
> > >
> > >
> > > _____________________________________
> > > Note: If you do a simple "reply" with your email
> > > client, only the author of this message will
> receive
> > > your answer. You need to do a "reply all" if
> you
> > > want your answer to be distributed to the entire
> > > group.
> > >
> > > _____________________________________
> > > About this discussion group:
> > >
> > > To Join: Send an email to
> > >
> > >
> > > To Post: Send an email to
> > >
> > > To Leave: Send an email to
> > >
> > >
> > > Archives: http://groups.yahoo.com/group/adsp
> > >
> > > Other Groups:
> http://www.dsprelated.com/groups.php3
> > >
> > > Yahoo! Groups Links
> > >
> > >
> > > to:
> > >
> > >
> > >
> > >
> >
> >
> >=====
> >
> >Jaime Andr Aranguren Cardona
> >
> >
> >
> >
> >__________________________________
> >
> --------------------------
> Steve Holle
> Link Communications, Inc.
> 1035 Cerise Road
> Billings, Montana 59101-7378
> 406.245.5002
>
> --------------------------
>


=====

Jaime Andr Aranguren Cardona

__________________________________