Rechner- und Betriebssysteme
Probeklausur
Logische Ausdrücke
A = (~X & ~Y & ~Z) | (~X & Y & ~Z) | (~X & Y & Z) | (X & Y & ~Z)
B = (~X & ~Y & Z) | (X & ~Y & ~Z) | (X & ~Y & Z) | (X & Y & Z) oder B = ~A
Vereinfachen von logischen Ausdrücken
A = (~X&~Y&~Z) | (~X&Y&~Z) | (~X&Y&Z) | (X&Y&~Z)
A = (~X & ~(~Y & Z)) | (X&Y&~Z)
Bitmanipulation
Wenn Bit 5 und 7 gesetzt ist, dann soll Bit 0 auf 1 gesetzt werden.
Bit-Stelle 76543210
Beispiel I = 10101100
I = I | (I >> 5 & 1) & (I >> 7)
10101100 >> 5
00000101 & 00000001
00000001
10101100 >> 7
00000001
Wenn Bit 4 oder 3 gesetzt ist, dann soll Bit 2 gesetzt werden.
Bit-Stelle 76543210
Beispiel I = 10101000
I | ((I >> 4 & 1) & (I >> 3)) << 2
10101000 >> 5
00000001
00000000
00000100
Code-Review
Ein kleiner Ausschnitt verilog Code der eine Digitaluhr umsetzt:
reg[4:0] hour; // speichert die Stunde der Uhrzeit reg[5:0] min; // speichert die Minute reg[5:0] sec; // speichert die Sekunde wire[15:0] display_number; // Zahl wird auf 4-stelligem Display ausgegeben assign display_number = (sec % 2 == 1) * (min*100 + sec) + (sec % 2 == 0) * (hour*100 + min);