Memory parts

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

Memory parts

63rrit
i am working on the memory right now.

am i right, that i need:
DMux16 (2x)
RAM16K
Screen
Keyboard
Mux16 (2x)


an regarding the DMux16 (not buildin) how do i create this out of normal DMux chips without using subbusses of internal pins.
Reply | Threaded
Open this post in threaded view
|

Re: Memory parts

cadet1620
Administrator
You do not need DMux16 for Memory.  You can connect Memory's "in" directly to RAM16K's and Screen's "in".  The chips will ignore the value except when their "load" is TRUE.

Also, think about how you can use Mux4Way16 instead of 2 Mux16.

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

Re: Memory parts

63rrit
This post was updated on .
ok everything is working now.

used:
Not
And (2x)

for the selection logic

regarding the Mux:
Using a Mux4Way16 is like using 3 Mux16. Isn't using 2 Mux16 more efficient because we only have 3 different outputs?
(mine is working with 2 Mux16)
Reply | Threaded
Open this post in threaded view
|

Re: Memory parts

cadet1620
Administrator
63rrit wrote
regarding the Mux:
Using a Mux4Way16 is like using 3 Mux16. Isn't using 2 Mux16 more efficient because we only have 3 different outputs?
I prefer the Mux4Way16 because it more clearly shows that a choice of 1 of 3 items is being selected by the top two address bits. Modern hardware compilers for FPGAa are highly optimizing, like software compilers. They will discard unused parts of more complex gates.

Also, in real world hardware there is another output state besides TRUE and FALSE. This third state is variously called "high impedance", "tri-state", "3-state" or "open". It is usually called "Z" in truth tables.

3-state outputs work like the have a switch in line with their logic that disconnects the True/False from the output wire. The switch is turned on only if the output is enabled.

Parts like RAM, ROM, Screen have enables so that only one of them can be turned on at a time. This lets the part outputs be directly connected to the output bus without the need for any multiplexors.

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

Re: Memory parts

xedover
This whole thread is really helping me (though I haven't completely got it just yet). I too started down the same wrong path initially.

cadet1620 wrote
Parts like RAM, ROM, Screen have enables so that only one of them can be turned on at a time. This lets the part outputs be directly connected to the output bus without the need for any multiplexors.
This also helps me understand why Ben Eater didn't talk about or use multiplexors in his 8-bit breadboard computer design.
Reply | Threaded
Open this post in threaded view
|

Re: Memory parts

xedover
xedover wrote
though I haven't completely got it just yet
Got it.
My load logic was a bit screwy, and I kept miscounting my bits.