Hallo zusammen , ich bin neu im ABEL-Programm und ich versuche so ein Problem zu lösen. Hier unten: Die 2 Bit-Zahlen A und B werden im Zweierkomplement dargestellt. A besteht aus den Bits A0 und A1. B besteht aus den Bits B0 und B1. Die Bits A0 und A1 werden mit den Schaltern S1 und S2 erzeugt. A1 ist das MSB (S1). Die Bits B0 und B1 werden mit den Schaltern S3 und S4 erzeugt. B1 ist das MSB (S3). Das Resultat der Addition ist die Zahl Z, die ebenfalls im Zweierkomplement dargestellt wird. Sie besteht aus den Bits Z0..Z3, die mit den LED's D1..D4 angezeigt werden. Z3 ist das MSB (D1). Erstellen Sie ein ABEL-Programm. Führen Sie die Simulation durch. Programmieren Sie das MACH-Demoboard und weisen Sie die Funktion der Schaltung nach. DANKE FÜR EURE HILFE
Gustav Sunday schrieb: > Hallo zusammen , > ich bin neu im ABEL-Programm und ich versuche so ein Problem zu lösen. > Hier unten: Sei helle -> mach (Wahrheits-)tabelle http://de.wikipedia.org/wiki/Wahrheitstabelle (1)für die Multiplikation a b y 1 1 1 1 0 0 0 1 0 ... -1 -1 1 (2)-> jetzt ne neue tabelle aufstellen in der die zahlen binär im Zweikomplemment geschrieben sind (3)jetzt für die 4 bits von y jeweils die logikgleichung aufstellen also sowas wie http://de.wikipedia.org/wiki/Boolesche_Algebra y(0) = (a(0) UND b(0)) oder (a(0) und negiert b(0)) (4) diese Logikleichungen in ABEL beschreiben http://public.rz.fh-wolfenbuettel.de/~krausea/vl/Labor/DT_I/DISK4/abel_Anl.htm Folgendes PDF beschreibt auch ganz gut wie man mit ABEL Digitalschaltungen bastelt: http://www.latticesemi.com/~/media/Documents/UserManuals/ABEL-HDLReferenceManual.PDF > Erstellen Sie ein ABEL-Programm. Führen Sie die Simulation durch. > Programmieren Sie das MACH-Demoboard und weisen Sie die Funktion der > Schaltung nach. Mit Sie bist du gemeint, nicht das Forum. MfG
Gustav Sunday schrieb: > ich versuche so ein Problem zu lösen. Zeig mal deinen Lösungsanstz für diese Hausaufgabe. Und dann sag wo es klemmt. Dann kann dir geholfen werden. Es wird aber keiner deine Arbeit machen... > Erstellen Sie ein ABEL-Programm. Das ist jetzt aber wirklich erschütternd, dass auf einer Universität so etwas verlangt wird. Das ist wie wenn im Deutschunterricht einer vorschreibt: "Ritzen sie ihren Aufsatz in eine Steintafel!"... > Sie besteht aus den Bits Z0..Z3, die mit den LED's D1..D4 angezeigt > werden. Z3 ist das MSB (D1). Das treibt die Verwirrung und die Kuriosität nur noch auf die Spitze. Wenn ich sowas mache, dann werden die LEDS ebenfalls mit D0..3 durchnummeriert und so angeordnet, dass das MSB die D3 und in Leserichtung links ist...
:
Bearbeitet durch Moderator
Also bis Hier bin ich gekommen aber es klappt gut nur mit Positive Zahlen .... so sieht mein Programm aus: MODULE ADDIERER TITLE 'ADDIERER MIT 2BITZAHLEN' DECLARATIONS "Inputs A1..A0,B1..B0 pin; A = [A1..A0]; B = [B1..B0]; I = [B1..B0,A1..A0]; "Outputs S3..S0,CO pin istype 'com'; S = [S3..S0]; EQUATIONS when (( A>0) &( B>0)) then //@IF (A>0 & B>0) TRUTH_TABLE ( [ A1,A0, B1,B0] -> [S3,S2,S1,S0] ) [ 0,0,0,0 ] -> [0, 0,0,0 ] ; [ 0,0,0,1 ] -> [0,0,0,1 ] ; [ 0,0,1,0 ] -> [0,0,1,0 ] ; [ 0,0,1,1 ] -> [0,0,1,1 ] ; [ 0,1, 0,0] -> [0,0,0,1 ] ; [ 0,1, 0,1 ] -> [0,0,1,0 ] ; [ 0,1, 1,1] -> [0,1,0,0 ] ; [ 0,1, 1,0 ] -> [0,0,1, 1 ] ; [ 1,0,0,1 ] -> [0, 0,1,1 ] ; [ 1,0,0,0 ] -> [0,0,1, 0 ] ; [ 1,0,1,1 ] -> [0,1,0,0 ] ; [ 1,0,1,0 ] -> [0,1,0, 0 ] ; [ 1,1,0,1 ] -> [0,1,0, 0 ] ; [ 1,1,0,0 ] -> [0,0,1,1 ] ; [ 1,1,1,1 ] -> [ 0,1,1, 0 ] ; [ 1,1,1,0 ] -> [0,1,0, 1 ]; // S = A + B; //when (S < A) # (S < B) then CO = 1; // else CO = 0; else when ((A<0) #(B<0) )THEN //[!A1,!A0,!B1,!B0] -> ![S3,S2,S1,S0]; TRUTH_TABLE ( [ A1,A0, B1,B0] -> [S3,S2,S1,S0] ) [ 0,0,0,0 ] -> [0, 0,0,0 ] ; [ 0,0,0,1 ] -> [0,0,0,1 ] ; [ 0,0,1,0 ] -> [0,0,1,0 ] ; [ 0,0,1,1 ] -> [0,0,1,1 ] ; [ 0,1, 0,0] -> [0,0,0,1 ] ; [ 0,1, 0,1 ] -> [0,0,1,0 ] ; [ 0,1, 1,1] -> [0,1,0,0 ] ; [ 0,1, 1,0 ] -> [0,0,1, 1 ] ; [ 1,0,0,1 ] -> [0, 0,0,0 ] ; [ 1,0,0,0 ] -> [0,0,0, 1 ] ; [ 1,0,1,1 ] -> [0,0,0,0 ] ; [ 1,0,1,0 ] -> [0,0,1, 1 ] ; [ 1,1,0,1 ] -> [0,0,1, 1 ] ; [ 1,1,0,0 ] -> [0,0,1,1] ; [ 1,1,1,1 ] -> [ 0,0,1, 0 ] ; [ 1,1,1,0 ] -> [0,0,1, 1 ]; END >>> ich kriege so ein Error Message<<< 0028 |[ 0,1, 0,0] -> [0,0,0,1 ] ; ^ Syntax Error 1105: In "addierer.abl":28:Signal name expected. 0028 |[ 0,1, 0,0] -> [0,0,0,1 ] ; ^ Syntax Error 1049: In "addierer.abl":28:Expression element expected. Fatal Error 1999: Too many errors. Done: failed with exit code: 0002.
Gustav Sunday schrieb: > Erstellen Sie ein ABEL-Programm. Du arme Sau! Ich kenne eine ganze Abteilung, die sich noch mit dem Mist abquälen muss und ich danke Gott (genauer meinem Abteilungsleiter) dreimal täglich dafür, dass wir das nicht machen müssen.
Ich habe keine Ahnung davon aber evtl liegst an deiner If Then Else When Then Else? Vielleicht gibts bei when.... Kein Else Zweig?
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.