Rechner- und Betriebssysteme

 ← zurück zur Startseite

Seite von Herrn Haenselmann

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);