aboutsummaryrefslogtreecommitdiff
path: root/gathing-eng
diff options
context:
space:
mode:
authorHolden Rohrer <hr@hrhr.dev>2020-03-21 21:42:25 -0400
committerHolden Rohrer <hr@hrhr.dev>2020-03-21 21:42:25 -0400
commit90079adcb7202482a2faff317704dfbc090763f2 (patch)
treef673f5ba75baa24589c02e3b9fc5fb11485542ef /gathing-eng
parentb0521514688011d1112f0375d131adadae8f05b4 (diff)
added ABC implement info
Diffstat (limited to 'gathing-eng')
-rw-r--r--gathing-eng/phrase-circuit.src73
1 files changed, 10 insertions, 63 deletions
diff --git a/gathing-eng/phrase-circuit.src b/gathing-eng/phrase-circuit.src
index dfa75cd..c939e68 100644
--- a/gathing-eng/phrase-circuit.src
+++ b/gathing-eng/phrase-circuit.src
@@ -112,69 +112,9 @@ F = WXYZ + WXYZ
G = WXYZ + WXYZ + WXYZ + WXYZ + WXYZ
================================================================================
-.CT Karnaugh-like Depthy Mapping
-
-To take full advantage of human pattern-recognition capability, the following
-"Karnaugh maps" were created (note they are not circled because the point of
-this exercise is to develop relations between the basic primitives and the
-objective truth values).
- Form:
- Y Z Y!Z !Y!Z !Y Z
- W X # # # #
- W!X # # # #
-!W!X # # # #
-!W X # # # #
- For reference, the "primitives" (dot=0):
-
-W !W X !X
- 1 1 1 1 . . . . 1 1 1 1 . . . .
- 1 1 1 1 . . . . . . . . 1 1 1 1
- . . . . 1 1 1 1 . . . . 1 1 1 1
- . . . . 1 1 1 1 1 1 1 1 . . . .
-
-Y !Y Z !Z
- 1 1 . . . . 1 1 1 . . 1 . 1 1 .
- 1 1 . . . . 1 1 1 . . 1 . 1 1 .
- 1 1 . . . . 1 1 1 . . 1 . 1 1 .
- 1 1 . . . . 1 1 1 . . 1 . 1 1 .
-
- And the objectives:
-A B C D
- . . . 1 1 1 1 1 1 . 1 . . 1 . 1
- 1 . . 1 1 . 1 1 1 . 1 1 . 1 . 1
- 1 . . 1 1 . . . 1 . . . . . 1 .
- . . . 1 . 1 1 . . 1 . . 1 . . .
-
-E F G
- . . . . . 1 . . . 1 . .
- . . . . . . . . . . . 1
- . . . . . . . . . 1 . 1
- . . 1 . . . . 1 . 1 . .
-5 2AND
-10 3AND =
-6 4AND = 3 chip
-14 OR = 4 chip
-
-================================================================================
-.CT Simplified Boolean Expressions
-A = !YZ + !XZ
-B = W!(!XY!Z) + X!Z + !XYZ [!XY reused] = WX + W!Y + !XYZ + X!Z
-C = B!D + W!X!Y
-D = W(!YZ+Y!Z) + !W(XYZ+!X!Y!Z)
-E = !WX!Y!Z
-F = GWX + !WX!YZ
-G = !X!YZ + Y!Z!(W!X)
-
-Using variables to represent partial nodes:
-Provided = [! ][WXYZ]
-0 = !YZ
-1 = !XZ
-A = 0+1
-2 = !XY
-3 = 2Z
-4 = W
-================================================================================
-I actually used Berkeley's ABC: github.com/berkeley-abc/abc.
+.CT Berkeley's ABC!
+.CT ---------------
+I used Berkeley's ABC: github.com/berkeley-abc/abc.
.CT Genlib File
GATE inv 2.3 O=!a; PIN * INV 1 999 0.9 0.3 0.9 0.3
GATE nand 3.5 O=!(a*b); PIN * INV 1 999 0.9 0.3 0.9 0.3
@@ -209,6 +149,13 @@ GATE one 0 O=CONST1;
1000 0110000
.e
+On a Bourne shell with abc binary built in current dir:
+$ ./abc -c "read circ.pla; read_library gathing.genlib; strash;\
+collapse; strash; rewrite; strash; dc2; map; choice; map; print_gates;\
+write struct.eqn;"
+$ sed -e 's/new_n//g' -e 's/_//g' struct.eqn > struct.eqn.tmp
+$ mv struct.eqn{.tmp,} #with some custom cleanup (NAND, moving !x...)
+
.CT Network Structure from Berkeley's ABC
a = NAND(y,x) * z;
16 = !w * !y;