1. PF Contest - Win "Conquering the Physics GRE" book! Click Here to Enter
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Implementing Logic Function with a ROM

  1. Dec 7, 2016 #1
    1. The problem statement, all variables and given/known data

    2. Relevant equations

    3. The attempt at a solution

    I'm a bit confused with this. I thought a ROM was just a non-volatile storage. I don't understand how this would work. The decoder can only select one of the 8 outputs depending on what it gets at its input. I still attempted it but I am quite sure it isn't correct. Any ideas on how this is meant to work?
  2. jcsd
  3. Dec 7, 2016 #2


    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    The output "gates" of a ROM are all the same (eg all OR gates) so you have to convert functions B and C to the required form first.

    It is just non-volatile storage. Think about what a truth table is. It tells you what the outputs are for a given combination of inputs. You can think of a ROM as doing exactly the same thing.

    In this example the ROM contains output data for all possible combinations of input from 000 to 111 so it can generate outputs for all possible combinations of input signals. In that respect it's actually better than hard wired logic. If you need to make a change you just reprogram the ROM. No need to rewire or change any logic gates.

    Disadvantages might include cost, speed, area of silicon.
  4. Dec 7, 2016 #3

    Ah. I see. Would this be correct for the conversion? I just took the complement of the product of maxterms expression. (Id have to replace the AND gates with ORs and change the Xs
  5. Dec 8, 2016 #4


    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    Yes that's correct.

    You need not actually draw a circuit with x's and OR gates. You just need to provide the contents of the ROM in the form of a table with the Address and Data fields. Here is an example (different functions to yours)...


    Although it might be better to label the address inputs A1(X) and A0(Y) and similarly for the data bits D1(A) and D0(B)
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted