5

Hi I'm trying to replicate the graph below. I've done most of it, but can't figure out a way to have an arrow originate and end at

Aim to replicate this

I've managed to get the below figure. And I'm stuck at produce the arrows on the Node E.

enter image description here

I've attached the code below

\tikzstyle{state} = [circle, minimum width=2cm, draw=black]
\begin{tikzpicture}[very thick, ->, >=stealth,auto, node distance=4cm]
    \node(shift) [state] {Shift $=1$};
    \node [above of=shift, yshift=-3.5cm] {S};
    \node(add) [state, right of=shift] {Add $=1$};
    \node [above of=add, yshift=-3.5cm] {A};
    \node(init) [state, right of=add] {Init $=1$};
    \node [above of=init, yshift=-3.5cm] {I};
    \node(control) [state, below of=add] {};
    \node [above of=control, yshift=-3.5cm] {C};
    \node(others) [state, below of=control] {};
    \node [above of=others, yshift=-3.5cm] {Others};
    \node(end) [state, right of=control] {Done $=1$};
    \node [above of=end, yshift=-3.5cm] {E};
    \node(reset) [circle, draw=black, fill=black, right of=end, xshift=-1.5cm] {};
    \node [above of=reset, yshift=-3.5cm] {Reset};

    \path (add) edge node [above] {$1$} (shift);
    \path (shift) edge[bend right] node [below left] {LSB/Stop $=00$} (control);
    \path (control) edge[] node [above right] {$1$} (shift);
    \path (control) edge[] node [right] {LSB $=1$} (add);
    \path (init) edge[] node [below right] {$1$} (control);
    \path (end) edge[] node [right] {Start $=1$} (init);
    \path (control) edge[] node [above] {$01$} (end);
    \path (others) edge[] node [above left] {$1$} (end);
    \path (reset) edge[] node [] {} (end);
\end{tikzpicture}
3

Like this ? (see commented line for explanations)

screenshot

\documentclass[tikz,border=5mm]{standalone}

\begin{document}
\tikzstyle{state} = [circle, minimum width=2cm, draw=black]
\begin{tikzpicture}[very thick, ->, >=stealth,auto, node distance=4cm]
    \node(shift) [state] {Shift $=1$};
    \node [above of=shift, yshift=-3.5cm] {S};
    \node(add) [state, right of=shift] {Add $=1$};
    \node [above of=add, yshift=-3.5cm] {A};
    \node(init) [state, right of=add] {Init $=1$};
    \node [above of=init, yshift=-3.5cm] {I};
    \node(control) [state, below of=add] {};
    \node [above of=control, yshift=-3.5cm] {C};
    \node(others) [state, below of=control] {};
    \node [above of=others, yshift=-3.5cm] {Others};
    \node(end) [state, right of=control] {Done $=1$ };
    \draw (end) to [in=-40,out=220,looseness=5,min distance=30mm]node[above]{Start $=0$} (end);% <------ loop Start=0
    \node [above of=end, yshift=-3.5cm] {E };
    \node(reset) [circle, draw=black, fill=black, right of=end, xshift=-1.5cm] {};
    \node [above of=reset, yshift=-3.5cm] {Reset};

    \path (add) edge node [above] {$1$} (shift);
    \path (shift) edge[bend right] node [below left] {LSB/Stop $=00$} (control);
    \path (control) edge[] node [above right] {$1$} (shift);
    \path (control) edge[] node [right] {LSB $=1$} (add);
    \path (init) edge[] node [below right] {$1$} (control);
    \path (end) edge[] node [right] {Start $=1$} (init);
    \path (control) edge[] node [above] {$01$} (end);
    \path (others) edge[] node [above left] {$1$} (end.200);%<--- arrows a little above 
    \path (reset) edge[] node [] {} (end);
   %\node [circle,draw] at (end){} edge [in=30,out=60,loop] ();
\end{tikzpicture}
\end{document}

Addendum:

\tikzstyle is deprecated, use \tikzset instead, which give:

\documentclass[tikz,border=5mm]{standalone}

\begin{document}
%\tikzstyle{state} = [circle, minimum width=2cm, draw=black]
\tikzset{state/.style={circle, minimum width=2cm, draw=black}}
\begin{tikzpicture}[very thick, ->, >=stealth,auto, node distance=4cm]
    \node(shift) [state] {Shift $=1$};
    \node [above of=shift, yshift=-3.5cm] {S};
    \node(add) [state, right of=shift] {Add $=1$};
    \node [above of=add, yshift=-3.5cm] {A};
    \node(init) [state, right of=add] {Init $=1$};
    \node [above of=init, yshift=-3.5cm] {I};
    \node(control) [state, below of=add] {};
    \node [above of=control, yshift=-3.5cm] {C};
    \node(others) [state, below of=control] {};
    \node [above of=others, yshift=-3.5cm] {Others};
    \node(end) [state, right of=control] {Done $=1$ };
    \draw (end) to [in=-40,out=220,looseness=5,min distance=30mm]node[above]{Start $=0$} (end);% <------ loop Start=0
    \node [above of=end, yshift=-3.5cm] {E };
    \node(reset) [circle, draw=black, fill=black, right of=end, xshift=-1.5cm] {};
    \node [above of=reset, yshift=-3.5cm] {Reset};

    \path (add) edge node [above] {$1$} (shift);
    \path (shift) edge[bend right] node [below left] {LSB/Stop $=00$} (control);
    \path (control) edge[] node [above right] {$1$} (shift);
    \path (control) edge[] node [right] {LSB $=1$} (add);
    \path (init) edge[] node [below right] {$1$} (control);
    \path (end) edge[] node [right] {Start $=1$} (init);
    \path (control) edge[] node [above] {$01$} (end);
    \path (others) edge[] node [above left] {$1$} (end.200);%<--- arrows a little above 
    \path (reset) edge[] node [] {} (end);
   \end{tikzpicture}
\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.