.PS # `FlipFlop.m4' log_init iflatex(`ifpsfrag(,`latexcommand({\sf)') ') s_init(Flipflop) sinclude(Circuit_macros.dim) [ right_ { Q1: FlipFlop(D,Q1) s_box(``\tt FlipFlop(D,Q1)'') at last [].Chip.s below h1 = L_unit*20 w1 = L_unit*12 FlipFlop(T,Q2,ht h1 wid w1 fill_(0.9)) with .w at last [].e+(0.25,0) s_box(``\shortstack{\tt FlipFlop(T,Q2,\\ \tt\quad ht h1 wid w1 fill\_(0.9))}'') \ at (last [].Chip,2nd last [].Chip.s)+(0,-0.25) FlipFlop(RS,,,Chip.wid/8) with .w at last [].e+(0.5,0) s_box(``\shortstack[l]{\tt FlipFlop(RS,{,},\\ \tt\quad Chip.wid/8)}'') at last [].sw below ljust FlipFlop(JK) with .w at last [].e+(0.5,0) s_box(``\tt FlipFlop(JK)'') with .n at last [].PinPR.end } move down 1.5; right_ { FlipFlopX(,,:D;E:CK,,:Q;:lg_bartxt(Q)) s_box(``\shortstack[l]{\tt FlipFlopX(,{,}\\ \tt\quad:D;E:CK,{,}:Q;:lg\_bartxt(Q))}'') at last [].Chip.s below FlipFlopX(,,:T;E:CK,,:Q;) with .Chip.c at last [].e+(1.25,0) s_box(``\shortstack[l]{\tt FlipFlopX(,{,}\\ \tt\quad:T;E:CK,{,}:Q;)}'') at last [].Chip.s below FlipFlopX(,,:J;E:CK;:K,N:CLR,:Q;) with .Chip.c at last [].e+(1.25,0) s_box(``\shortstack[l]{\tt FlipFlopX(,{,} \\ \tt\quad:J;E:CK;:K,N:CLR,:Q;)}'') at last [].Chip.s below } ] if 0 then { [ # Redrawn from # https://tex.stackexchange.com/questions/521724/how-could-i-write-this-in-a-more-exportable-way for_(0,4,1,` Q: FlipFlopX(ifelse(m4x,0,`fill_(0.95)'),, :Q:PinQ; :lg_bartxt(Q):PinNQ, :CLR:PinCLR, :J:PinJ; E::PinCK; :K:PinK, :PRST:PinPRST, 0) with .PinCK at Here ifelse(m4x,0, `S: source(right_ sourcerad_*2 at Q.Chip,U) line from S.start to Q.PinCK') T: Q.PinQ-(Q.Chip.wid/2,0) arrow from Q.PinQ to T then up Q.Chip.ht/2; { "$Q_`'m4x$" above } ifelse(m4x,4,,`arrow from T to (T,Q.PinCK) then left Q.Chip.wid/2') ') ] with .nw at last [].sw+(0,-0.5) } iflatex(ifpsfrag(,`latexcommand(})')) .PE