Beim Assemblieren mit WinCupl erhalte ich die Fehlermeldung "expression contains undefined symbol: InPort". Die Meldung erscheint unabhängig davon, ob ich sie global oder im Macro aufführe. Wo liegt mein Fehler? Das Programm soll InPort zum Outport addieren (siehe Beitrag "Baustein mit 8-Bit Register gesucht"). Device g22V10 ; /* *************** INPUT PINS *********************/ PIN 1 = Clock ; PIN [2..9] = [D7..0] ; PIN 10 = preset ; PIN 11 = enable ; /* *************** OUTPUT PINS *********************/ PIN [14..21] = [Q7..0] ; field InPort = [D7..0] ; field OutPort = [Q7..0] ; $MACRO Addit field InPort = [D7..0] ; field OutPort = [Q7..0] ; OutPort.d = {InPort + QutPort}; $MEND Addit () ; OutPort.ar = 'h'00 ; OutPort.oe = enable ; OutPort.sp = preset ;
Im Quelltext steht QutPort statt OutPort. Sorry. Die Fehlermeldung ändert sich nicht.
Ich komme einfach nicht weiter mit WinCupl. Kann jemand mir einen anderen Galassembler nennen?
1 | OutPort.d = {InPort + QutPort}; |
Kann es sein, dass WinCupl sowas nicht kann? Im Manual steht auf Seite 2-2 unten
1 | Six standard arithmetic operators are available for use in $repeat and $macro com- |
2 | mands. The following table lists these operators and their order of precedence, from |
3 | highest to lowest. |
Und dann kommen: ** * / % + - Und zumindest bei den ersten 4 glaube ich sicher behaupten zu können, dass ein CPLD vom Schlage eines 22V10 das nicht kann.
Mittlerweile habe ich eine Menge versucht und bin (fast) deiner Meinung, daß das Ganze sich nicht in 22V10 gießen läßt.
Das hatte ich dir zum 16V8 in dem anderen Thread schon geschrieben. Da reichen die Produktterme nicht fuer aus. Der 22V10 ist da nicht viel besser. Am besten du nimmst ein CPLD. Damit gehts. Gruss Helmi
Deinen Beitrag zum 16V8 habe ich gelesen. Da ich aber noch 22V10 "rumliegen" habe (und der auch größer ist als der 16V8), war mein Gedanke, daß doch einmal schnell mit WinCupl auszuprobieren wo die Grenzen sind. Ergebnis: keins. Am Wochenende habe ich - Dank des Feiertages - etwas Zeit und werde mich mit Halb- und Volladdierern ans Werk machen.
@Lothar Nachtrag: Die arithmetischen Operatoren sind reine textuelle Ersetzungen. Auf der Ebene der GAL-Gleichungen sind sie nicht anwendbar. Also - zurück zu den logischen Operatoren.
Hier das Ergebnis: Das Maximum, das ich in ein GAL22V10 bekomme, ist ein 7-Bit Akkumulator. Wie es aussieht benötigt man für einen 8-Bit Akkumulator min. 11 Makrozellen. Nebenbei, die aktuelle WinCupl-Version hat einfach zuviele Bugs.
So aehnlich war das bei mir vor 15 Jahren auch. Mein Rat nimm ein CPLD und gut ist. Da hast du genuegend Reserven. Gruss Helmi
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.