Fehler in FullAdder?

plo1234
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 116
Registriert: 14. Nov 2009 18:51

Fehler in FullAdder?

Beitrag von plo1234 »

Hi.
Bei mir will der Syntax-Check für den FullAdder ums verrecken nicht durchlaufen.

Code: Alles auswählen

ERROR:HDLCompilers:26 - "FullAdder.v" line 26 expecting 'IDENTIFIER', found '('
ERROR:HDLCompilers:26 - "FullAdder.v" line 26 unexpected token: '.'
ERROR:HDLCompilers:26 - "FullAdder.v" line 26 unexpected token: '.'
ERROR:HDLCompilers:26 - "FullAdder.v" line 26 unexpected token: '.'
ERROR:HDLCompilers:26 - "FullAdder.v" line 27 expecting 'IDENTIFIER', found '('
ERROR:HDLCompilers:26 - "FullAdder.v" line 27 unexpected token: '.'
ERROR:HDLCompilers:26 - "FullAdder.v" line 27 unexpected token: '.'
ERROR:HDLCompilers:26 - "FullAdder.v" line 27 unexpected token: '.'
Zeile 26 und 27 sind diese:

Code: Alles auswählen

  HalfAdder ha1(A.(A), B.(B), Sum.(sum1), .Carry(carry1));
  HalfAdder ha2(A.(CarryIn), B.(sum1), .Sum(Sum), .Carry(carry2));
Danke im Vorraus

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Re: Fehler in FullAdder?

Beitrag von Thorti »

plo1234 hat geschrieben: Zeile 26 und 27 sind diese:

Code: Alles auswählen

  HalfAdder ha1(A.(A), B.(B), Sum.(sum1), .Carry(carry1));
  HalfAdder ha2(A.(CarryIn), B.(sum1), .Sum(Sum), .Carry(carry2));
Hier ist der Punkt bei der Instanziierung leider an der falschen Stelle (dummer Copy&Paste Fehler :oops: )
Es muss sein

Code: Alles auswählen

  HalfAdder ha1(.A(A), .B(B), .Sum(sum1), .Carry(carry1));
  HalfAdder ha2(.A(CarryIn), .B(sum1), .Sum(Sum), .Carry(carry2));
Gruß
Thorsten
Assistent zur Vorlesung TGDI im WS 11/12

plo1234
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 116
Registriert: 14. Nov 2009 18:51

Re: Fehler in FullAdder?

Beitrag von plo1234 »

Ah, danke. Ich dachte schon ich wäre total bescheuert... ;)

An dieser Stelle frage ich dann auch mal was diese Schreibweise

Code: Alles auswählen

.A(CarryIn)
überhaupt genau bedeutet?

ISE schreibt sowas z.b. in den "vorbereiteten" Testbenches, aber in den Folien oder in der Errinerung aus TGdI finde ich dazu nichts..

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Re: Fehler in FullAdder?

Beitrag von Thorti »

Code: Alles auswählen

.A(CarryIn)
das bedeutet: Ich schließe das wire "CarryIn" an den Ein/Ausgang "A" des Moduls an. So verbindet man die Module in den Instanziierungen.
Assistent zur Vorlesung TGDI im WS 11/12

plo1234
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 116
Registriert: 14. Nov 2009 18:51

Re: Fehler in FullAdder?

Beitrag von plo1234 »

Aber wird die Information wo ein Wire jetzt hinführt nicht schon implizit durch die Reihenfolge bei der Instanziierung festgelegt?

Also wenn ich eben dieses Modul habe:

Code: Alles auswählen

module HalfAdder(
  input A, B,
  output Sum, Carry
  );
Reicht es da nicht, im FullAdder zu schreiben:

Code: Alles auswählen

HalfAdder ha1(A, B, sum1, carry1);
HalfAdder ha2(CarryIn, sum1, Sum, carry2);
?

Benutzeravatar
salted
Mausschubser
Mausschubser
Beiträge: 84
Registriert: 28. Sep 2009 21:21

Re: Fehler in FullAdder?

Beitrag von salted »

plo1234 hat geschrieben:Reicht es da nicht, im FullAdder zu schreiben:

Code: Alles auswählen

HalfAdder ha1(A, B, sum1, carry1);
    HalfAdder ha2(CarryIn, sum1, Sum, carry2);
?
Ja.

Die auf dem Übungsblatt verwendete Notation ist im Zweifelsfall aber besser lesbar und weniger fehleranfällig (ich muss nicht wissen, in welcher Reihenfolge welche Input/Output Elemente angeordnet sind).

plo1234
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 116
Registriert: 14. Nov 2009 18:51

Re: Fehler in FullAdder?

Beitrag von plo1234 »

Das finde ich etwas hinfällig ;) Es ist ja nicht so also wäre man nicht gewohnt sich an eine Signatur halten zu müssen...
Grüße

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Re: Fehler in FullAdder?

Beitrag von Thorti »

Hallo,

ich persönlich finde die Notation mit Angabe des Portnamens auch VIEL deutlicher und weniger fehleranfällig. Gerade wenn man an dem Untermodul etwas ändert, z.B. einen Port hinzufügt, führt die Reihenfolgenschreibweise schnell zu Fehlern.

Gruß
Thorsten
Assistent zur Vorlesung TGDI im WS 11/12

hamster34
Erstie
Erstie
Beiträge: 22
Registriert: 28. Apr 2010 11:01

Re: Fehler in FullAdder?

Beitrag von hamster34 »

Thorti hat geschrieben: dummer Copy&Paste Fehler :oops:
Dieser kleine Copy Paste Fehler hat mich bestimmt 3 Stunden und auf jeden Fall eine Menge Nerven gekostet. :?
Naja zumindest bin ich so wieder auf dieses Forum aufmerksam geworden und habe die Gewissheit, dass ich doch nicht total deppert bin...

Antworten

Zurück zu „Archiv“