Como desenhar um grande circuito lógico com muitas entradas em látex

Como desenhar um grande circuito lógico com muitas entradas em látex

como podemos desenhar circuitos lógicos com 128 entradas sem mostrar todas as entradas, isso significa que podemos desenhar um diagrama lógico mostrando 3 ou 4 bits como entrada, mas como podemos desenhar 128 entradas com rotulagem de 1 ou 2 entradas e outras serão assim por diante até 127 (sem rotulagem) e o 128º bit deve ser rotulado.

Responder1

Em primeiro lugar, seja bem-vindo ao TeX.SE. Da próxima vez, mostre-nos o que você tentou até agora. Geralmente não preferimos do-it-for-meclasses de perguntas.

Para começar sua resposta, você pode conseguir isso facilmente com circuitse 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}

obter:

insira a descrição da imagem aqui

Porém, com ciruittikz, vale a pena observar:

É possível implementar múltiplas portas lógicas de entrada com o circuitikz?

Como inverter a entrada do Logic Gate no Circuitikz

Responder2

Acho que, do ponto de vista da legibilidade, qualquer coisa com 128 portas é demais. Se você usar a nova versão (não lançada) de circuitikz(você pode encontrar uminstantâneo na página do github) você está limitado a (ainda ilegível na minha opinião) 16 pinos.

Eu faria algo parecido com o seguinte, e marcaria textualmente os fios que vão para o grande ou com algum tipo de símbolo... assim

\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}

exemplo

informação relacionada