diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/timing |
Initial commit
Diffstat (limited to 'macros/latex/contrib/timing')
19 files changed, 1234 insertions, 0 deletions
diff --git a/macros/latex/contrib/timing/prozt1.tex b/macros/latex/contrib/timing/prozt1.tex new file mode 100644 index 0000000000..fd6338e04c --- /dev/null +++ b/macros/latex/contrib/timing/prozt1.tex @@ -0,0 +1,47 @@ +\begin{timing}{1.8cm}
+\tin{1}{CLK}
+\tin{2}{A16--19}
+\tin{3}{AD0--15}
+\tin{4}{\nicht{ALE}}
+\tin{5}{READY}
+\tin{6}{M/\nicht{IO}}
+\tin{7}{DT/\nicht{R}}
+\tin{8}{\nicht{RD}}
+\tin{9}{\nicht{WR}}
+\tin{10}{\nicht{DEN}}
+\tnote{0.5}{4}{T1}\tnote{0.5}{12}{T2}\tnote{0.5}{20}{T3}\tnote{0.5}{28}{T4}
+\tnote{0.5}{36}{T1}\tnote{0.5}{44}{T2}\tnote{0.5}{52}{T3}
+\tnote{0.5}{60}{T3}\tnote{0.5}{68}{T4}
+\til{1}{% Takt
+HHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLLLLHHHHLL}
+%%....1111....2222....3333....4444....1111....2222....3333....3333....4444..
+\til{2}{% Adressen/Status
+VVXVVVVVVVXVVVVVVVVVVVVVVVVVVVVVVVXVVVVVVVXVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVXV}
+\tnote{2}{3}{Adressen}\tnote{2}{11}{Status}
+\tnote{2}{36}{Adressen}\tnote{2}{44}{Status}
+\til{3}{% Adressen/Daten
+ZZZVVVVVVVVZZZZZZZZVVVVVVVVVZZZZZZZZVVVVVVVXVVVVVVVVVVVVVVVVVVVVVVVVVZZZZZZZ}
+\tnote{3}{4}{Adressen}\tnote{3}{20}{Daten$^*$}
+\tnote{3}{37}{Adressen}\tnote{3}{45}{Daten$^{**}$}
+\til{4}{% -ALE
+HHHHHHHHLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH}
+\til{5}{% Ready
+FFFFFFFFFFFFFFFFFFFFFFFFFHHFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFLLLLLLLHHHFFFFFFFFF}
+%%....1111....2222....3333....4444....1111....2222....3333....3333....4444..
+\til{6}{% M/-IO
+FFHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHFFHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHFF}
+\til{7}{% DT/-R
+HLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHFFFF}
+\til{8}{% -RD
+HHHHHHHHHHHHLLLLLLLLLLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH}
+%%....1111....2222....3333....4444....1111....2222....3333....3333....4444..
+\til{9}{% -WR
+HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLLLLLLLLLLHHHHHHHH}
+\til{10}{% -DEN
+HHHHHHHHHHHHHLLLLLLLLLLLLLLHHHHHHHHHHHHHHHHLLLLLLLLLLLLLLLLLLLLLLLLLLHHHHHHH}
+\sline{0.5}{2}{10}\sline{0.5}{10}{10}\sline{0.5}{18}{10}\sline{0.5}{26}{10}
+\sline{0.5}{34}{10}
+\sline{0.5}{42}{10}\sline{0.5}{50}{10}\sline{0.5}{58}{10}\sline{0.5}{66}{10}
+\sline{0.5}{74}{10}
+\end{timing}
+ diff --git a/macros/latex/contrib/timing/read.me b/macros/latex/contrib/timing/read.me new file mode 100644 index 0000000000..e2b967ad9e --- /dev/null +++ b/macros/latex/contrib/timing/read.me @@ -0,0 +1,23 @@ +Dieses Dateipaket enth„lt vier Zeichens„tze sowie einige Makrodefinitionen, +die das Zeichnen von Zeitdiagrammen digitaler Schaltungen unter LaTeX +erlauben. + +Folgende Dateien geh”ren dazu: + +TIMING1.MF Metafont-Dateien mit Beschreibung der Zeichens„tze +TIMING2.MF +TIMING1S.MF +TIMING2S.MF +TIMING.MF Hauptdatei + +TIMING*.PK Zeichens„tze fr Atari SLM605 (300dpi) +TIMING*.TFM TFM Dateien fr TeX + +TIMING.STY Makrodefinitionen fr LaTeX + +TIMING.TEX Beschreibung der Makros +TIMING.DVI DVI Datei der Beschreibung + +READ.ME diese Datei + +Weitere Einzelheiten sind der Beschreibung zu entnehmen. diff --git a/macros/latex/contrib/timing/tim0594.upl b/macros/latex/contrib/timing/tim0594.upl new file mode 100644 index 0000000000..de2eb98309 --- /dev/null +++ b/macros/latex/contrib/timing/tim0594.upl @@ -0,0 +1,5 @@ +Timing-Paket Mai 1994 von May/Leilich. +Dieses Dateipaket enth„lt vier Zeichens„tze sowie einige Makrodefinitionen, +die das Zeichnen von Impulsdiagrammen digitaler Schaltungen unter LaTeX +erlauben. + diff --git a/macros/latex/contrib/timing/timing.mf b/macros/latex/contrib/timing/timing.mf new file mode 100644 index 0000000000..2aef4c8240 --- /dev/null +++ b/macros/latex/contrib/timing/timing.mf @@ -0,0 +1,492 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TIMING.MF +% +% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler +% Schaltungen. +% Hauptdatei fr alle Zeichens„tze +% +% Ludwig May, Dezember 1991 +% Jens Leilich, Žnderungen im Mai 1994 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +define_pixels(p_size,p3_size); +%define_good_x_pixels(c_width); +%define_good_y_pixels(c_height); +define_whole_pixels(c_width,c_height,p2_size); +if not odd c_width: c_width:=c_width-1; fi + +font_x_height c_height#; +font_quad c_width#; + +pen pinsel; +pinsel=(pencircle xscaled (0.8*p_size) yscaled p_size); + + +beginchar("H",c_width#,c_height#,bt#); "High Level"; + +pickup pinsel; +draw (-c_width,c_height)--(0,c_height); +showit; +endchar; + + +beginchar("L",c_width#,c_height#,bt#); "Low Level"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +showit; +endchar; + +%1/12->xs#/12, damit Steigung von HL und LH wie UV (JL,8.1.94) +beginchar(0,2*c_width#,c_height#,bt#); "High-Low"; + +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); +showit; +endchar; + +beginchar(1,2*c_width#,c_height#,bt#); "Low-High"; + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); +showit; +endchar; + +beginchar(12,2*c_width#,c_height#,bt#); "Change Bus"; + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0); +draw (-c_width,c_height)--(-xs#/12*c_width,c_height); +draw (xs#/12*c_width,0)--(c_width,0); +draw (xs#/12*c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0); +showit; +endchar; + +beginchar("V",c_width#,c_height#,bt#); "Valid Bus"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); +showit; +endchar; + +beginchar("Z",c_width#,c_height#,bt#); "Tristate Bus"; + +pickup pinsel; +draw (-c_width,c_height/2)--(0,c_height/2); +showit; +endchar; + +beginchar(2,2*c_width#,c_height#,bt#); "Tristate -> Valid Bus"; + +pickup pinsel; +draw (-c_width,c_height/2)--(0/12*c_width,c_height/2); +draw (0/12*c_width,c_height/2)--(xs#/12*c_width,c_height)--(c_width,c_height); +draw (0/12*c_width,c_height/2)--(xs#/12*c_width,0)--(c_width,0); +showit; +endchar; + +beginchar(3,2*c_width#,c_height#,bt#); "Valid -> Tristate Bus"; + +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(0/12*c_width,c_height/2); +draw (-c_width,0)--(-xs#/12*c_width,0)--(0/12*c_width,c_height/2); +draw (0/12*c_width,c_height/2)--(c_width,c_height/2); +showit; +endchar; + + +beginchar("U",c_width#,c_height#,bt#); "Invalid Bus"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); + +pickup pencircle scaled p3_size; +draw (-c_width,5/6*c_height)--(-c_width/2,c_height); +draw (-c_width,c_height/2)--(0,5/6*c_height); +draw (-c_width,1/6*c_height)--(0,c_height/2); +draw (-c_width/2,0)--(0,1/6*c_height); +showit; +endchar; + + +beginchar(4,2*c_width#,c_height#,bt#); "Tristate -> Invalid Bus"; + +y1=s_f#*2/3*(x1+c_width)+1/2*c_height; +x1=y1*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 1. Linie +%y1=s_f#* 12/xs#*(x1+c_width)-(6/xs#-0.5)*c_height;% Startpunkt der 1. Linie +y2=s_f#*2/3*(x2+c_width)+1/6*c_height; +x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie +%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% Startpunkt der 2. Linie +y3=s_f#*2/3*(x3+c_width)-1/6*c_height; +x3=y3*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 3. Linie +%y3=s_f#*-12/xs#*(x3+c_width)+(6/xs#+0.5)*c_height;% Startpunkt der 3. Linie + +pickup pinsel; +draw (-c_width,c_height/2)--(0/12*c_width,c_height/2); +draw (0/12*c_width,c_height/2)--(xs#/12*c_width,c_height)--(c_width,c_height); +draw (0/12*c_width,c_height/2)--(xs#/12*c_width,0)--(c_width,0); + +pickup pencircle scaled p3_size; +draw z1--(1/2*c_width,c_height); +draw z2--(c_width,5/6*c_height); +draw z3--(c_width,c_height/2); +draw (1/2*c_width,0)--(c_width,1/6*c_height); +showit; +endchar; + +beginchar(5,2*c_width#,c_height#,bt#); "Invalid -> Tristate Bus"; + +y1=s_f#*2/3*(x1+c_width)+1/2*c_height ; +x1=y1*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 1. Linie +%y1=s_f#*-12/xs#*(x1+c_width)+(6/xs#+0.5)*c_height; % Startpunkt der 1. Linie +y2=s_f#*2/3*(x2+c_width)+1/6*c_height ; +x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie +%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height; % Startpunkt der 2. Linie +y3=s_f#*2/3*(x3+c_width)-1/6*c_height ; +x3=y3*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 3. Linie +%y3=s_f#* 12/xs#*(x3+c_width)-(6/xs#-0.5)*c_height; % Startpunkt der 3. Linie + +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(0/12*c_width,c_height/2); +draw (-c_width,0)--(-xs#/12*c_width,0)--(0/12*c_width,c_height/2); +draw (0/12*c_width,c_height/2)--(c_width,c_height/2); + +pickup pencircle scaled p3_size; +draw (-c_width,5/6*c_height)--(-c_width/2,c_height); +draw (-c_width,c_height/2)--z1; +draw (-c_width,1/6*c_height)--z2; +draw (-c_width/2,0)--z3; +showit; +endchar; + + +beginchar(6,2*c_width#,c_height#,bt#); "Valid -> Invalid Bus"; + +y1=s_f#*2/3*(x1+c_width)+1/2*c_height; +x1=y1*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 1. Linie +%y1=s_f#* 12/xs#*(x1+c_width)-(6/xs#-0.5)*c_height;% 1. Linie +y2=s_f#*2/3*(x2+c_width)+1/6*c_height; +x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie +%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% 2. Linie +y3=s_f#*2/3*(x3+c_width)-1/6*c_height; +x3=y3*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 3. Linie +%y3=s_f#*-12/xs#*(x3+c_width)+(6/xs#+0.5)*c_height;% 3. Linie + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0); +draw (-c_width,c_height)--(-xs#/12*c_width,c_height); +draw (xs#/12*c_width,0)--(c_width,0); +draw (xs#/12*c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0); + +pickup pencircle scaled p3_size; +draw z1--(1/2*c_width,c_height); +draw z2--(c_width,5/6*c_height); +draw z3--(c_width,1/2*c_height); +draw (1/2*c_width,0)--(c_width,1/6*c_height); +showit; +endchar; + +beginchar(7,2*c_width#,c_height#,bt#); "Invalid -> Valid Bus"; + +y1=s_f#*2/3*(x1+c_width)+1/2*c_height; +x1=y1*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 1. Linie +%y1=s_f#*-12/xs#*(x1+c_width)+(6/xs#+0.5)*c_height;% 1. Linie +y2=s_f#*2/3*(x2+c_width)+1/6*c_height; +x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie +%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% 2. Linie +y3=s_f#*2/3*(x3+c_width)-1/6*c_height; +x3=y3*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 3. Linie +%y3=s_f#* 12/xs#*(x3+c_width)-(6/xs#-0.5)*c_height;% 3. Linie + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0); +draw (-c_width,c_height)--(-xs#/12*c_width,c_height); +draw (xs#/12*c_width,0)--(c_width,0); +draw (xs#/12*c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0); + +pickup pencircle scaled p3_size; +draw (-c_width,5/6*c_height)--(-1/2*c_width,c_height); +draw (-c_width,1/2*c_height)--z1; +draw (-c_width,1/6*c_height)--z2; +draw (-1/2*c_width,0)--z3; +showit; +endchar; + +beginchar("F",c_width#,c_height#,bt#); "Floating Line"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); +showit; +endchar; + +%1/12->xs#/12, damit Steigung von FL und FH wie UV (JL,8.1.94) +beginchar(13,2*c_width#,c_height#,bt#); "Float-Low"; + +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0); +draw (-c_width,0)--(c_width,0); +showit; +endchar; + +beginchar(14,2*c_width#,c_height#,bt#); "Float-High"; + +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-c_width,c_height)--(c_width,c_height); +showit; +endchar; + +beginchar(15,2*c_width#,c_height#,bt#); "High-Float"; + +pickup pinsel; +draw (-c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); +showit; +endchar; + +beginchar(16,2*c_width#,c_height#,bt#); "Low-Float"; + +pickup pinsel; +draw (-c_width,0)--(c_width,0); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); +showit; +endchar; + + +beginchar("-",c_width#/2,c_height#,bt#); "..."; + +pickup pencircle scaled p3_size; +draw (-c_width,-1/12*c_height)--(-c_width,13/12*c_height); +draw (-c_width/2-1,-1/12*c_height)--(-c_width/2-1,13/12*c_height); +showit; +endchar; + +beginchar("T",c_width#,1/6*c_height#,bt#); "TOP"; + +pickup pinsel; +draw (-c_width,1/12*c_height)--(-c_width,1/6*c_height)--(0,1/6*c_height); +showit; +endchar; + +beginchar("B",c_width#,1/6*c_height#,bt#); "BOTTOM"; + +pickup pinsel; +draw (-c_width,1/12*c_height)--(-c_width,0)--(0,0); +showit; +endchar; + +beginchar(8,3/2*c_width#,1/6*c_height#,bt#); "TOP-"; + +pickup pinsel; +draw (-c_width,1/12*c_height)--(-c_width,1/6*c_height)--(0,1/6*c_height); +pickup pencircle scaled p3_size; +draw (0+1,0)--(0+1,2/12*c_height); +draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); +showit; +endchar; + +beginchar(9,3/2*c_width#,1/6*c_height#,bt#); "BOTTOM-"; + +pickup pinsel; +draw (-c_width,1/12*c_height)--(-c_width,0)--(0,0); +pickup pencircle scaled p3_size; +draw (0+1,0)--(0+1,2/12*c_height); +draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); +showit; +endchar; + +beginchar(10,3/2*c_width#,1/6*c_height#,bt#); "top-"; + +pickup pinsel; +draw (-c_width,1/6*c_height)--(0,1/6*c_height); +pickup pencircle scaled p3_size; +draw (0+1,0)--(0+1,2/12*c_height); +draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); +showit; +endchar; + +beginchar(11,3/2*c_width#,1/6*c_height#,bt#); "bottom-"; + +pickup pinsel; +draw (-c_width,0)--(0,0); +pickup pencircle scaled p3_size; +draw (0+1,0)--(0+1,2/12*c_height); +draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height); +showit; +endchar; + +beginchar("t",c_width#,1/6*c_height#,bt#); + +pickup pinsel; +draw (-c_width,1/6*c_height)--(0,1/6*c_height); +showit; +endchar; + +beginchar("b",c_width#,1/6*c_height#,bt#); + +pickup pinsel; +draw (-c_width,0)--(0,0); +showit; +endchar; + +%Pfeil von 1/2 nach 7/8 der Breite vergr”žert (JL,8.1.94) +beginchar("A",c_width#,3/12*c_height#,0); "Arrow left"; + +pickup pencircle scaled p_size; +draw (-1/8*c_width,1/12*c_height)--(0,1/12*c_height); +fill (-1/8*c_width,2/12*c_height)--(-c_width,1/12*c_height)--(-1/8*c_width,0)--cycle; +showit; +endchar; + +beginchar("P",c_width#,3/12*c_height#,0); "Arrow right"; + +pickup pencircle scaled p_size; +draw (-c_width,1/12*c_height)--(-1/8*c_width,1/12*c_height); +fill (-7/8*c_width,2/12*c_height)--(0,1/12*c_height)--(-7/8*c_width,0)--cycle; +showit; +endchar; + +beginchar("a",c_width#,3/12*c_height#,0); "Arrow line"; + +pickup pencircle scaled p_size; +draw (-c_width,1/12*c_height)--(0,1/12*c_height); +showit; +endchar; + + +%dasselbe wie "U" +beginchar("X",c_width#,c_height#,bt#); "Unknown"; +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); + +pickup pencircle scaled p3_size; +draw (-c_width,5/6*c_height)--(-c_width/2,c_height); +draw (-c_width,c_height/2)--(0,5/6*c_height); +draw (-c_width,1/6*c_height)--(0,c_height/2); +draw (-c_width/2,0)--(0,1/6*c_height); +showit; +endchar; + +%Leerzeichen mit Punkten, damit nachtr„glich gezeichnet werden kann +%(JL,8.1.94) + +beginchar(".",c_width#,c_height#,bt#); "Leer"; +pickup pinsel; +fill (-c_width,0)--(-c_width+p2_size,0)-- + (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; +fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- + (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar("h",c_width#,c_height#,bt#); "High Level"; +pickup pinsel; +draw (-c_width,c_height)--(0,c_height); +fill (-c_width,0)--(-c_width+p2_size,0)-- + (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; +showit; +endchar; + + +beginchar("l",c_width#,c_height#,bt#); "Low Level"; +pickup pinsel; +draw (-c_width,0)--(0,0); +fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- + (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar(20,2*c_width#,c_height#,bt#); "High-Low"; +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); +fill (-c_width,0)--(-c_width+p2_size,0)-- + (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; +fill (0,c_height)--(p2_size,c_height)-- + (p2_size,c_height-p2_size)--(0,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar(21,2*c_width#,c_height#,bt#); "Low-High"; +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); +fill (0,0)--(p2_size,0)-- + (p2_size,p2_size)--(0,p2_size)--cycle; +fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- + (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar("f",c_width#,c_height#,bt#); "Floating Line"; +pickup pinsel; +draw (-c_width,0)--(0,0); +draw (-c_width,c_height)--(0,c_height); +showit; +endchar; + +beginchar(33,2*c_width#,c_height#,bt#); "Float-Low"; +pickup pinsel; +draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0); +draw (-c_width,0)--(c_width,0); +fill (0,c_height)--(p2_size,c_height)-- + (p2_size,c_height-p2_size)--(0,c_height-p2_size)--cycle; +showit; +endchar; + +beginchar(34,2*c_width#,c_height#,bt#); "Float-High"; +pickup pinsel; +draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height); +draw (-c_width,c_height)--(c_width,c_height); +fill (0,0)--(p2_size,0)-- + (p2_size,p2_size)--(0,p2_size)--cycle; +showit; +endchar; + +beginchar(35,2*c_width#,c_height#,bt#); "High-Float"; +pickup pinsel; +draw (-c_width,c_height)--(c_width,c_height); +draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0); +fill (-c_width,0)--(-c_width+p2_size,0)-- + (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle; +showit; +endchar; + +beginchar(36,2*c_width#,c_height#,bt#); "Low-Float"; +pickup pinsel; +draw (-c_width,0)--(c_width,0); +draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height); +fill (-c_width,c_height)--(-c_width+p2_size,c_height)-- + (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle; +showit; +endchar; + + +% HX,LX,XH,XL und dasselbe mit U statt X sind eigtl. Pfusch +% vielleicht mal Zeichen fr machen... (JL) +ligtable "H":"L"=:0, "F"=:15, "V"=:15, "X"=:15; +ligtable "L":"H"=:1, "F"=:16, "V"=:16, "X"=:16; +ligtable "F":"L"=:13,"H"=:14; +ligtable "h":"l"=:20,"f"=:35; % Version mit Punkten zum Zeichnen (JL, 4.2.94) +ligtable "l":"h"=:21,"f"=:36; +ligtable "f":"l"=:33,"h"=:34; +ligtable "Z":"V"=:2, "U"=:4; +ligtable "V":"Z"=:3, "U"=:6, "X"=:12, "L"=:13, "H"=:14; +ligtable "U":"Z"=:5, "V"=:7, "X"=:7, "L"=:13, "H"=:14; % UX=:7 [UV] (JL, 8.1.94) +ligtable "X":"V"=:12,"U"=:6, "L"=:13, "H"=:14; % XU=:6 [VU] (JL, 8.1.94) +ligtable "T":"-"=:8; +ligtable "B":"-"=:9; +ligtable "t":"-"=:10; +ligtable "b":"-"=:11; + +end; + diff --git a/macros/latex/contrib/timing/timing.pdf b/macros/latex/contrib/timing/timing.pdf Binary files differnew file mode 100644 index 0000000000..ae5830e945 --- /dev/null +++ b/macros/latex/contrib/timing/timing.pdf diff --git a/macros/latex/contrib/timing/timing.sty b/macros/latex/contrib/timing/timing.sty new file mode 100644 index 0000000000..0bb8abd859 --- /dev/null +++ b/macros/latex/contrib/timing/timing.sty @@ -0,0 +1,309 @@ +% timing.sty: Ludwig May/Jens Leilich 10.12.91 +% +% Dieses Style-File erleichtert den Umgang mit dem Timing-Font. +% +% Es stellt Kommandos zur Positionierung von einzelnen Elementen +% eines Timing-Diagramms in einer picture-Umgebung zur Verfuegung. +% +% +% Folgende Kommandos sind verfuegbar: +% +% Erweiterte picture-Umgebung +% \begin{timing}[Zeichensatz]{Randgroesse} +% \end{timing} +% Zeichensatz ist 1,2,1s,2s. Die Zahl gibt die Breite an, +% s bedeutet schr„ge Flanken. 2 ist default. +% +% Zeile mit Timingdiagramm +% \til{y-pos}{Zeichenkette} +% +% Label fuer Zeile +% \tin{y-pos}{Zeichenkette} +% +% Bemerkung +% \tnote{y-pos}{x-pos}{Zeichenkette} +% +% Pfeil nach rechts zeigend +% \rarw{y-pos}{x-pos}{laenge}{Zeichenkette} +% +% Pfeil nach links zeigend +% \larw{y-pos}{x-pos}{laenge}{Zeichenkette} +% +% Senkrechte Linie +% \sline{y1-pos}{x-pos}{y2-pos} +% +% Zeitmarken als Argument fuer \til +% \timingcounter{Markenabstand}{Startwert}{Endwert}{Intervall} +% Zeitmarken als Argument fuer \til nach Unterbrechung +% \conttimingcounter{Markenabstand}{Startwert}{Endwert}{Intervall} +% +% +% Abstandsfaktor fuer einzelne Zeilen +% \timescalefactor +% +% Evtl. n”tige Anpassung fuer Ausrichtung senkrechter Linien +% \timadjust +% +% +% Dieses Style-File und der dazugehoerige Zeichensatz wurde erstellt, +% um moeglichst einfach ein paar Timingdiagramme in meine Studienarbeit +% integrieren zu koennen. Da es in der vorliegenden Form meine +% Erwartungen vollstaendig erfuellt hat, haben ich aus Zeitgruenden keine +% grosse Ueberarbeitung durchgefuehrt. Vielleicht kann das jemand uebernehmen, +% der von der ganzen Materie mehr Ahnung hat. Ein Problem ist z.B. die +% ungenaue horizontale Ausrichtung der senkrechten Linien (ist irgendwie +% Druckertreiber abhaengig, evtl. MAX_DRIFT des Treibers auf 0 setzen). +% Da aber grosses Interesse an dem Style besteht, haben ich ihn mal in +% Umlauf gegeben. Wenn jemand Verbesserungen durchfuehrt, waeren ich an +% einer Rueckmeldung an folgende Adresse dankbar: +% +% Ludwig May +% Friedrichstrasse 23b +% 6100 Darmstadt +% +% Bitte keine Fragen stellen, ich habe fuer eine weitere Unterstuetzung +% weder Zeit noch ausreichend Gelegenheit. +% +% Ludwig May +% +% Ich habe Font und Style weiterentwickelt zu Lehrzwecken, da ich +% Elektrotechnik an BBS unterrichte. +% Verbesserungsvorschl„ge und Lob ;-) k”nnen auch an mich gerichtet +% werden. +% Jens Leilich, C/O BBS Technik I, Franz-Zang-Str. 3--7, 67059 Ludwigshafen +% Jens_Leilich @ lu.maus.de +% +\typeout{Timing Style, Ludwig May <Dec 1991> Jens Leilich <May 1994>.} +% +% +% Alle benoetigten Counter, Dimensionen und Boxen definieren +% +% +\newfont{\timon}{timing1 scaled 1000} +\newfont{\timtw}{timing2 scaled 1000} +\newfont{\timons}{timing1s scaled 1000} +\newfont{\timtws}{timing2s scaled 1000} +\newfont{\timbs}{cmr5 scaled 1000} +\newcount\counttime +\newdimen\timetmpdim +\newdimen\timehdrdim +\newcount\timetmpcnt +\newcount\timearwcnt +\newdimen\timeskipdim +\newdimen\timewidthdim +\newbox\timebox +\def\timescalefactor{2} +\def\timadjust{0.0pt} +% +% +% Neue Umgebung definieren +% +% +\def\timing{\@ifnextchar [{\@@timing}{\@@timing[2]}} + +\def\@@timing[#1]#2% +{ +\expandafter\def\csname tim@@1\endcsname{\let\tim\timon} +\expandafter\def\csname tim@@2\endcsname{\let\tim\timtw} +\expandafter\def\csname tim@@1s\endcsname{\let\tim\timons} +\expandafter\def\csname tim@@2s\endcsname{\let\tim\timtws} +\def\tim{% + \typeout{Timing font `#1' not defined, assumed 2. Use 1,2,1s,2s only!} + \timtw \let\tim\timtw} +\csname tim@@#1\endcsname +\tim +\timehdrdim=#2 +\advance\timehdrdim by 1em +% +% +% Lokale Befehle definieren +% +% +% +% Hilfroutine zum Zeichen von Pfeilen variabler Laenge +% +% +\newcommand{\timatail}[1]{ \mbox{ \tim + \counttime=2 + \ifnum##1>1 + \loop + a% + \ifnum\counttime<##1 \advance\counttime by 1 + \repeat + \fi +}} +% +% +% Hilfroutine zum Zeichen der Zeitmarkierung +% +% +\newcommand{\lb}[2]{{\tim\makebox[##1em][c]{\timbs##2}}} +% +% +% \timingcounter +% +% +\newcommand{\timingcounter}[4]{ \mbox{ \tim + \counttime=##1\divide\counttime by -2 + \hskip\counttime em + \hskip -1em + \counttime=##2 + \loop + \lb{##1}{\number\counttime} + \ifnum\counttime<##3 \advance\counttime by ##4 + \repeat +}} +% +% +% \conttimingcounter +% +% +\newcommand{\conttimingcounter}[4]{ \mbox{ \tim + \hskip 0.5em + \counttime=##2 + \loop + \lb{##1}{\number\counttime} + \ifnum\counttime<##3 \advance\counttime by ##4 + \repeat +}} +% +% +% \til +% +% +\newcommand{\til}[2]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +% +% Maximale y-Groesse festhalten +% +\ifdim\timetmpdim>\timeskipdim + \global\timeskipdim=\timetmpdim +\fi +\timetmpcnt=\timetmpdim +\timetmpdim=\timehdrdim +\advance\timetmpdim by -\timadjust +\timearwcnt=\timetmpdim +\setbox\timebox=\hbox{##2} +% +% Maximale x-Groesse festhalten +% +\ifdim\wd\timebox>\timewidthdim + \global\timewidthdim=\wd\timebox +\fi +\put(\timearwcnt,-\timetmpcnt){\tim\makebox(0,0)[l]{\box\timebox}} +%\put(\timearwcnt,-\timetmpcnt){\tim\makebox(0,0)[l]{##2}} +} +% +% +% \tin +% +% +\newcommand{\tin}[2]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\put(0,-\timetmpcnt){\makebox(0,0)[lb]{\rm##2}} +} +% +% +% \tnote +% +% +\newcommand{\tnote}[3]{ +\tim +\timetmpdim=##1ex +\advance\timetmpdim by -0.3pt +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\timetmpdim=##2em +\advance\timetmpdim by \timehdrdim +\advance\timetmpdim by -1em +\timearwcnt=\timetmpdim +\put(\timearwcnt,-\timetmpcnt){\tim\makebox(0,0)[l]{\scriptsize\sf##3}} +} +% +% +% \larw +% +% +\newcommand{\larw}[4]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\timetmpdim=##2em +\advance\timetmpdim by \timehdrdim +\timearwcnt=\timetmpdim +\put(\timearwcnt,-\timetmpcnt)% + {\makebox(0,0)[l]{\tiny\vbox{\tim\hbox{\hskip-1em\hbox to ##3em{\hss\timbs\strut##4\hfil}}\nointerlineskip\vskip-4pt\hbox{A\timatail{##3}}}}} +} +% +% +% \rarw +% +% +\newcommand{\rarw}[4]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\timetmpdim=##2em +\advance\timetmpdim by \timehdrdim +\timearwcnt=\timetmpdim +\put(\timearwcnt,-\timetmpcnt)% + {\makebox(0,0)[l]{\tiny\vbox{\tim\hbox{\hskip-1em\hbox to ##3em{\hfil\timbs\strut##4\hss}}\nointerlineskip\vskip-4pt\hbox{\timatail{##3}P}}}} +} +% +% +% \sline +% +% +\newcommand{\sline}[3]{ +\tim +\timetmpdim=##1ex +\timetmpdim=\timescalefactor\timetmpdim +\timetmpcnt=\timetmpdim +\timetmpdim=##2em +\advance\timetmpdim by \timehdrdim +\advance\timetmpdim by -1em +\timearwcnt=\timetmpdim +\timetmpdim=##3ex +\advance \timetmpdim by -##1ex +\advance \timetmpdim by 0.09ex +\timetmpdim=\timescalefactor\timetmpdim +\counttime=\timetmpdim +\put(\timearwcnt,-\timetmpcnt)% + {\line(0,-1){\counttime}} +} +% +% +% Weitere Initialisierung +% +% +\timeskipdim=0pt +\timewidthdim=0pt +\unitlength 1sp +\begin{picture}(0,0) +\linethickness{0.4pt} +}% +% +% +% Ende der Umgebung definieren +% +% +\def\endtiming{ +\global\advance\timeskipdim by 15pt +\end{picture} +% +% Da picture(0,0) definiert wurde, wird jetzt die wirkliche Groesse durch +% ein \rule freigehalten. +% +\timeskipdim=1.0\timeskipdim +\timewidthdim=1.0\timewidthdim +\advance\timewidthdim by \timehdrdim +\rule{\timewidthdim}{0pt} +\rule[-\timeskipdim]{0pt}{\timeskipdim} +} diff --git a/macros/latex/contrib/timing/timing.tex b/macros/latex/contrib/timing/timing.tex new file mode 100644 index 0000000000..0d6605dac3 --- /dev/null +++ b/macros/latex/contrib/timing/timing.tex @@ -0,0 +1,242 @@ +\documentstyle[german,verbatim,dina4,titlepage,timing,12pt]{article} +\setlength{\textwidth}{16.5cm} +\setlength{\parindent}{0pt} +\setlength{\parskip}{5pt plus 2pt minus 1 pt} +\frenchspacing + +\begin{document} +\title{TIMING.STY\\Satz von Zeitdiagrammen fr digitale Schaltungen} +\author{Ludwig May\\Jens Leilich} +\maketitle + +\section{Motivation} + +Wir standen bei unserer Studienarbeit vor dem Problem, Zeitdiagramme +einiger Digitalschaltungen darstellen zu mssen. +Als Alternative zu der herk”mmlichen Erstellung durch ein Zeichenprogramm +kam uns die Idee, ein solches Diagramm mit Hilfe eines +speziellen Metafont-Zeichensatzes durch die Aneinanderreihung von +Buchstaben zu realisieren. Durch die Verwendung von Ligaturen sollten so +alle sinnvollen šberg„nge einzelner Logikzust„nde automatisch gezeichnet +werden. + +Diesen Zeichensatz haben wir zun„chst gemeinsam entwickelt. + +Das vorliegende \LaTeX\ Stylefile {\bf TIMING.STY} wurde von Ludwig alleine +entwickelt, um die Benutzung des Zeichensatzes zu vereinfachen. + +Durch die Besch„ftigung an der Berufsbildenden Schule Ludwigshafen wurde von +Jens der Style und die Fonts weiterentwickelt, weil gewisse Features fehlten. + +Es erlaubt die Erstellung und Beschriftung eines Zeitdiagramms. Die einzelnen +Elemente des Diagramms werden dabei ber ein Koordinatensystem angeordnet. +Eine Einheit der Zeitachse entspricht dabei der L„nge eines Buchstabens, +eine Einheit der Y-Achse entspricht dem Abstand von zwei Signalverl„ufen. + +\section{Makros} + +Die im folgenden beschriebenen Makros k”nnen nur innerhalb der +\verb|timing| Umgebung eingesetzt werden. Diese Umgebung ist eine +Erweiterung der \verb|picture| Umgebung, es k”nnen also auch alle +\verb|picture| Befehle verwendet werden (\verb|\unitlength=1sp|). + +Die Umgebung wird durch den Befehl + +\verb|\begin{timing}[|{\em Zeichensatz}\verb|]{|{\em Labelbreite}\verb|}| + +eingeleitet. +Der Parameter {\em Labelbreite} gibt den zu reservierenden Platz fr die +Signalbezeichnung an. +Der Parameter {\em Zeichensatz} w„hlt den Zeichensatz aus. +\verb|1| ist ein schmaler Zeichensatz, der ca.\ 1mm breite Elemente enth„lt, +\verb|2| ist ein breiterer Zeichensatz mit ca.\ 2mm breiten Elementen. +Die Version mit \verb|s| dahinter (\verb|1s| und \verb|2s|) verwendet +schr„ge Flanken im Gegensatz zu den "`normalen"' Zeichens„tzen. +(Man glaubt nicht, wieviele Schwierigkeiten die Schler mit schr„gen +Flanken haben. +Man sagt ihnen: "`Nehmt die Mitte"', aber sie raffen's nicht.) +Normalerweise wird der Zeichensatz \verb|2| verwendet. + +Die Umgebung muá durch + +\verb|\end{timing}| + +abgeschlossen werden. (Mssen wir das erw„hnen ??) + +Eine Diagrammzeile wird durch das Makro + +\verb|\til{|{\em Zeile}\verb|}{|{\em Zeichenkette mit Symbolbuchstaben}\verb|}| + +erzeugt. Die Symbolbuchstaben repr„sentieren den jeweiligen Signalzustand +gem„á Tabelle~\ref{symtab}. Alternativ k”nnen die Makros +\verb|\timingcounter| bzw. \verb|\conttimingcounter| als Argument +bergeben werden. +Bei Verwendung von Symbolbuchstaben sollte darauf geachtet werden, daá nach +einem Symbolwechsel mindestens zwei aufeinanderfolgende Buchstaben gleich +sind, um ein ordnungsgem„áes Arbeiten des Ligaturmechanismus zu +gew„hrleisten. Die Makros + +\verb|\timingcounter{|{\em Zeitmarkenabstand}\verb|}{|{\em Startwert}\verb|}{|{\em Endwert}\verb|}{|{\em Zeitintervall}\verb|}| \hfill und + +\verb|\conttimingcounter{|{\em Zeitmarkenabstand}\verb|}{|{\em Startwert}\verb|}{|{\em Endwert}\verb|}{|{\em Zeitintervall}\verb|}| + +erzeugen eine Ziffernskala. \verb|\conttimingcounter| wird nach einer +Unterbrechung benutzt und erzeugt zus„tzlich den n”tigen Zwischenraum. + + +\begin{table} +\def\timtest#1{{\timon #1- \timons #1- \timtw #1- \timtws #1}} +\centering +\begin{tabular}{|l|l|l|} +\hline +\rule[-4mm]{0pt}{12mm}L & 0 - Pegel & +{\tt HLLLLH} \quad $\to$ \quad \raisebox{-2mm}{\timtest{HLLLLH }} \\ +\hline +\rule[-4mm]{0pt}{12mm}H & 1 - Pegel & +{\tt LHHHHL} \quad $\to$ \quad \raisebox{-2mm}{\timtest{LHHHHL }} \\ +\hline +\rule[-4mm]{0pt}{12mm}F & unbekannter Pegel & +{\tt LFFFFH} \quad $\to$ \quad \raisebox{-2mm}{\timtest{LFFFFH }} \\ +\hline +\rule[-4mm]{0pt}{12mm}L & 0 - Pegel zum Zeichnen & +{\tt hllllh} \quad $\to$ \quad \raisebox{-2mm}{\timtest{hllllh }} \\ +\hline +\rule[-4mm]{0pt}{12mm}H & 1 - Pegel zum Zeichnen & +{\tt lhhhhl} \quad $\to$ \quad \raisebox{-2mm}{\timtest{lhhhhl }} \\ +\hline +\rule[-4mm]{0pt}{12mm}H & Leere Zeile zum Zeichnen & +{\tt ......} \quad $\to$ \quad \raisebox{-2mm}{\timtest{...... }} \\ +\hline +\rule[-4mm]{0pt}{12mm}V & Bus-Leitungen mit gltigen Daten & +{\tt ZVVVVU} \quad $\to$ \quad \raisebox{-2mm}{\timtest{ZVVVVU }} \\ +\hline +\rule[-4mm]{0pt}{12mm}X & Bus-Leitungen mit Zustandswechsel & +{\tt VVVXVV} \quad $\to$ \quad \raisebox{-2mm}{\timtest{VVVXVV }} \\ +\hline +\rule[-4mm]{0pt}{12mm}U & Bus-Leitungen mit ungltigen Daten & +{\tt ZUUUUV} \quad $\to$ \quad \raisebox{-2mm}{\timtest{ZUUUUV }} \\ +\hline +\rule[-4mm]{0pt}{12mm}Z & Bus-Leitungen auf Tristate & +{\tt VZZZZU} \quad $\to$ \quad \raisebox{-2mm}{\timtest{VZZZZU }} \\ +\hline +\rule[-4mm]{0pt}{12mm}T & Kopfzeile mit Zeitmarke & +{\tt TtttTt} \quad $\to$ \quad \raisebox{-0mm}{\timtest{TtttTt }} \\ +\hline +\rule[-4mm]{0pt}{12mm}t & Kopfzeile ohne Zeitmarke & +{\tt TtTtTt} \quad $\to$ \quad \raisebox{-0mm}{\timtest{TtTtTt }} \\ +\hline +\rule[-4mm]{0pt}{12mm}B & Fuázeile mit Zeitmarke & +{\tt BbbbBb} \quad $\to$ \quad \raisebox{-0mm}{\timtest{BbbbBb }} \\ +\hline +\rule[-4mm]{0pt}{12mm}b & Fuázeile ohne Zeitmarke & +{\tt BbBbBb} \quad $\to$ \quad \raisebox{-0mm}{\timtest{BbBbBb }} \\ +\hline +\rule[-4mm]{0pt}{12mm}- & Unterbrechungszeichen & +{\tt UUU-UU} \quad $\to$ \quad \raisebox{-2mm}{\timtest{UUU-UU }} \\ +\hline +\end{tabular} +\caption{M”gliche Symbolbuchstaben in 3 Zeichens„tzen {\tt 1/1s/2/2s}} +\label{symtab} +\end{table} + +Die Signalbezeichnung fr eine Diagrammzeile wird mit dem Makro + +\verb|\tin{|{\em Zeile}\verb|}{|{\em Name}\verb|}| + +zugeordnet. + +Fr Bemerkungen innerhalb des Signalverlaufs dient + +\verb|\tnote{|{\em Zeile}\verb|}{|{\em X-Position}\verb|}{|{\em Bemerkung}\verb|}| + +Die Darstellung der Zeitbeziehungen zwischen einzelnen Signalverl„ufen +erfolgt durch die folgenden Makros: + +\begin{tabular}{ll} +Pfeil nach rechts & \verb|\rarw{|{\em Zeile}\verb|}{|{\em X-Position}\verb|}{|{\em L„nge}\verb|}{|{\em Text}\verb|}| \\ +Pfeil nach links & \verb|\larw{|{\em Zeile}\verb|}{|{\em X-Position}\verb|}{|{\em L„nge}\verb|}{|{\em Text}\verb|}| \\ +senkrechte Linie & \verb|\sline{|{\em Anfangszeile}\verb|}{|{\em X-Position}\verb|}{|{\em Endezeile}\verb|}| \\ +\end{tabular} + +Bei Zeile (bei den Pfeilen) verwenden Sie blicherweise einen um $0.6$ +verminderten Wert. +Bei der Linie meint X-Position die Position, hinter der die Linie sein soll; +das erste Zeichen hat die Nummer 1. + +Die Linienbreite der senkrechten Linien kann dabei wie in der +\verb|picture| Umgebung durch \verb|\linethickness| festgelegt werden. + +Weiterhin existiert ein Faktor, der den Abstand zwischen zwei +Signalverl„ufen bestimmt. \verb|\timescalefactor| kann durch +\verb|\newcommand| auf einen beliebigen Wert gesetzt werden. Defaultwert +ist 2. + +% +% Evtl. n”tige Anpassung fuer Ausrichtung senkrechter Linien +% \timadjust +% + + +\section{Ausblick} + +Die beschriebenen Makros haben ein besseres Ergebnis in der Darstellung +von Zeitdiagrammen gebracht, als wir gehofft haben. Da sie an unserem +Institut an der THD einiges Interesse hervorgerufen haben, m”chten wir +sie der Allgemeinheit ebenfalls nicht vorenthalten. + +Ein Problem besteht in der unterschiedlichen Ausrichtung der senkrechten +Linien durch verschiedene Druckertreiber. Wenn diese Linien nicht mittig +auf den Signal"-ber"-g„ngen sitzen, sollte zun„chst versucht werden, den +Wert \verb|max_drift| des Druckertreibers auf 0 zu setzen (nicht bei allen +Treibern m”glich; bei den dvidrv-Treibern fr em\TeX\ ist die Option +\verb|/fd0| anzugeben). Kann dadurch keine Abhilfe geschaffen werden, +besteht die M”glichkeit, durch den Befehl +\verb|\renewcommand{\timadjust}{|{\em Dimension}\verb|}| vor dem Beginn +einer \verb|timing| Umgebung eine Verschiebung der Linien zu erreichen. + +Fr eine Verbesserung in diesem oder auch anderen Punkten bestehen alle +Freiheiten. Eine weitere Untersttzung von Ludwigs Seite wird es +wahrscheinlich nicht geben, da er, wie die meisten Menschen heutzutage, +wenig Zeit habe und sich das Interesse dieser Makros und des Zeichensatzes +nur auf ein paar Datentechniker und VLSI-Spezialisten beschr„nken drfte. +Jens wird wohl darauf achten, daž ddas Paket up to date bleibt und evtl.\ +weitere Features einbauen, wenn es ihm sinnvoll erscheint. + +Fr eventuelle positive Rckmeldungen an folgende Adressen wrden wir uns +freuen: + +\begin{center} +\parbox{5cm}{ +Ludwig May\\ +Friedrichstrasse 23b \\ +64293 Darmstadt} +\parbox{5cm}{ +Jens Leilich\\ +Oppauer Straže 90\\ +67069 Ludwigshafen} +\end{center} + +Jens Leilich ist aužerdem unter folgender email-Adresse zu erreichen: + +\verb|Jens_Leilich@lu.maus.de| +oder ber BTX 0621667821-1. + +Spenden sind natrlich auch willkommen :-). + +\newpage + +\section{Beispiel} + +\def\nicht#1{$\overline{\mbox{#1}}$} +\input{prozt1} +{\hfill Bild~1 : Beispieldiagramm \hfill} + +\clearpage\newpage + +Definition fr das Beispieldiagramm aus Bild~1 : + +\begin{scriptsize} +\verbatiminput{prozt1} +\end{scriptsize} + +\end{document} diff --git a/macros/latex/contrib/timing/timing1.mf b/macros/latex/contrib/timing/timing1.mf new file mode 100644 index 0000000000..64b42dc077 --- /dev/null +++ b/macros/latex/contrib/timing/timing1.mf @@ -0,0 +1,29 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TIMING1.MF +% +% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler +% Schaltungen. +% Datei fr Zeichensatz mit ca. 1mm Breite +% +% Ludwig May, Dezember 1991 +% Jens Leilich, Žnderungen im Mai 1994 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +mode_setup; + +font_size 10/300in#; +font_identifier:="TIMING1"; +font_coding_scheme:="UNSPECIFIED"; + +u#:=1/60in#; +c_width#:=5/2u#; +c_height#:=15u#; +p_size#:=u#/2; +p2_size#:=p_size#*2; +p3_size#:=p_size#/3; +s_f#:=c_height#/2/c_width#; +xs#:=0; % muss zwischen 0 und 6 liegen +bt#:=10; + +input timing + diff --git a/macros/latex/contrib/timing/timing1.pk b/macros/latex/contrib/timing/timing1.pk Binary files differnew file mode 100644 index 0000000000..b432d2a910 --- /dev/null +++ b/macros/latex/contrib/timing/timing1.pk diff --git a/macros/latex/contrib/timing/timing1.tfm b/macros/latex/contrib/timing/timing1.tfm Binary files differnew file mode 100644 index 0000000000..7a75ba20d1 --- /dev/null +++ b/macros/latex/contrib/timing/timing1.tfm diff --git a/macros/latex/contrib/timing/timing1s.mf b/macros/latex/contrib/timing/timing1s.mf new file mode 100644 index 0000000000..8a10bd9fa5 --- /dev/null +++ b/macros/latex/contrib/timing/timing1s.mf @@ -0,0 +1,29 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% TIMING1.MF
+%
+% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler
+% Schaltungen.
+% Datei fr Zeichensatz mit ca. 1mm Breite
+%
+% Ludwig May, Dezember 1991
+% Jens Leilich, Žnderungen im Mai 1994
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+
+font_size 10/300in#;
+font_identifier:="TIMING1";
+font_coding_scheme:="UNSPECIFIED";
+
+u#:=1/60in#;
+c_width#:=5/2u#;
+c_height#:=15u#;
+p_size#:=u#/2;
+p2_size#:=p_size#*2;
+p3_size#:=p_size#/3;
+s_f#:=c_height#/2/c_width#;
+xs#:=3; % muss zwischen 0 und 6 liegen
+bt#:=10;
+
+input timing
+
diff --git a/macros/latex/contrib/timing/timing1s.pk b/macros/latex/contrib/timing/timing1s.pk Binary files differnew file mode 100644 index 0000000000..6e87ef3e59 --- /dev/null +++ b/macros/latex/contrib/timing/timing1s.pk diff --git a/macros/latex/contrib/timing/timing1s.tfm b/macros/latex/contrib/timing/timing1s.tfm Binary files differnew file mode 100644 index 0000000000..7a75ba20d1 --- /dev/null +++ b/macros/latex/contrib/timing/timing1s.tfm diff --git a/macros/latex/contrib/timing/timing2.mf b/macros/latex/contrib/timing/timing2.mf new file mode 100644 index 0000000000..d3d50c77ac --- /dev/null +++ b/macros/latex/contrib/timing/timing2.mf @@ -0,0 +1,29 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% TIMING2.MF
+%
+% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler
+% Schaltungen.
+% Datei fr Zeichensatz mit ca. 2mm Breite
+%
+% Ludwig May, Dezember 1991
+% Jens Leilich, Žnderungen im Mai 1994
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+
+font_size 10/300in#;
+font_identifier:="TIMING2";
+font_coding_scheme:="UNSPECIFIED";
+
+u#:=1/60in#;
+c_width#:=5u#;
+c_height#:=15u#;
+p_size#:=u#/2;
+p2_size#:=p_size#*2;
+p3_size#:=p_size#/3;
+s_f#:=c_height#/2/c_width#;
+xs#:=0; % muss zwischen 0 und 6 liegen
+bt#:=10;
+
+input timing
+
diff --git a/macros/latex/contrib/timing/timing2.pk b/macros/latex/contrib/timing/timing2.pk Binary files differnew file mode 100644 index 0000000000..076e4e0ca2 --- /dev/null +++ b/macros/latex/contrib/timing/timing2.pk diff --git a/macros/latex/contrib/timing/timing2.tfm b/macros/latex/contrib/timing/timing2.tfm Binary files differnew file mode 100644 index 0000000000..e8f69abd58 --- /dev/null +++ b/macros/latex/contrib/timing/timing2.tfm diff --git a/macros/latex/contrib/timing/timing2s.mf b/macros/latex/contrib/timing/timing2s.mf new file mode 100644 index 0000000000..ba35ac3115 --- /dev/null +++ b/macros/latex/contrib/timing/timing2s.mf @@ -0,0 +1,29 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% TIMING2.MF
+%
+% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler
+% Schaltungen.
+% Datei fr Zeichensatz mit ca. 2mm Breite
+%
+% Ludwig May, Dezember 1991
+% Jens Leilich, Žnderungen im Mai 1994
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+
+font_size 10/300in#;
+font_identifier:="TIMING2";
+font_coding_scheme:="UNSPECIFIED";
+
+u#:=1/60in#;
+c_width#:=5u#;
+c_height#:=15u#;
+p_size#:=u#/2;
+p2_size#:=p_size#*2;
+p3_size#:=p_size#/3;
+s_f#:=c_height#/2/c_width#;
+xs#:=3; % muss zwischen 0 und 6 liegen
+bt#:=10;
+
+input timing
+
diff --git a/macros/latex/contrib/timing/timing2s.pk b/macros/latex/contrib/timing/timing2s.pk Binary files differnew file mode 100644 index 0000000000..6cb1ac775a --- /dev/null +++ b/macros/latex/contrib/timing/timing2s.pk diff --git a/macros/latex/contrib/timing/timing2s.tfm b/macros/latex/contrib/timing/timing2s.tfm Binary files differnew file mode 100644 index 0000000000..e8f69abd58 --- /dev/null +++ b/macros/latex/contrib/timing/timing2s.tfm |