Forum: FPGA, VHDL & Co. INOUT wird bei der Synthese zu OUTPUT konvertiert


von Fritz W. (fritz6392)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe den angehängten Code mit ICECube geschrieben und will mit 
Lattice LSE Synthesis synthetisieren. ich bekomme aber folgende Meldung:

######## Converting I/O port DIO[7] to output.
######## Converting I/O port DIO[6] to output.
######## Converting I/O port DIO[5] to output.
######## Converting I/O port DIO[4] to output.
######## Converting I/O port DIO[3] to output.
######## Converting I/O port DIO[2] to output.
######## Converting I/O port DIO[1] to output.
######## Converting I/O port DIO[0] to output.

Ein Funktionstest hat schon gezeigt, dass keine Werte eingelesen werden. 
Wenn ich in meiner Entity schreibe:

DIO:     in std_logic_vector(7 downto 0)

dann werden Werte eingelesen. Dann funktionieren andere Programmteile 
aber nicht. Ich brauche da halt INOUTS.

Kann mir da jemand weiterhelfen?

von Vancouver (Gast)


Lesenswert?

Ich schätze, in Deinem Code wird ein Register mit Namen DIO erzeugt, 
dessen Ausgang auf die Pins geht, und das intern gelesen und geschrieben 
wird. Daher werden die IOs in reine Ausgänge umgewandelt. Du sagst der 
Logik nirgendwo, dass sie beim Lesen die Finger vom DIO-pin lassen soll.

Für einen bidirektionalen Pin brauchst Du eine explizite Aufteilung in 
ein DI- und ein DO-Signal, etwa in der Art (Pseudocode):
1
if (oe='1') then
2
  DIO <= DO;
3
  DI <= '0';
4
else
5
  DIO <= 'Z';
6
  DI <= DIO;

Das oe-Signal musst Du entsprechend in Deine Logik erzeugen, sodass es 
beim Lesen auf 0 gesetzt wird

von Christoph (Gast)


Lesenswert?

Wie sieht deine constrained Datei aus? (Die Datei, wo die Pin Nummern 
Logik Standard etc. definiert werden)

von Fritz W. (fritz6392)


Lesenswert?

Die Antwort von Vancouver hat schon funktioniert. Danke dafür.

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.