1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
.PS
# Logic.m4
log_init(svg_font(sans-serif,11bp__))
xgap = 0.5
[ dmov = 0.4
{ {AND_gate ; "`AND_gate'" ljust at last [].w + (xgap,0)}
move down dmov; right_
{OR_gate ; "`OR_gate'" ljust at last [].w + (xgap,0)}
move down dmov; right_
{BUFFER_gate ; "`BUFFER_gate'" ljust at last [].w + (xgap,0)}
move down dmov; right_
{XOR_gate ; "`XOR_gate'" ljust at last [].w + (xgap,0)}
}
xgap = 0.65
move right_ 2
{ { NAND_gate ; "`NAND_gate'" ljust at last [].w + (xgap,0) }
move down dmov; right_
{ Gate: NOR_gate(3)
"`NOR_gate(3)'" ljust at last [].w + (xgap,0)
thinlines_
spline <- from Gate.Out right arrowht*2.0 \
then up 0.15 then right 0.05
"`Out'" ljust
spline <- from Gate.N_Out down arrowht*2.0 \
then right 0.1+arrowht*1.5+NOT_rad down 0.15-arrowht*2.0
"`N_Out'" ljust
for_(1,3,1,
`arrow <- left 0.2 down 0.05 from Gate.In`'m4x
"In`'m4x" rjust at Here+(0,(2-m4x)*0.02)')
}
thicklines_
move down dmov; right_
{ NOT_gate ; "`NOT_gate'" ljust at last [].w + (xgap,0) }
move down dmov; right_
{ NXOR_gate ; "`NXOR_gate'" ljust at last [].w + (xgap,0) }
}
move right_ 2
{ {B: NAND_gate(,B) ; "`NAND_gate(,B)'" ljust at B.w + (xgap,0)}
{ line invis right 1.8 from last [].se then down 1}
move down dmov; right_
move left N_diam*L_unit; right_
{NOR_gate(3,NB) ; "`NOR_gate(3,NB)'" ljust at (B.w,last []) + (xgap,0) }
move down dmov; right_
{BOX_gate(PN,N,,,=1)
"`BOX_gate(PN,N,,,=1)'" ljust at (B.w,last []) + (xgap,0)
line left 0.15 from last [].In1
line left 0.15-NOT_rad*2 from last [].In2
line right 0.15 from last [].Out }
move down dmov; move right_ N_diam*L_unit
{BOX_gate(PP,N,,,=)
"`BOX_gate(PP,N,,,=)'" ljust at (B.w,last []) + (xgap,0)
line left 0.15 from last [].In1
line left 0.15 from last [].In2
line right 0.15 from last [].Out }
}
]
command "</g>" # end font
.PE
|