uart_rx: ein prozessmodell. spart weitere 3 logic elements :P
[hwmod.git] / spec / sm / rs232-rs.tex
1 % http://ftp.univie.ac.at/packages/tex/graphics/pstricks/base/doc/pstricks-doc.pdf
2 % http://www.tug.org/PSTricks/main.cgi?file=doc/docs
3
4 % 18:59:41 <martinp> http://pastebin.com/tcp16Gp minimales "sample"
5 % 01:53:07 <martinp> die nodes werden deine lieblinge sein ;)
6 % 01:53:19 <martinp> ncline, ncarc und nccircle
7 % 01:53:32 <martinp> angle und arcangle als parameter sind ganz nützlich ;)
8 % 01:54:08 <martinp> rest siehst eh in dem "sample" von mir ;)
9 % 01:55:08 <martinp> aja, was du auf jedenfall vermeiden solltest sind leere reihen in der psmatrix
10 % 01:55:14 <martinp> da kommt dann immer blödsinn raus
11 % 01:55:39 <martinp> wennst mehr platz zwischen den nodes brauchst solltest colsep und rowsep verändern
12 % 01:56:02 <martinp> eine \mbox{ } als knoten hab ich noch nicht probiert, könnte vlt aber auch gehen
13 % 01:56:40 <martinp> \ncarc[arcangle=20]{rs}{i}^{bla} setzt bla als label über die linie
14 % 01:56:45 <martinp> \ncarc[arcangle=20]{rs}{i}_{bla} unter die linie
15 % 01:57:07 <martinp> die ncput in dem sample in die linie (ohne * wird die linie auch nicht ausgeblendet)
16 % 01:57:55 <martinp> ^ und _ sind eigentlich nur abkürzungen für naput oder so in die richtung
17 % 01:58:13 <martinp> [npos=.4] ist auch ganz nett für die puts, damit veränderst die pos. der label auf der 
18 %                    linie (zwischen start und ende)
19 % 01:58:33 <martinp> und wennst böse kanten hast die du stark biegen musst
20 % 01:59:03 <martinp> da ist es besser ncurv zu erhöhen als den arcangle (zumindest ab einem bestimmten arcangle 
21 %                    auch die einzige möglichkeit mehr "kurve" zu bekommen)
22 \documentclass{minimal}
23 \pagestyle{empty}
24
25 \usepackage{pstricks}
26 \usepackage{pst-node}
27
28 \begin{document}
29
30 \begin{psmatrix}[mnode=oval, colsep=2.5cm, rowsep=2.5cm]
31 [mnode=R,name=res]{sys\_res\_n} &
32 [name=idle]{\shortstack{\textbf{idle}\\bc:=0;}} &
33 [mnode=R,name=vars]{int bc := 0;} \\
34 %%
35 [name=rs]{\shortstack{\textbf{read}\\\textbf{startbit}}} &
36 [name=rb]{\shortstack{\textbf{read}\\wait BT;}} &
37 [name=rsp]{\shortstack{\textbf{read}\\\textbf{stopbit}\\rxd\_new:=1;}} \\
38 \end{psmatrix}
39
40 \psset{arrows=->, shortput=nab}
41
42 \ncline[linestyle=dotted]{res}{idle}
43 %% receive
44 \ncarc[arcangle=15]{idle}{rs}\ncput*[npos=.38]{\shortstack{rxd$\downarrow$}}
45 \ncarc[arcangle=15]{rs}{idle}\ncput*[npos=.38]{rxd=1}
46 \ncline{rs}{rb}\ncput*{rxd=0}
47 \ncline{rb}{rsp}\ncput*{$bc \ge 8$}
48 \nccircle[angle=0]{rb}{.7cm}\ncput*{$bc<8$}
49 \ncline{rsp}{idle}
50 \end{document}