RAM8

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

RAM8

Sebastian
Hello,

I am currently trying to get my RAM8 to work, however I am unfortunately failing. I have already discovered what the problem is, but in order to fix it it would require me to mess with the registers, which is something I rather not do and I presume I am not supposed to either.

This is my current design:

CHIP RAM8 {

    IN  in[16], load, address[3];
    OUT out[16];

    PARTS:
    DMux8Way16(in=in, sel=address, a=a, b=b, c=c, d=d, e=e, f=f, g=g, h=h);
    Register(in=a, load=load, out=aa);
    Register(in=b, load=load, out=bb);
    Register(in=c, load=load, out=cc);
    Register(in=d, load=load, out=dd);
    Register(in=e, load=load, out=ee);
    Register(in=f, load=load, out=ff);
    Register(in=g, load=load, out=gg);
    Register(in=h, load=load, out=hh);
    Mux8Way16(a=aa, b=bb, c=cc, d=dd, e=ee, f=ff, g=gg, h=hh, sel=address, out=out);
}

As you can see, every time load equals true, ALL of the registers are updated, but since every way of DMux8Way16 except for the one in which 'in' is inserted is null, every other register is set to null. How do I solve this without having to resort to changing the registers?

Regards,
Sebastian

PS: My compliments on the book. So far it has been a very satisfying learning experience!
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

Evan
Sebastian,

Try starting with a DMux8Way that is 1-bit only.  The outputs a..h then become the load inputs for each of the 8 registers.  The in for each register should be the same.

Reply | Threaded
Open this post in threaded view
|

Re: RAM8

Sebastian
I had not even considered using a DMux8Way in such a way. Thanks a bunch, Evan! This proves just how important a thorough analyzation is!
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

AntonioCS
Thanks Sebastian and Evan.

I was starting to use the Dmux but since I stop and then continue months after I kind of loose track of things and it gets harder and harder to to the chips.

At least I was going in the right direction :D
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

fabiog
Thanks Evan, that's what the Dmux was for!
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

mike2549
In reply to this post by Evan
Hi Evan,
I have got as far as the Ram8.  I have had some distractions and have "lost the thread".
After going back to the Register and DMux, I'm still stuck.
I'd sooooo appreciate any help or hints.
Following your hint to Sebastian, I came up with the following:
    PARTS:  
        DMux8Way(sel=address,a=a,b=b,c=c,d=d,e=e,f=f,g=g,h=h);
        Register(in=in,load=a,out=aa);
        Register(in=in,load=b,out=bb);
        Register(in=in,load=c,out=cc);
        Register(in=in,load=d,out=dd);
        Register(in=in,load=e,out=ee);
        Register(in=in,load=f,out=ff);
        Register(in=in,load=g,out=gg);
        Register(in=in,load=h,out=hh);
}
Thanks
Mike
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

cadet1620
Administrator
The address needs to do two things: it must control which Register gets loaded when RAM8's load is active, and it must control which Register's output appears on the RAM8 output.

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

Re: RAM8

ybakos
In reply to this post by mike2549
mike2549, you're close. As Mark says above, you now just need to handle what happens with the outputs of those registers. aa, bb, etc need to be routed to out... somehow.
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

mike2549
Hi,
Thanks for these hints.  Sorry - I still don't get it!
After lots of gyrations, I added the same last line as did Sebastian:
"Mux8Way16(a=aa,b=bb,c=cc,d=dd,e=ee,f=ff,g=gg,h=hh,sel=address,out=out);"
Where can I turn for enlightenment?
Thanks
Mike
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

ybakos
Think about RAM8 itself. It has a data input, a data output, and accepts some address signals.

What should be connected to RAM8's out? And why?




Reply | Threaded
Open this post in threaded view
|

Re: RAM8

gust
This post was updated on .
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

ybakos
Hi gust, would you mind deleting this post? We try to refrain from posting solutions here on the forum.
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

mike2549
In reply to this post by ybakos
Hi ybakos and Mark,
Thanks for your help and patience.  I eventually stumbled upon the solutions for the memory chips and have completed, including the RAM16K.  But I've gotta say that I did not "get" your directions - only encouragement to persist (which was valuable).
gust, thanks for your attempted rescue.  :-)
Onward and upward!
Mike
Reply | Threaded
Open this post in threaded view
|

Re: RAM8

apcheBoy
In reply to this post by Sebastian
Thank you guys for the nice discussion and keeping the forum free of solutions.
Sometimes it just helps to listen/read some of the discussion on a topic.
Even years after the topic seems closed ;)

Book is a great learning experience so far!