Inhoudsopgave 1 Gevorderden vorderen het gevorderde 5 1.1 Zo, nu eerst......................................... 5 1.2 Bronnen......................................... 5 1.2.1 Veel haren.................................... 5 1.3 Zelf zaken doen..................................... 5 1.3.1 Commando s.................................. 5 1.3.2 Omgevingen.................................. 6 1.4 Veel code......................................... 6 1.4.1 Moreverb.................................... 6 1.4.2 Listings..................................... 8 1.5 Ruimte in lijsten..................................... 10 1.6 Presentaties....................................... 10 1.7 Einde........................................... 10 1
INHOUDSOPGAVE Jasper Diephuis INHOUDSOPGAVE 2 2
Hoofdstuk 1 Gevorderden vorderen het gevorderde 1.1 Zo, nu eerst... Een ander lettertype. Maak hiervoor van het onderstaande gebruik. Voor de goede orde, LATEX kent dus vier stijlen van lettertypes, namelijk met schreef (rm), schreefloos (ss), typmachine (tt) en wiskundig (math). Let trouwens even goed op de lettergrootte... \usepackage{mathpazo} % math & rm \linespread{1.065} % Palatino needs more leading (space between lines) \usepackage[scaled]{helvet} % ss \usepackage{courier} % tt \normalfont \usepackage[t1]{fontenc} 1.2 Bronnen Zoals je waarschijnlijk wel weet is het handig om bronnen te vermelden [1]. Natuurlijk heb je ook andere bronnen, zoals spanningsbronnen, maar dat doet nu even niet terzake. 1.2.1 Veel haren Trouwens, die zojuistgenoemde bron is een boek van Piether Swaerbehaerd, iemand die gek is van BibTeX. Hij schreef dan ook het boek Refereren kun je leren, uitgebracht in 2008 door De Vliegende Hollander. Een ander interessante bron is een artikel van Aengefickt [2]. De schrijver, Jean Aengefickt, bedacht in 1877 een methode om iemand sneller te kielhalen. Dit publiceerde hij als De kiel is niet meer de achilleshiel in 1878 in het journaal voor de scheepsbouw Scheepen en booten, volume 5, nummer 6 op de paginašs 5 t/m 13. 1.3 Zelf zaken doen 1.3.1 Commando s Definieer nu een commando waarbij je kunt meegeven hoe je naam is en welke koffie je het liefst drinkt. Het resultaat moet in de volgende subsubsection komen. 3
1.4. VEEL CODE HOOFDSTUK 1. Jasper GEVORDERDEN Diephuis VORDEREN HET GEVORDERDE Resultaat Jasper drinkt het liefst water uit de kraan. 1.3.2 Omgevingen Definieer nu een omgeving waarbij je kunt meegeven hoe je naam is en waaruit je het liefste koffie drinkt. Het resultaat moet in de volgende subsubsection komen. Resultaat Het volgende kwam de verslaggever van het blad De Koffie is de Leut ter ore: Jasper drinkt het liefst helemaal geen koffie, aldus het verhaal van de razende reporter. 1.4 Veel code Dat ga je dus inderdaad niet inkloppen, maar je gebruikt de functionaliteit van LATEX. Het gaat hier trouwens om een VHDL-file van het vak System-on-Chip Design (121075). Hiervoor kun je trouwens naast de package moreverb ook de package listings gebruiken. Uiteindelijk komt ook de persoonlijke smaak om de hoek kijken 1. 1.4.1 Moreverb ------------------------------------------------------------------------------- -- File: siso8_gcd_arch.vhd -- Description: Architecture for siso8, computing greatest common divider -- Author: Sabih Gerez, University of Twente -- Creation date: ------------------------------------------------------------------------------- -- $Log: siso8_gcd_arch.vhd,v $ -- Revision 1.1 2004/07/10 00:05:25 sabih -- initial check in -- ------------------------------------------------------------------------------- -- this architecture needs arithmetic functions library ieee; use ieee.numeric_std.all; architecture gcd of siso8 is -- registers signal num1, num2: unsigned(7 downto 0); signal odd, req_i: std_logic; -- wires signal num1_next, num2_next: unsigned(7 downto 0); signal odd_next, req_i_next, ready_next: std_logic; -- the next process is sequential and only sensitive to clk and reset seq: process(clk, reset) 1 Als je bij listings specificeert dat het om VHDL gaat, dan... 4 4
HOOFDSTUK 1. GEVORDERDEN VORDEREN 8 maart 2010 HET GEVORDERDE 1.4. VEEL CODE if (reset = 1 ) num1 <= (others => 0 ); num2 <= (others => 0 ); odd <= 0 ; req_i <= 1 ; -- the system is ready to receive data after reset ready <= 0 ; elsif rising_edge(clk) if ((req_i = 1 ) and (odd = 0 )) num1 <= unsigned(data_in); odd <= 1 ; ready <= 0 ; elsif ((req_i = 1 ) and (odd = 1 )) num2 <= unsigned(data_in); odd <= 0 ; req_i <= 0 ; ready <= 0 ; else num1 <= num1_next; num2 <= num2_next; req_i <= req_i_next; ready <= ready_next; end if; -- ((req_i = 1 ) and (odd = 0 )) end if; -- (reset = 1 ) end process seq; -- combinational process next_val: process(num1, num2) if (num1 > num2) num1_next <= num1 - num2; num2_next <= num2; ready_next <= 0 ; req_i_next <= 0 ; elsif (num1 < num2) num1_next <= num1; num2_next <= num2 - num1; ready_next <= 0 ; req_i_next <= 0 ; else num1_next <= num1; num2_next <= num2; ready_next <= 1 ; req_i_next <= 1 ; end if; end process next_val; 5 5
1.4. VEEL CODE HOOFDSTUK 1. Jasper GEVORDERDEN Diephuis VORDEREN HET GEVORDERDE -- output register can be any of num1 or num2 data_out <= std_logic_vector(num1); -- req wires to req_i req <= req_i; end gcd; 1.4.2 Listings F i l e : s i s o 8 _ g c d _ a r c h. vhd D e s c r i p t i o n : A r c h i t e c t u r e f o r s i s o 8, computing g r e a t e s t common d i v i d e r Author : S a b i h Gerez, U n i v e r s i t y o f Twente C r e a t i o n d a t e : $Log : s i s o 8 _ g c d _ a r c h. vhd, v $ R e v i s i o n 1. 1 2 0 0 4 / 0 7 / 1 0 0 0 : 0 5 : 2 5 s a b i h i n i t i a l c h e c k in t h i s a r c h i t e c t u r e n e e d s a r i t h m e t i c f u n c t i o n s l i b r a r y i e e e ; use i e e e. numeric_std. a l l ; a r c h i t e c t u r e gcd of s i s o 8 i s r e g i s t e r s signal num1, num2 : unsigned (7 downto 0 ) ; signal odd, r e q _ i : s t d _ l o g i c ; w i r e s signal num1_next, num2_next : unsigned (7 downto 0 ) ; signal odd_next, req_i_next, ready_next : s t d _ l o g i c ; t h e next p r o c e s s i s s e q u e n t i a l and only s e n s i t i v e t o c l k and r e s e t seq : process ( clk, r e s e t ) i f ( r e s e t = 1 ) num1 <= ( others => 0 ) ; num2 <= ( others => 0 ) ; odd <= 0 ; r e q _ i <= 1 ; t h e system i s r e a d y t o r e c e i v e d a t a a f t e r r e s e t ready <= 0 ; e l s i f rising_edge ( c l k ) i f ( ( r e q _ i = 1 ) and ( odd = 0 ) ) num1 <= unsigned ( data_in ) ; odd <= 1 ; ready <= 0 ; e l s i f ( ( r e q _ i = 1 ) and ( odd = 1 ) ) 6 6
HOOFDSTUK 1. GEVORDERDEN VORDEREN 8 maart 2010 HET GEVORDERDE 1.4. VEEL CODE num2 <= unsigned ( data_in ) ; odd <= 0 ; r e q _ i <= 0 ; ready <= 0 ; e lse num1 <= num1_next ; num2 <= num2_next ; r e q _ i <= req_i_next ; ready <= ready_ next ; end i f ; ( ( r e q _ i = 1 ) and ( odd = 0 ) ) end i f ; ( r e s e t = 1 ) end process seq ; c o m b i n a t i o n a l p r o c e s s next_val : process (num1, num2) i f (num1 > num2) num1_next <= num1 num2 ; num2_next <= num2 ; ready_next <= 0 ; r eq_i_next <= 0 ; e l s i f (num1 < num2) num1_next <= num1 ; num2_next <= num2 num1 ; ready_next <= 0 ; r eq_i_next <= 0 ; e lse num1_next <= num1 ; num2_next <= num2 ; ready_next <= 1 ; r eq_i_next <= 1 ; end i f ; end process next_val ; o u t p u t r e g i s t e r can be any o f num1 or num2 data_out <= s t d _ l o g i c _ v e c t o r (num1 ) ; r e q w i r e s t o r e q _ i req <= r e q _ i ; end gcd ; 7 7
1.5. RUIMTE IN LIJSTEN HOOFDSTUK 1. Jasper GEVORDERDEN Diephuis VORDEREN HET GEVORDERDE 1.5 Ruimte in lijsten Dat zul je inmiddels wel vervelend vinden, die witruimtes in een opsomming of nummering. Gebruik dan de package enumitem. Zoek uit hoe je deze gebruikt en zorg dat je onderstaand te voorschijn tovert. 1. Een aantal mooie functies: (a) Preases (b) Ab Actis (c) Quaestor (d) Assessor (e)... 1.6 Presentaties Zoals je misschien wel is opgevallen kun je met LATEX ook prima presentaties maken! Hiervoor heb je de package beamer nodig. Behandelen doen we dit niet, maar lees even volgend stukje *.tex en je ziet dat het relatief simpel werkt. \subsection{voor- en nadelen} \{frame} \frametitle{voor- en nadelen} \{block}{voordelen:} \{itemize} \item De layout, lettertypes, tabellen en dergelijke zijn zeer consistent. \item Eenvoudig omgaan met wiskundige formules. \item Indices, voetnoten and referenties zijn makkelijk te genereren. \item Je wordt gedwongen gestructureerd te werken. \end{itemize} \end{block} \{block}{nadelen:} \{itemize} \item Je ziet het eindresultaat niet direct (dus g\še\šen WYSIWYG). \item Je moet diverse commandošs kennen voor het invoeren van de makrošs. \item Het is soms moeilijk een zogenaamde ŚlookŠ te krijgen. \end{itemize} \end{block} \end{frame} 1.7 Einde Dit was het dan al weer. Hopelijk heb je weer wat geleerd en mocht je meer willen weten, ga op ontdekkingstocht in de wondere wereld der LATEX. 8 8
Bibliografie [1] Piether Swaerbehaerd. Refereren kun je leren. De Vliegende Hollander, 2008. [2] Jean Aengefickt. De kiel is niet meer de achilleshiel. Scheepen en booten, 5(6):5 13, 1878. 9
Index bronnen, 5 spanning, 5 lijst nummering, 10 opsomming, 10 presentaties, 10 10