Problem ISPLever ABEL programmierung

OP #1044267
Lesenswert?

Hallo zusammen,

zur Zeit programmiere ich Lattice-PLD's in Abel,
im Anhang habe ich dass Programm, welches ich mir geschrieben habe. 
Allerdings bekomme ich beim checken der Syntax immer folgenden Fehler:

"Syntax Error 1028: In "ampel_fussgänger.abl":22:EQUATIONS, 
STATE_DIAGRAM, TRUTH_TABLE or END expected."

Ich verstehe jedoch nicht, warum das Programm in der Zuordnungszeile der 
Truth_Table etwas wie Equations, State_Diagramm, etc. erwartet.

kann mir jemand weiterhelfen?

Gruß
Angehängte Dateien:
Gast #1044570
Lesenswert?

Ohje, hab schon seit einigen Jahren kein Abel mehr gemacht, aber ich 
glaub, dass das Semikolon nach deiner Truth_Table Kopfzeile weg muss.



([fussgaenger, takt2, takt1, takt0] :> [fussgaenger, takt2, takt1, 
takt0]) -> [Arot,Agelb,Agruen,Frot,Fgruen]);
                                   | Semikolon muss weg
OP #1045394
Lesenswert?

Also den Fehler habe ich behoben, ich hatte in der Zeile eine Klammer zu 
viel, semikolon bleibt...
allerdings habe ich jetzt natürlich den nächsten fehler...

Logical Error 1095: In "ampel_fussgänger.abl":23:Block or macro nested 
too far. (Possible mis-use of macro arguments.)


>Ist das etwa das Praktikum vom Prof. Fischer an der HTW Dresden?

Nein, nicht ganz, ist an einer Berufsschule in Baden-Württemberg

Gruß
Gast #1058747
Lesenswert?

Hallo Jochen,

Hauptproblem: istype 'Buffer,Reg'
hier gehört kein Punkt hin. Di Nodes müssen ebenfalls mit Register sein, 
sonst macht ja :> keinen Sinn. Also takt0 NODE istype 'buffer, reg'; 
Dann hat auch der Fußgänger keinen Takt bekommen, obwohl in der Tabelle 
:> drin ist. Edit: sehe gerade, dass es Quatsch ist, den Fussgaenger 
überhaupt auf die rechte Seite der Tabelle zu nehmen. Du kannst ja kein 
Eingangssignal auf 0 setzen, wenn von außen eine '1' anliegt.
Weiterer Hinweis: einige ältere Versionen von Synario bzw. Lever machen 
ärger, wenn sich Variablen nur ein einem Buchstaben unterscheiden. Takt, 
takt, takt1 etc. kann kritisch sein (je nach Version).

Nicht ganz logisch ist die Zuordnung von ISTYPE für die beiden Eingänge 
takt und fussgaenger. Als reiner Eingang genügt: takt PIN 11;
Dann hat der Dateiname einen _ wo ein Umlaut wäre. Vermeide bei Lever 
Umlaute und Leerzeichen im Dateinamen und Pfad! Daher ist "Eigene 
Dateien" meist ein schlechter Speicherort. Ebenso der Desktop (liegt ja 
in c:\dokumente und einstellungen\username\desktop), gaz schlimm beim 
User Müller... Bei uns habe ich das Verzeichnis "Eigenen Dateien" daher 
auf c:\daten\schueler verschoben.

Tschuessle
Bernhard
Ende vom Lied - das hier Compiliert dann wenigstens. Der Ablauf der 
State-Machine ist aber trotzdem etwas Zweifelhaft, weil diverse 
Kombinationen fehlen (Fussgänger = 0, wenn Takt = 010 => Welcher 
Folgezustand ist hier gewünscht??). Etwas Arbeit soll Dir ja auch 
bleiben :-))

MODULE Ampel

DECLARATIONS                " Zuweisungen

takt2, takt1, takt0 Node ISTYPE 'Buffer,reg';        " Declarieren 
interner Hilfsausgänge
Arot, Agelb, Agruen, Frot, Fgruen PIN 4,10,7,13,17 ISTYPE 'Buffer,com'; 
" ARot, Agelb, Agruen den Flip-Flop Ausgangen 4,10,7 zuweisen 
Fussgängerampel
takt PIN 11 ;    " Den Takt dem Pin 11 zuweisen
fussgaenger pin 20;  " für den Fussgänger wurde einfach PIN 20 
angenommen


Takt= [takt2,takt1, takt0];  " Rot, Gelb, Gruen dem Set Takt 
zusammenfassen

EQUATIONS      " Beginn Hauptprogramm
Takt.clk = takt;  " Dem Set Ampel den Takt zuweisen

TRUTH_TABLE

([fussgaenger, takt2, takt1, takt0] :> [takt2, takt1, takt0] -> 
[Arot,Agelb,Agruen,Frot,Fgruen]);  " Zählstand vor dem Takt :> Zählstand 
nach dem Takt -> Ausgang
 [0,0,0,0] :> [0,0,1] -> [0,0,1,1,0]  ;
 [0,0,0,1] :> [0,1,0] -> [0,0,1,1,0]  ;
 [1,0,1,0] :> [0,1,1] -> [0,1,0,1,0]  ;
 [0,0,1,1] :> [1,0,0] -> [1,0,0,1,0]  ;
 [0,1,0,0] :> [1,0,1] -> [1,0,0,0,1]  ;
 [0,1,0,1] :> [1,1,0] -> [1,0,0,0,1]  ;
 [0,1,1,0] :> [1,1,1] -> [1,0,0,1,0]  ;
 [0,1,1,1] :> [0,0,0] -> [1,1,0,1,0]  ;

end    " Ende des Programms
Gast #1059101
Lesenswert?

> >Ist das etwa das Praktikum vom Prof. Fischer an der HTW Dresden?
>Nein, nicht ganz, ist an einer Berufsschule in Baden-Württemberg

-- spam_on
hihi, so ist das halt im Ländle..
An Berufsschulen macht man das mit ABEL und an der Hochschule werden die 
Fußgängerampeln in VHDL programmiert.. aber ich konnte mich bisher als 
Fußgänger auf die Ampel verlassen, war alles synchron :-)
-- spam_off

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren