Skip to content

Instantly share code, notes, and snippets.

@KubaO
Last active January 21, 2024 15:09
Show Gist options
  • Select an option

  • Save KubaO/75f53d82a849b65f1a8980b1a2901328 to your computer and use it in GitHub Desktop.

Select an option

Save KubaO/75f53d82a849b65f1a8980b1a2901328 to your computer and use it in GitHub Desktop.

Revisions

  1. KubaO revised this gist Jan 14, 2024. 1 changed file with 24 additions and 2 deletions.
    26 changes: 24 additions & 2 deletions eese.697614.md
    Original file line number Diff line number Diff line change
    @@ -30,8 +30,30 @@ There are many ways of solving such circuits. For people who looked at lots of l

    <!-- End schematic -->

    4. The transformations can be done for each output separately.
    4. The transformations above should be done for each output separately, to avoid confusion.

    5. Draw all the simplified circuits one above the other and see if they remind you of something visually.

    6. If not, write out the truth table. First, fill in the input columns.
    6. If not, write out the truth table.

    a) First, fill in the input columns in whatever systematic pattern you prefer. Below, I'm counting up in binary. You may as well use Gray code or whatever else you'd like. Leave the output columns empty.

    | a | b | | c |
    |---|---|-|---|
    | 0 | 0 | | |
    | 0 | 1 | | |
    | 1 | 0 | | |
    | 1 | 1 | | |

    b) Then, write the equation for each sub-circuit (output) in the column header for that output. In our case, the equation for c is \$c=!a*b\$.

    c) Finally, compute the values for each line for each output.

    | a | b | |\$c=!a*b\$|
    |---|---|-|---|
    | 0 | 0 | | 0 |
    | 0 | 1 | | 1 |
    | 1 | 0 | | 0 |
    | 1 | 1 | | 0 |

    7. Once you get columns for all the outputs, see if the pattern looks familiar. You may need to reorder the outputs to expose that pattern. On paper it's easy: just cut out the output columns, put them next to each other, and you can reshuffle them laterally.
  2. KubaO created this gist Jan 14, 2024.
    37 changes: 37 additions & 0 deletions eese.697614.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,37 @@
    There are many ways of solving such circuits. For people who looked at lots of logic diagrams like these - they'll identify them pretty much just by looking at them for a minute. For someone who's just learning it for the first time, it helps to have a process. Here are the steps I'd take. You don't need to take those exact steps, of course!

    1. Replace the input lines with labels:

    <!-- Begin schematic: In order to preserve an editable schematic, please
    don't edit this section directly.
    Click the "edit" link below the image in the preview instead. -->

    ![schematic](http://i.stack.imgur.com/R0r8y.png)

    <!-- End schematic -->

    2. Replace NANDs with shorted inputs with inverters:

    <!-- Begin schematic: In order to preserve an editable schematic, please
    don't edit this section directly.
    Click the "edit" link below the image in the preview instead. -->

    ![schematic](http://i.stack.imgur.com/xMuaV.png)

    <!-- End schematic -->

    3. Propagate input dots forward, and output dots backward:

    <!-- Begin schematic: In order to preserve an editable schematic, please
    don't edit this section directly.
    Click the "edit" link below the image in the preview instead. -->

    ![schematic](http://i.stack.imgur.com/mQ4hD.png)

    <!-- End schematic -->

    4. The transformations can be done for each output separately.

    5. Draw all the simplified circuits one above the other and see if they remind you of something visually.

    6. If not, write out the truth table. First, fill in the input columns.