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 1301 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…
Parents
  • 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
Reply
  • 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
Children
  • 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
  • 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
  • timswift
    0 timswift over 9 years ago in reply to johnbeetem

    Thanks for all the good feed back.

     

    I am still working on the design but I would like to build it in simpler pieces then assemble it.

     

    The control logic is the most difficult part so far.

     

    Tim

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

    timswift wrote:

     

    The control logic is the most difficult part so far.

    Control logic does not need to be difficult.  Most computer design books I've seen don't cover it well, so people get the false impression that it's difficult and mysterious.

     

    The important thing is to have an instruction set that allows you to have a simple data path that's easy to control.  Basically, a computer has a data path that performs all the arithmetic and register transfers and a control unit that tells the data path what to do each clock cycle.  The data path has control points (CPs) that specify what each element of the data path should do.  For example, an ALU has an operation CP to tell it which operation to do and each multiplexer has a mux CP to select one of the mux inputs.

     

    Glen Langdon's Computer Design (1982) has a nice analogy: the data path is like a piano and the keys are the control points.  The human playing the piano is the control unit that activates those control points.

     

    If your instruction set allows a simple data path with a relatively small number of CPs your life will be much easier.  For example, a classic RISC implementation usually allows fields of instructions to map directly to control points.  The register fields connect directly to the CPs that select registers from register files and the opcode field can connect directly to the ALU's operation CP.  If the instruction format allows an immediate operand the bit that selects immediate mode drives a mux CP that selects a register value or the immediate field from the instruction register.

     

    RISC instruction sets usually have simple controllers if not pipelined.  If you do add pipelining, it gets more complex but nowhere as bad as it would be if you try to pipeline a CISC.

     

    If you're not designing a RISC, I suggest looking into Hardware Flowcharts also known as Algorithmic State Machines.  ASMs basically combine finite-state machines with register transfers and are a clean way of looking at and designing control logic.

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

    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 is

    relatively strait-forwards.   

     

     

     

    Tim

    • Cancel
    • Vote Up +2 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