Hardwarebeschreibungssprachen: Unterschied zwischen den Versionen
Beagle (Diskussion | Beiträge) |
Beagle (Diskussion | Beiträge) |
||
Zeile 32: | Zeile 32: | ||
==== Operatoren ==== | ==== Operatoren ==== | ||
− | logische Operatoren: and, or, nand, nor, xor, xnor, not | + | '''logische Operatoren:''' and, or, nand, nor, xor, xnor, not |
<source lang="vhdl"> | <source lang="vhdl"> | ||
Zeile 39: | Zeile 39: | ||
</source> | </source> | ||
− | relative Operatoren: =, /=, <, <=, >, >= | + | '''relative Operatoren:''' =, /=, <, <=, >, >= |
− | arithmetische Operatoren: sign + - , +, -, &, *, /, mod, rem, **, abs() | + | '''arithmetische Operatoren:''' sign + - , +, -, &, *, /, mod, rem, **, abs() |
− | Bsp.: | + | ''Bsp.:'' |
5 mod 3 = 2 | 5 mod 3 = 2 | ||
- 5 mod 3 = 1 | - 5 mod 3 = 1 | ||
Zeile 54: | Zeile 54: | ||
- 5 rem -3 0 -2 | - 5 rem -3 0 -2 | ||
− | Shift Operatoren: SLL, SRL, SLA, SRA, ROL, ROR | + | '''Shift Operatoren:''' SLL, SRL, SLA, SRA, ROL, ROR |
==== Nebenläufige Anweisungen ==== | ==== Nebenläufige Anweisungen ==== |
Version vom 3. Dezember 2010, 13:19 Uhr
Hardwarebeschreibungssprachen (HBS) | |
---|---|
Vertiefungsrichtung | II/IHS |
Vorlesung | |
Vorlesender |
Dr.-Ing. Steffen Arlt |
Abschluß | |
Art | k.A. |
IM AUFBAU
Prüfung
Klausur | |
---|---|
Termin | |
Datum: | 00.00.2011 |
Zeit: | 00:00 - 00:30 |
Ort: | --- |
Am Ende des Semester gibt es eine Klausur die über 90 Minuten geht.
Vorlesungsmitschriften
1. Vorlesung
2. Vorlesung
3. Vorlesung
4. Vorlesung
5. Vorlesung
Operatoren
logische Operatoren: and, or, nand, nor, xor, xnor, not
<source lang="vhdl"> x <= a xnor b; x_vec <= a_vec and b_vec; -- bei Vektoren Bitweise </source>
relative Operatoren: =, /=, <, <=, >, >=
arithmetische Operatoren: sign + - , +, -, &, *, /, mod, rem, **, abs()
Bsp.:
5 mod 3 = 2
- 5 mod 3 = 1
5 mod (-3) = -1
- 5 mod (-3) = -2
5 rem 3 = 2
- 5 rem 3 = -2
5 rem -3 = 2
- 5 rem -3 0 -2
Shift Operatoren: SLL, SRL, SLA, SRA, ROL, ROR
Nebenläufige Anweisungen
<source lang="VHDL"> architecture <concurrent decluration part> begin --concurrent VHDL begin concurrent part process (...) sequential decluration part begin sequential VHDL end process end --concurrent VHDL end </source>
- process - bedingte Signalzuweisung (condition signal assignment)
<source lang="VHDL"> <sig_id> <= <waveform>/sig_value when <condition> else <condition> </source>
Bsp.: <source lang="VHDL"> q <= a when addr = "oo" else -- Vergleichbar if-then, elsif- else Konstruktion
b when addr = "11" else c; -- alternative: unaffected;)
</source>
- selektive Signalzuweisung (selected signal assignment) with addr select -- entspricht einem Multiplexer (HBS 4-12) q = a when "00", b when "11", c when others;
-> case-Konstrukt
<source lang="VHDL"> architecture Mux1 of MUX is -- Skizze (HBS 4-12) begin y <= (I(0) and not E and not S) or (I(0) and not E and S); end Mux1; architecture Mux2 of Muc is begin y <= (I(0) and not E) when s = '0' else (I(1) and not E);
architecture rtl1 or test is signal a,b,c,d,e : std_logic; begin d <= a and (b or c); e <= a or b; end rtl1; architecture rtl2 of test is begin process (a,b,c) variable var: std_logic; begin var := b or c; d <= a and var; end process; process (a,b) begin e <= a or b; end process; end rtl2; </source>
process (a) wait until a = 1; wait on a; wait for 10ns;
wait for 2* period; wait until a = 1 for 10ns;
Bsp.: Verzögerungsmodell -- Skizze (HBS 4-13) process (a) begin c1 <= not a; end process;
process begin c2 <= not a; wait on a; end process;
process begin wait on a; c3 <= not a; end process;
process begin wait until a = '1'; c4 <= not a; end process;
process begin c5 <= not a; wait until a = '1' for 10ns; end process;
Sequentielle Statements
<source lang="VHDL"> if addr = "00" then q <= a; elsif addr = "11" then q <= c; end if;
case addr is when "00" => q <= a; when "11" => q <= b; when others => q <= c; end case;
type alu_mod is (addr, sub, idle); -- Null-Anweisung variable sel: alu_mod; case sel is when add = c := a + b; when sub = c := a - b; when idle => null; end case; </source>
6. Vorlesung
Datei:HBS-6.pdf http://wikiii.de/wiki/Datei:HBS-6.pdf
Materialien
Das vollständige Skript der aus dem Downloadbereich:
Die angeblich fehlenden Folien zum Beantworten der Fragen:
Die Dokumentation eines vollständigen Softwareprojekts:
Die vollständigen Aufgaben aus dem Downloadbereich: