diff --git a/TeX/TestCrossing.tex b/TeX/TestCrossing.tex new file mode 100644 index 0000000..d681f5b --- /dev/null +++ b/TeX/TestCrossing.tex @@ -0,0 +1,66 @@ +\documentclass[border=0.2cm]{standalone} + +% Required packages and libraries +\usepackage{circuitikz} +\usetikzlibrary{calc} + +\begin{document} + + +\begin{tikzpicture} + +% Circuit style + + +% Logic ports +\node[or port] (ORa) at (0,0){ORa}; %In1 +\node[not port] (Noa) at (0,-2){Noa}; +\node[or port] (ORb) at (0,-4){ORb}; + +\node[not port] (Nob) at (2.5,0){Nob}; +\node[and port] (ANDa) at (2.5,-3){ANDa}; + +\node[or port] (ORc) at (5,-1.5){ORc}; + +% Connection +\draw (ORa.out) -- (Nob.in); + +\draw (Noa.out) -| (ANDa.in 1); +\draw (ORb.out) -| (ANDa.in 2); + +\draw (ANDa.out) -| (ORc.in 2); +\draw (Nob.out) -| (ORc.in 1); +\draw (ORc.out) -- ++(1,0) node[near end,above]{Out}; + +\draw (ORa.in 1) -- ++(-1.5,0)node[left](In1){In1}; +%\draw (ORb.in 2) -- ++(-1.5,0)node[left](In3){In3}; + +% Jump crossing element +\node at (ORa.in 2) +[ + below, + jump crossing, + rotate=-90, + scale=1.3 +](X){\tiny{X}}; + +\draw (Noa.in) -| (X.east) + (X.west) to[short,-*] (X.west |- ORa.in 1); + +%\draw ($ (In1) !.5! (In3) $) node[]{In2} +% ++ (0.4,0) to[short,-*] ++(0.5,0) coordinate(a) +% |- (X.south) (a) |- (ORb.in 1); +\end{tikzpicture} + + +\end{document} +\documentclass{article} +\title{Untitled} +\author{} +\date{2023-6-14} +\begin{document} +\maketitle + + +\end{document} + diff --git a/TeX/Xor.tex b/TeX/Xor.tex index 3155f0e..31371fd 100644 --- a/TeX/Xor.tex +++ b/TeX/Xor.tex @@ -54,6 +54,30 @@ major step/.initial=1, major line width/.initial=1pt, } + +\tikzset{ + declare function={% in case of CVS which switches the arguments of atan2 + atan3(\a,\b)=ifthenelse(atan2(0,1)==90, atan2(\a,\b), atan2(\b,\a)); + }, + kinky cross radius/.initial=+.125cm, + @kinky cross/.initial=+, + kinky crosses/.is choice, + kinky crosses/left/.style={@kinky cross=-}, + kinky crosses/right/.style={@kinky cross=+}, + kinky cross/.style args={(#1)--(#2)}{ + to path={ + let \p{@kc@}=($(\tikztotarget)-(\tikztostart)$), + \n{@kc@}={atan3(\p{@kc@})+180} in + -- ($(intersection of \tikztostart--{\tikztotarget} and #1--#2)!% + \pgfkeysvalueof{/tikz/kinky cross radius}!(\tikztostart)$) + arc [ radius =\pgfkeysvalueof{/tikz/kinky cross radius}, + start angle=\n{@kc@}, + delta angle=\pgfkeysvalueof{/tikz/@kinky cross}180 ] + -- (\tikztotarget) + } + } +} + \makeatother %!tikz preamble end @@ -64,33 +88,60 @@ \tikzstyle{branch}=[fill,shape=circle,minimum size=3pt,inner sep=0pt] - %\draw (0,0) to[grid with coordinates] (10,5); + \draw (0,0) to[grid with coordinates] (10,5); % Koordinaten für Kreuzpunkte \coordinate (A) at (0.95,2.75); - \fill (A) circle (1pt); + \fill (A) circle (1pt);% node{A}; \coordinate (B) at (0.95,0.5); \fill (B) circle (1pt); \coordinate (C) at (0.55,2.75); - \fill (C) circle (1pt); + %temp + \fill (C) circle (1pt) node{\tiny{C}}; \coordinate (D) at (2.5,1.4); + %temp + %\fill (D) circle (1pt) node{\tiny{D}}; + \coordinate (E) at (0.75,0.5); - \fill (E) circle (1pt); + \fill (E) circle (1pt) node[above]{\tiny{E}}; \coordinate (F) at (2.5,1.8); - + + %temp + \fill (F) circle (1pt) node{\tiny{F}}; + + \coordinate (G) at (4.2,2.58); + + %temp + %\fill (G) circle (1pt) node{G}; + + + \coordinate (H) at (4.2,0.666); + + %temp + %\fill (H) circle (1pt) node{H}; + + + \coordinate (I) at (6,1.6); + + %temp + \fill (I) circle (1pt) node{I}; + + \coordinate (J) at (0.75,1.8); + + \fill (J) circle (1pt) node[above]{\tiny{J}}; % Eingangsvariablen \node (x2) at (0.2,0.5) {b}; \node (x1) at (0.2,2.75) {a}; % Ausgangsvariable - \node (y) at (5,0.5) {out}; + \node (y) at (6.35, 1.62) {out}; % Gatter - \node[nand gate] at (1.5,0.5) (n1) {}; + \node[nand gate] at (1.5,0.5) (n1) {\tiny{N1}}; \node[nand gate] at (1.5,2.75) (n2) {}; \node[nand gate] at (3.45,2.58) (n4) {}; \node[nand gate] at (3.45,0.666) (n3) {}; @@ -108,15 +159,31 @@ \draw(n2.output) -- (n4.input 1); \draw(C) |- (D); \draw(D) |- (n3.input 1); - \draw(E) |- (F); - \draw(F) |- (n4.input 2); - \draw(n4.output) -- (n5.input 1); -% \draw(n1.output) -- (A); -% \draw(A) |- (n2.input 2); -% \draw(A) |- (n2.input 1); -% \draw(n2.output) -- (y); -% \draw(n1.output) to [short,l=\footnotesize{nandout}, -] (A); - + %\draw(E) |- (F); + %\draw(F) |- (n4.input 2); + \draw(n4.output) -- (G); + \draw(G) |- (n5.input 1); + \draw(n3.output) -- (H); + \draw(H) |- (n5.input 2); + \draw(n5.output) -- (I); + + +%\node at (ORa.in 2) +%[ +% below, +% jump crossing, +% rotate=-90, +% scale=1.3 +%](X){\tiny{X}}; + + + % \draw(n1.output) to [short,l=\footnotesize{nandout}, -] (A); +% \draw(1,-1) to[short] (1,1) (0,0) to[crossing] (2,0); + +% \draw(C) |- (D) (E) to[crossing] (J); + + % \draw (E) to [kinky cross=(C)--(D), kinky crosses=right](J); % / + \end{tikzpicture} %!tikz source end diff --git a/projects/01/Locad/Nand.stg b/projects/01/Locad/Nand.stg deleted file mode 100644 index 4310ab1..0000000 Binary files a/projects/01/Locad/Nand.stg and /dev/null differ diff --git a/projects/01/Locad/NewIC.icc b/projects/01/Locad/NewIC.icc deleted file mode 100644 index 7f82ef7..0000000 Binary files a/projects/01/Locad/NewIC.icc and /dev/null differ diff --git a/projects/01/Locad/Not.stg b/projects/01/Locad/Not.stg deleted file mode 100644 index c38cf09..0000000 Binary files a/projects/01/Locad/Not.stg and /dev/null differ diff --git a/projects/05/CPU.hdl b/projects/05/CPU.hdl index 7b73ca0..658f47a 100644 --- a/projects/05/CPU.hdl +++ b/projects/05/CPU.hdl @@ -40,4 +40,8 @@ CHIP CPU { PARTS: // Put your code here: + + // 1. A/C-Instruction + Not(in=instruction[15],out=inst) + Mux(a=outM,) } \ No newline at end of file