MezData-Logo Creative Commons License 1413 Lösungen Button :ISP: when-then-else

Wie setzt ABEL die Bedingung when..then..else in logische Gleichungen bzw. Schaltungen um?

DECLARATIONS
  a,b,wahl   PIN 16,18,19;
  y          PIN 10 ISTYPE'BUFFER,COM';

EQUATIONS
  when wahl then y = a;    "Multiplexer
            else y = b;

Vom Compiler erzeugte Gleichungen:

y = (!wahl & b
     # a & wahl);
DECLARATIONS
  a,b PIN 16,18;
  y PIN 10 ISTYPE'BUFFER,COM';

EQUATIONS
  when a==b then y = 1; "Vergleicher

Vom Compiler erzeugte Gleichungen:

y = (!a & !b
     # a & b);
DECLARATIONS
  takt PIN 11;
  bit3..bit0 PIN 7,8,9,10 ISTYPE'BUFFER,REG';
  zehn PIN 3 ISTYPE'BUFFER,COM';
  ctr = [bit3..bit0];

EQUATIONS
  when ctr==10 then zehn = 1;
  else zehn = 0;

Vom Compiler erzeugte Gleichungen:

zehn = (!bit0 & bit1 & !bit2 & bit3);
DECLARATIONS
  a,b PIN 16,18;
  y PIN 10 ISTYPE'BUFFER,COM';

EQUATIONS
  when a$b then y = 1; "EXOR, gleiches Ergebnis wie a!=b (ungleich)

Vom Compiler erzeugte Gleichungen:

y = (a & !b
     # !a & b);