diff options
author | Holden Rohrer <hr@hrhr.dev> | 2020-03-21 21:42:25 -0400 |
---|---|---|
committer | Holden Rohrer <hr@hrhr.dev> | 2020-03-21 21:42:25 -0400 |
commit | 90079adcb7202482a2faff317704dfbc090763f2 (patch) | |
tree | f673f5ba75baa24589c02e3b9fc5fb11485542ef /gathing-eng | |
parent | b0521514688011d1112f0375d131adadae8f05b4 (diff) |
added ABC implement info
Diffstat (limited to 'gathing-eng')
-rw-r--r-- | gathing-eng/phrase-circuit.src | 73 |
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; |