Cómo dibujar un gran circuito lógico con muchas entradas en látex.

Cómo dibujar un gran circuito lógico con muchas entradas en látex.

¿Cómo podemos dibujar circuitos lógicos con 128 entradas sin mostrar todas las entradas? Eso significa que podemos dibujar un diagrama lógico mostrando 3 o 4 bits como entrada, pero ¿cómo podemos dibujar 128 entradas con etiquetado de 1 o 2 entradas y otras serán? así sucesivamente hasta que se etiqueten el bit 127 (sin etiquetado) y el 128.

Respuesta1

En primer lugar, bienvenido a TeX.SE. La próxima vez muéstrenos lo que ha probado hasta ahora. Generalmente no preferimos do-it-for-meclases de preguntas.

Para comenzar con su respuesta, puede lograrlo fácilmente con circuitsy positioningdentro de tikzlibrary.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits.logic.US,circuits.logic.IEC, positioning}
\begin{document}
\begin{tikzpicture}[minimum height=0.75cm] 
\node[and gate US, draw,logic gate inputs=nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn] (A) {}; 
\foreach \a in {1,...,128}
\draw (A.input \a) -- ([xshift=-2cm]A.input \a); 
\draw (A.output) -- ([xshift=2cm]A.output);
% naming the nodes
\node [left = 2.1cm of A.input 1] (n1) {1};
\node [left = 2.1cm of A.input 2] (n2) {2};
\node [left = 2.1cm of A.input 126] (n3) {126};
\end{tikzpicture}   

\end{document}

Llegar:

ingrese la descripción de la imagen aquí

Sin embargo, con ciruittikz, vale la pena mirar:

¿Es posible implementar múltiples puertos lógicos de entrada con circuitoikz?

Cómo invertir la entrada de Logic Gate en Circuitikz

Respuesta2

Creo que, desde el punto de vista de la legibilidad, cualquier cosa con 128 puertos es demasiado. Si utiliza la versión nueva (inédita) decircuitikz (puede encontrar unainstantánea en la página de github) estás limitado a 16 pines (aún ilegibles en mi opinión).

Yo haría algo como lo siguiente, y marcaría textualmente los cables que van al grande o con algún tipo de símbolo... así

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikzgit}
\begin{document}
\begin{circuitikz}[
    ]
    \ctikzset{logic ports origin=center}
    \draw(0,0) node[dipchip, num pins=14, no topmark, 
    external pins width=0, hide numbers](A){};
    \foreach \i/\l in {1/1, 2/2, 7/128} 
    \draw (A.bpin \i) node[right, font=\tiny]{\l} -- ++(-0.5,0) coordinate(my pin \i);
    \path (A.bpin 4) node[left]{$\vdots$};
    \draw (A.bpin 11) node[above right, font=\tiny]{out} -- ++(0.5,0);
    \path (A.center) node [american and port]{IC1};
    \draw (my pin 1) -- ++(-0.5,0) node[american xnor port, anchor=out]{}; 
    \draw (-4,-1) node[american xnor port](B){};
    \draw [->] (B.out) -- ++(0.5,0) node[right, align=left]{to IC1\\ pin 36};
\end{circuitikz}
\end{document}

ejemplo

información relacionada