element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum 256 x 12 RAM
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 13 replies
  • Answers 4 answers
  • Subscribers 393 subscribers
  • Views 1314 views
  • Users 0 members are here
  • lodgic
  • computers
  • rom
Related

256 x 12 RAM

timswift
timswift over 9 years ago

Hi

I have been designing a 4 bit computer with a 256 word program space.  But for the goto (skip to) command to work I need a 8 bit address

with a 4 bit op code.  So a 256 x 12 RAM would be needed but I cant seem to find any available.

Would a 256 x 16 work?

 

Thanks

 

Tim

  • Sign in to reply
  • Cancel

Top Replies

  • timswift
    timswift over 9 years ago in reply to johnbeetem +2
    I have finished the control logic's ruff design. I also changed the commands their are only 12 now (the ALU functions are on the same command). And the ALU has the highest chip count so far but the design…
  • dougw
    dougw over 9 years ago in reply to timswift +1 suggested
    SRAM is volatile unless it has a battery backup. Presumably you need non-volatile memory with a parallel interface. It will be tough to get modern memory chips this small so you could end up with unused…
  • DAB
    DAB over 9 years ago in reply to timswift +1
    Yes, RAM or ROM, all you need to do is provide an address bus to select the byte and a clock to latch the data inside the device to the pins on your MCU to read. In my bit slice days, we did a lot of this…
  • DAB
    0 DAB over 9 years ago

    Yes, as long as you make sure the unused data bits are properly terminated so that you do not get any ESD issues.

     

    DAB

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • timswift
    0 timswift over 9 years ago in reply to DAB

    Sorry I wrote ROM not SRAM (it cant be volatile).

     

    Could I combine two  256 x 8 SRAM's and get a 256 x 16?

     

    Tim

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • clem57
    0 clem57 over 9 years ago in reply to timswift

    I think you have this:

         So data would be only 12 bits not 16.

    It could be also:

         1st ROM uses bits 0-3 and 4-7 or each 4 bit word PLUS

         2nd ROM uses bits 0-3 and 4-7 are don't care.

    Take your pick,

     

    Clem

     

    PS. you may want to look at Intel 4004 for guidance: https://en.wikipedia.org/wiki/Intel_4004

    and history where the designer Federico Faggin was disowned by Intel The Intel 4004 Home

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • clem57
    0 clem57 over 9 years ago

    found a listing  instructions http://www.intel.com/Assets/PDF/DataSheet/4004_datasheet.pdf

    Clem

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • timswift
    0 timswift over 9 years ago in reply to clem57

    I am using 15 instructions.  And the ALU can add and subtract.

     

    The instruction decoder and control logic are separated from the rest of the computer and do not share the memory or data bus.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • clem57
    0 clem57 over 9 years ago in reply to timswift

    Are you using an Arduino? Or basic Logic from something like an FPGA?

    C

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • timswift
    0 timswift over 9 years ago in reply to clem57

    I am only using basic logic,counters,adders etc. And memory.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • dougw
    0 dougw over 9 years ago in reply to timswift

    SRAM is volatile unless it has a battery backup.

    Presumably you need non-volatile memory with a parallel interface.

    It will be tough to get modern memory chips this small so you could end up with unused memory space.

    As mentioned two 8 bit memories will work for a 12 bit requirement, just 4 bits will be unused.

    You could use a dual-port static RAM with battery-backup which would allow an external device to load or monitor the memory.

    Or you could use FRAM - you would need 2 chips like FM16W08-SGTR - this is non-volatile RAM with a parallel interface.

    For your application:

    • connect 8 address lines in parallel and ground the unused address lines
    • use 4 bits of one FRAM to store op-codes, connect the 4 unused data pins to 100K pull-down resistors
    • The second FRAM would store 8-bit addresses.
    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • johnbeetem
    0 johnbeetem over 9 years ago in reply to timswift

    timswift wrote:

     

    I am only using basic logic,counters,adders etc. And memory.

    I would suggest looking into an FPGA as a cheap and easy way (once you've come up the learning curve image) to implement logic and memory.  A simple CPU is well suited to the Lattice iCE40 which is the only FPGA I know of that has open-source tools (IceStorm).  There's a really nice low-cost development board (Lattice iCEstick) that unfortunately seems to be out of stock everywhere.  There's a nice educational development board (Nandland Go Board) that completed its Kickstarter funding a month ago and is now in production.  The Nandland web site has good tutorial material for new FPGA users.

     

    I don't know why iCEstick seems to be out of stock so much.  I suspect Lattice loses money on each one sold, and they're being snapped up by hobbyists who use them for one-of-a-kind projects and learning about FPGAs and don't go on to buy iCE40 chips in 100K quantities for commercial products.

     

    You can get started with FPGAs at no cost by simulating your CPU design and waiting to buy an actual FPGA board until your CPU design works.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • DAB
    0 DAB over 9 years ago in reply to timswift

    Yes, RAM or ROM, all you need to do is provide an address bus to select the byte and a clock to latch the data inside the device to the pins on your MCU to read.

     

    In my bit slice days, we did a lot of this type of circuits to get odd data segments.

     

    DAB

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube