About RAM8

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

About RAM8

kingofbuffs
Hello everyone.

So I have been working my way through chapter 3. For RAM8 I I thought 1 demultiplexor, 1 multiplexor and 8 registers would be solve the problem.

DMux would take the input and the address and load the data into a certain register, and Mux would take the address and output it.



Only problem is, unless I am missing something, there's no 16 bit DMux we have created. So my solution does not work, since the input is 16 bit.

What am I missing? I feel like this is the correct approach.
Reply | Threaded
Open this post in threaded view
|

Re: About RAM8

burhan
You can use the  DMux8Way outputs as register's loads.
Reply | Threaded
Open this post in threaded view
|

Re: About RAM8

kingofbuffs
Just tried this and it works. Thank you!

These types of problems are the hardest  for me to solve since I convince myself that my approach is correct and there's no other way to do it. Now that I have put some thought into how this works, this makes much more sense.
Reply | Threaded
Open this post in threaded view
|

Re: About RAM8

WBahn
Administrator
In reply to this post by kingofbuffs
kingofbuffs wrote
Hello everyone.

So I have been working my way through chapter 3. For RAM8 I I thought 1 demultiplexor, 1 multiplexor and 8 registers would be solve the problem.

DMux would take the input and the address and load the data into a certain register, and Mux would take the address and output it.

Only problem is, unless I am missing something, there's no 16 bit DMux we have created. So my solution does not work, since the input is 16 bit.

What am I missing? I feel like this is the correct approach.
There are multiple ways to solve most of these problems and the authors only have you build the parts you need to solve them they way that they are trying to steer you toward, so just because you don't have a part, doesn't mean your approach is not valid.

In this case one issue you will come up against is that while your DMux8Way16 could be used to route the signal to the desired register, you still have to assert the load input on ONLY that register, otherwise you will overwrite the contents of all of the other registers with zeroes on every clock cycle.

So since you have to find a way to not assert the load signal on all of the other registers, those registers will ignore what is on their input pins and so it doesn't matter if those pins are all zero, or just whatever happens to be on the input pins to the overall part.
 
Reply | Threaded
Open this post in threaded view
|

Re: About RAM8

Vinay Poosarla
In reply to this post by kingofbuffs
This is exactly what I thought, but the biggest problem is that we don't have DMux which can accept 16 bit input, how are you able to resolve that problem.
Reply | Threaded
Open this post in threaded view
|

Re: About RAM8

WBahn
Administrator
Why do you need a DMux that has a 16-bit input?