Verilog inout "NET "IIC_SDA_SFP" not found"

Gast #3640317
Lesenswert?

Hallo,

ich versuche einen inout Port in Verilog zu nutzen.
Im Constraints File habe ich ihn folgendermaßen angegeben:
1
NET "IIC_SDA_SFP" LOC = "E6"; ## 4 on P2
In meinem Top Modul rufe ich ihn wie folgt auf:
1
inout         IIC_SDA_SFP,
Wenn ich es so synthetisiere, ohne den Port zu nutzen, treten keine 
Fehler auf. Wenn ich den Port jedoch mit einem Modul nutze, kommt 
folgende Fehlermeldung:

ERROR:ConstraintSystem:59 - Constraint <NET "IIC_SDA_SFP" LOC = "E6";>
   [constraints.ucf(31)]: NET "IIC_SDA_SFP" not found.  Please verify 
that:
   1. The specified design element actually exists in the original 
design.
   2. The specified object is spelled correctly in the constraint source 
file.

Um das Modul zu instanziieren gehe ich so vor:
1
I2C_Wrapper I2C (
2
    .reset(reset),         //in
3
    .ref_clk(i2c_ref_clk),   //in
4
    .SDA(IIC_SDA_SFP),       //inout
5
    .SCL(IIC_SCL_SFP),       //out
6
    .data(data)          //out
7
    );

So wie ich das sehe habe ich überall den gleichen Namen für den Port 
benutzt, weswegen ich mir die Fehlermeldung nicht erklären kann. Kann es 
vielleicht daran liegen das es ein inout Port ist und ich damit 
irgendetwas falsch mache?

Danke!
Gast #3640423
Lesenswert?

Micha K. schrieb:
> Lattice User schrieb:
>> input oder output?
>> Könnte sein, dass wegen diesem Mismatch etwas wegoptimiert wurde, alle
>> Warnungen mal lesen!
>
> Hast recht, war ein Flüchtigkeitsfehler hier im Forum. Im Code ist SCL
> ein Output. Sprich:
>
Ok

Wenn es ein Xilinx spezifisches Problem ist, kann ich leider nicht 
weiterhelfen.

Allerdings trotzdem ein paar Tipps:

1. Verilog ist case sensitiv!

2. Wenn mir (bei Lattice) so etwas passiert ist, d.h. eine Fehlermeldung 
bezüglich eines fehlendes Signals was aber offensichtlich existiert, war 
es ein Fehler in einer anderen Ecke, der den Optimizer dazu veranlasst 
hat die grosse Schere auszupacken.
Synplify Pro hat neben dem RTL View (vor der Optimierung) noch einen 
Technology View. Dessen hervorstechendes Merkmal war gähnende Leere.
Gast #3640443
Lesenswert?

Pack mal ein
1
`default_nettype none

an den Anfang deiner Module. Das verhindert, dass der Synthesizer bei 
einem Tippfehler einfach ein neues Signal anlegt.


Wenn du Fremdmodule hast, die du nicht fixen kannst oder willst, pack 
ein
1
`default_nettype wire
ans Ende der zu prüfenden module.

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