diff options
Diffstat (limited to 'ld.mp')
-rw-r--r-- | ld.mp | 119 |
1 files changed, 85 insertions, 34 deletions
@@ -33,6 +33,7 @@ enddef; def gate_and(expr gax, gay) = numeric GAh, GAl, GAs; + GAh := 20; GAl := 10; GAe := gax+36; @@ -79,27 +80,35 @@ enddef; outputtemplate := "nora.eps"; beginfig(5) -numeric wt, ht, il; +numeric wt, ht, il, gs, gr, gc; -wt = 50; -ht = 15; +ht = 30; il = 15; +gs = il; +gc = 7; +gr = 10; +wt = gr + 25; -label.lft(btex $z$ etex, (0, 0)); -label.lft(btex $y$ etex, (0, 10)); -label.lft(btex $x$ etex, (0, 20)); -label.rt(btex $(x+y+z)'$ etex, (wt+il, 10)); +label.lft(btex $z$ etex, (0, 5)); +label.lft(btex $y$ etex, (0, 15)); +label.lft(btex $x$ etex, (0, 25)); -draw (0, 0)--(19, 0); -draw (0, 10)--(22, 10); -draw (0, 20)--(19, 20); +draw (0, 5)--(il+4, 5); +draw (0, 15)--(il+7, 15); +draw (0, 25)--(il+4, 25); -draw (15, -5)..(22, 10)..(15, 25); -draw (15, -5)--(25, -5)..(26, -5)..(wt, 10); -draw (15, 25)--(22, 25)..(23, 25)..(wt, 10); -draw (wt, 10)..(wt+3, 10)..(wt, 10); +draw (gs, 0)..(gs + gc, ht/2)..(gs, ht); +draw (gs, 0)--(gs + gr, 0)..(gs + gr + 2, 0)..(gs + wt, ht/2); +draw (gs, ht)--(gs + gr, ht)..(gs + gr + 2, ht)..(gs + wt, ht/2); -draw (wt+3, 10)--(wt+il-3, 10); +gs := gs + wt; +draw (gs, ht/2)..(gs + 3, ht/2)..(gs, ht/2); + +il := il - 3; +gs := gs + 3; +draw (gs, ht/2)--(gs + il, ht/2); + +label.rt(btex $(x+y+z)'$ etex, (gs + il, ht/2)); endfig; @@ -108,16 +117,17 @@ endfig; outputtemplate := "norb.eps"; beginfig(6) -numeric wt, ht, il; +numeric wt, ht, il, gs, gr; -wt = 50; ht = 30; il = 12; +gs = 15; +gr = 20; +wt = gr + 15; label.lft(btex $z$ etex, (0, 0)); label.lft(btex $y$ etex, (0, 10)); label.lft(btex $x$ etex, (0, 20)); -label.rt(btex $x'y'z'=(x+y+z)'$ etex, (wt+il, 10)); draw (0, 0)--(il, 0); draw (il, 0)..(il+3, 0)..(il, 0); @@ -126,12 +136,16 @@ draw (il, 10)..(il+3, 10)..(il, 10); draw (0, 20)--(il, 20); draw (il, 20)..(il+3, 20)..(il, 20); +draw (gs, -5)--(gs, ht-5); +draw (gs, -5)--(gs + gr, -5)..(gs + gr + 1, -5)..(gs + wt, 10); +draw (gs, 25)--(gs + gr, 25)..(gs + gr + 1, 25)..(gs + wt, 10); + +gs := gs + wt; il := il + 3; -draw (il, -5)--(il, ht-5); -draw (il, -5)--(il+20, -5)..(il+21, -5)..(wt, 10); -draw (il, 25)--(il+20, 25)..(il+21, 25)..(wt, 10); +draw (gs, ht/2-5)--(gs + il, ht/2-5); + +label.rt(btex $x'y'z'=(x+y+z)'$ etex, (gs+il, ht/2-5)); -draw (wt, 10)--(wt+il, 10); endfig; % ================= @@ -139,12 +153,13 @@ endfig; outputtemplate := "nanda.eps"; beginfig(7); -numeric il, gas, ht, wt; +numeric il, ht, wt, gs, gr; -il = 10; -gas = il; ht = 30; -wt = 40; +il = 15; +gs = il; +gr = 20; +wt = gr + 15; label.lft(btex $z$ etex, (0, 5)); label.lft(btex $y$ etex, (0, 15)); @@ -154,17 +169,53 @@ draw (0, 5)--(il, 5); draw (0, 15)--(il, 15); draw (0, 25)--(il, 25); -draw (gas, 0)--(gas, ht); -draw (gas, 0)--(gas + 25, 0)..(gas + wt, ht/2-1).. - (gas + 25, ht)--(gas, ht); +draw (gs, 0)--(gs, ht); +draw (gs, 0)--(gs + gr, 0)..(gs + wt, ht/2-1).. + (gs + gr, ht)--(gs, ht); -gas := gas + wt; -draw (gas, ht/2)..(gas + 3, ht/2)..(gas, ht/2); -gas := gas + 3; +gs := gs + wt; +draw (gs, ht/2)..(gs + 3, ht/2)..(gs, ht/2); + +gs := gs + 3; il := il - 3; -draw (gas, ht/2)--(gas + il, ht/2); +draw (gs, ht/2)--(gs + il, ht/2); + +label.rt(btex $(xyz)'$ etex, (gs + il, ht/2)); + +endfig; + +% ================= + +outputtemplate := "nandb.eps"; +beginfig(8) + +numeric wt, ht, il, gs, gr, gc; + +ht = 30; +il = 12; +gs = il; +gc = 7; +gr = 10; +wt = gr + 25; + +label.lft(btex $z$ etex, (0, 5)); +label.lft(btex $y$ etex, (0, 15)); +label.lft(btex $x$ etex, (0, 25)); + +draw (0, 5)--(il+4, 5)..(il+4 + 3, 5)..(il+4, 5); +draw (0, 15)--(il+7, 15)..(il+7 + 3, 15)..(il+7, 15); +draw (0, 25)--(il+4, 25)..(il+4 + 3, 25)..(il+4, 25); + +gs := gs + 3; +draw (gs, 0)..(gs + gc, ht/2)..(gs, ht); +draw (gs, 0)--(gs + gr, 0)..(gs + gr + 2, 0)..(gs + wt, ht/2); +draw (gs, ht)--(gs + gr, ht)..(gs + gr + 2, ht)..(gs + wt, ht/2); + +gs := gs + wt; +il := il + 3; +draw (gs, ht/2)--(gs + il, ht/2); -label.rt(btex $(xyz)'$ etex, (gas + il, ht/2)); +label.rt(btex $x'+y'+z' = (xyz)'$ etex, (gs + il, ht/2)); endfig; |