Forum: FPGA, VHDL & Co. WinCupl: GAL22V10 Fehlermeldung


von Martin H. (Gast)


Lesenswert?

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 ;

von Martin H. (Gast)


Lesenswert?

Im Quelltext steht QutPort statt OutPort. Sorry. Die Fehlermeldung 
ändert sich nicht.

von Martin H. (Gast)


Lesenswert?

Ich komme einfach nicht weiter mit WinCupl. Kann jemand mir einen 
anderen Galassembler nennen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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.

von Martin H. (Gast)


Lesenswert?

Mittlerweile habe ich eine Menge versucht und bin (fast) deiner Meinung, 
daß das Ganze sich nicht in 22V10 gießen läßt.

von Helmut L. (helmi1)


Lesenswert?

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

von Martin H. (Gast)


Lesenswert?

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.

von Martin H. (Gast)


Lesenswert?

@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.

von Martin H. (Gast)


Lesenswert?

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.

von Helmut L. (helmi1)


Lesenswert?

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
Noch kein Account? Hier anmelden.