Author Topic: Very simple memory controller  (Read 1656 times)

0 Members and 1 Guest are viewing this topic.

Offline pigtwoTopic starter

  • Regular Contributor
  • *
  • Posts: 133
Very simple memory controller
« on: August 19, 2013, 05:20:36 pm »
Hi everyone!

So a while back I started working on a very (VERY) simple breadboard computer.  I ran into some problems when trying to write to memory.  In my first attempt I didn't even have a memory controller and I just tied CS low and let fate determine if my address lines would settle at the same time(and instantaneously).  And unsurprisingly they did not. 

Now I'm trying to make a very simple memory controller that will unassert CS while memory is not being used.  Then during a write cycle, it should keep CS low and give the address lines time to settle.  Then assert CS for a little bit, then unassert CS again before the end of the write cycle.

The best way I've thought to do this is to have a separate clock that runs at 8 times the system clock.  Then load a shift register with a pattern like '11000011' and have the output of the shift register go to the CS pin of the memory.  The shift register would get the 8 times clock so that in one write cycle(IE one system cycle) it would shift all the way through that pattern.

One of the problems I have with this is that I initially have to load that pattern into the shift register.  But since i only have to do it once in the beginning, I don't mind just putting a button on the bread board and pressing it every time.

So before I try to build this, I wanted to check here and see if there is a better(IE simpler) way to do this or if there is any obvious problems with this design. 

Thanks!
 

BulletMagnet83

  • Guest
Re: Very simple memory controller
« Reply #1 on: August 19, 2013, 05:30:00 pm »
What CPU are you using? What memory chips? Got a schematic of what you've made so far?
 

Offline pigtwoTopic starter

  • Regular Contributor
  • *
  • Posts: 133
Re: Very simple memory controller
« Reply #2 on: August 19, 2013, 06:33:42 pm »
I'm not using any pre-made CPU, I made it out of a couple of multiplexers and logic gates.  I'll post a picture of the CPU(although ALU is probably a better name) and the whole schematic.  The picture of the whole thing includes part of memory controller I was testing but I didn't like how complex it was. 

I'm using HM6116P-4 memory chips. 

This is my first attempt so it is ridiculously simple.  It has a 4-bit data bus and a 16-bit instruction bus.  I haven't implemented any segment registers or anything so I am stuck at a max of 16 instructions/data locations.  Which I know is stupid but, I'm more just doing this for fun.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf