RAM64

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

RAM64

h4l0
Hi all.

I have got to the RAM64 and need a little bit of a nudge in the right direction.  I have had no troubles until now but can't get my head around using the RAM8 to build the RAM64.

Thanks for any help.

h4l0
Reply | Threaded
Open this post in threaded view
|

Re: RAM64

h4l0
Figured it out
Reply | Threaded
Open this post in threaded view
|

Re: RAM64

Drew
Any chance of forwarding that "nudge" onto me?  A little stuck myself.
Reply | Threaded
Open this post in threaded view
|

Re: RAM64

cadet1620
Administrator
RAM64 looks a lot like RAM8, except that you replace the Registers with RAM8s, and some of the address bits need to go to the RAM8s.

--Mark
Reply | Threaded
Open this post in threaded view
|

Re: RAM64

Drew
Hi Mark,

Yep now you have said that its quite simple. :) Finished all the RAM chips now.
For some reason I just had a blank on the address bits.

Thank you very much!

Reply | Threaded
Open this post in threaded view
|

Re: RAM64

ammarr
In reply to this post by cadet1620
Thanks admin

finally i got RAM64 to work, i did many trials with DMux, DMux4way and Dmux8way

but finally got it right, just as you said

its exactly just similar to RAM8

1 DMux8Way
8 RAM8
1 Mux8Way16

the trick is in the address[6], i didnt know how to split it

finally i split it into 2 parts address[0..2] and address[3..5]

i used the same address in the DMux8Way and Mux8Way16
and same address to be send for all the RAM8

Thanks alot
Reply | Threaded
Open this post in threaded view
|

Re: RAM64

Desmond.Song
Hi, I'm also finished RAM64, but I have a puzzled  about the last sentence of code,

"Mux8Way16(a=outa,b=outb,c=outc,d=outd,e=oute,f=outf,g=outg,h=outh,sel=address[3..5],out=out); "
That is 'address[3..5]', because I start using 'address[0..2]'.

When  I running  RAM64.hdl, it throw an error. so I tried to modiy '[3..5]' to '[0..2]' , unbelievably, RAM64.hdl  was running well.

How can I understand this? Thank you in advance !
Reply | Threaded
Open this post in threaded view
|

Re: RAM64

cadet1620
Administrator
Desmond.Song wrote
Hi, I'm also finished RAM64, but I have a puzzled  about the last sentence of code,

"Mux8Way16(a=outa,b=outb,c=outc,d=outd,e=oute,f=outf,g=outg,h=outh,sel=address[3..5],out=out);"
That is 'address[3..5]', because I start using 'address[0..2]'.

When  I running  RAM64.hdl, it throw an error. so I tried to modify '[3..5]' to '[0..2]' , unbelievably, RAM64.hdl  was running well.
You can use any 3 of the address bits in the output multiplexor, but you need to use the same 3 bits in the demultiplexor that handles 'load'. The 3 bits that are not used in the mux and demux must be used for the addresses for the RAM8s.

--Mark
Reply | Threaded
Open this post in threaded view
|

Re: RAM64

Desmond.Song
This post was updated on .
Thanks Mark. It's like encoding and decoding in communication !

--Desmond.Song
Reply | Threaded
Open this post in threaded view
|

Re: RAM64

huskeyw
In reply to this post by cadet1620

Desmond.Song wrote

You can use any 3 of the address bits in the output multiplexor, but you need to use the same 3 bits in the demultiplexor that handles 'load'. The 3 bits that are not used in the mux and demux must be used for the addresses for the RAM8s.

--Mark
I think of the two parts of the address row and column, when I read the hint it triggered, on why 6 bits for address..