Forum: FPGA, VHDL & Co. Tristate Ausgänge im CPLD verbinden?


von Andi (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Kann man Tristate Ausgänge schon im CPLD verbinden?
Konkret geht es um diesen Fall:
Die Datei "real" zeigt die funkt. Schaltung mit den rot umkreisten 
74HC4094.
Diese möchte ich in ein CPLD schieben, siehe Datei "cpld".
Wobei ich auch gleich die Ausgänge der beiden 74HC4094 im CPLD so 
verdrahten will wie in der "realen" Schaltung.

Die Syntese und das Fitting läuft durch, nur bringt er eine 
Warnung,siehe unten.
Kann man das ignorieren? Würde das trotzdem funktionieren?
Oder wie müsste ich die Schaltung im CPLD umändern?
Gruss Andi


****************************  Errors and Warnings 
*************************

WARNING:Cpld:179 - The signal(s) 'PinSignal_U3_Q0' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U3_Q1' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U3_Q2' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U3_Q3' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U3_Q4' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U3_Q5' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U3_Q6' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U3_Q7' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U6_Q0' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U6_Q1' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U6_Q2' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U6_Q3' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U6_Q4' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U6_Q5' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U6_Q6' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U6_Q7' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.

von ich (Gast)


Lesenswert?

Dein Stichwort heißt Multiplexer

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


Lesenswert?

> Kann man Tristate Ausgänge schon im CPLD verbinden?
Welches CPLD?

> Kann man Tristate Ausgänge schon im CPLD verbinden?
Innerhalb eines üblichen CPLDs gibt es keine Tristate-Buffer. Deshalb 
wird die Logik dafür in einen Multiplexer umgesetzt (werden müssen). 
Und anhand der Warnungen scheint es damit Probleme zu geben, denn in 
dieser Schaltung ist erst mal keine offensichtliche Kombinatorische 
Schleife drin. Da muss offenbar irgendwer in der Toolchain irgendwas 
falsch umbiegen...

BTW: was sollte denn das CPLD machen, wenn beide oe (1+2) gleichzeitig 
aktiv werden?

> Oder wie müsste ich die Schaltung im CPLD umändern?
Schalte hinter die beiden Latches den erwähnten Multiplexer und triff 
eine Entscheidung zur Priorität der oe1 und oe2 Signale.

von Andi (Gast)


Lesenswert?

1.es ist ein XC9572
2.ein CPLD hat keine Tristate Buffer ? Muss ich dann extra extern einen 
Tristate Buffer anbringen?

von Andi (Gast)


Lesenswert?

nachtrag: beide OE1,OE2 sind nie gleichzeitig High, dafür ist der 
74Hc238 da.

von ich (Gast)


Lesenswert?

Doch er hat tristate buffer. Aber die liegen direkt an den Pins und 
können intern nicht verbunden werden.

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


Angehängte Dateien:

Lesenswert?

Andi schrieb:
> 2.ein CPLD hat keine Tristate Buffer ?
Nochmal langsam lesen:
Lothar Miller schrieb:
> Innerhalb eines üblichen CPLDs gibt es keine Tristate-Buffer.
An den IO-Pins (wie gesagt) schon, aber eben nicht als Funktion im CPLD.

Andi schrieb:
> OE1,OE2 sind nie gleichzeitig High, dafür ist der 74Hc238 da.
Davon weiß aber das CPLD nichts. Das mußt du ihm extra sagen. Und das 
tust du über eine Priorisierung im Multiplexer.

Sieh dir mal das Bild an...

von Andi (Gast)


Lesenswert?

ahhhh, jetzt kapier ich.
Wenn ich jetzt auch noch den 74Hc165 "einbauen" will, da kann ich aber 
seine Eingänge mit den Ausgängen des Tristate verbinden, oder muss ich 
das auch anders machen?

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


Lesenswert?

Andi schrieb:
> kann ich aber seine Eingänge mit den Ausgängen des Tristate verbinden
Ja. Das geht...

von Andi (Gast)


Angehängte Dateien:

Lesenswert?

Hab jetzt mal neu gemacht, stimmt das jetzt so?

wobei CPLDFIT bringt jetzt diese Warnungen???

Running CpldFit...
    Parameters: -p XC95288XL-6-TQ144  -inputs 54 -pterms 25 -terminate 
float -unused float fpga_project1.ngd
Release 6.3i - CPLD Optimizer/Partitioner G.35
Copyright (c) 1995-2004 Xilinx, Inc.  All rights reserved.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U2_Q0' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U7_Q0' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U2_Q1' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U7_Q1' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U2_Q2' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U7_Q2' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U2_Q3' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U7_Q3' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U2_Q6' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U7_Q4' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U2_Q5' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U7_Q5' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U2_Q4' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U7_Q6' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U2_Q7' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
WARNING:Cpld:179 - The signal(s) 'PinSignal_U7_Q7' are in combinational 
feedback
   loops.
   These signals may cause hazards/glitches.  Logic should include 
hazard
   reduction circuitry to avoid hazards/glitches.  Apply the NOREDUCE 
parameter
   to the hazard reduction circuitry.
Considering device XC95288XL-6-TQ144.
Flattening design..
Multi-level logic optimization...
Timing optimization
Timing driven global resource optimization
General global resource optimization........
Re-checking device resources ...
Mapping a total of 40 equations into 16 function 
blocks.................................................
java.lang.ClassCastException: org.apache.xalan.res.XSLTErrorResources_de
  at org.apache.xalan.xslt.Process.main(Unknown Source)
Exception in thread "main"
Design fpga_project1 has been optimized and fit into device 
XC95288XL-6-TQ144.

CpldFit - Completed Successfully
---------------------

von Klaus F. (kfalser)


Lesenswert?

Dann würde ich den Rest (HC373 und das 3-8 Decoder links oben) auch noch 
hineinpacken ...

von Klaus F. (kfalser)


Lesenswert?

Andi schrieb:
> Hab jetzt mal neu gemacht, stimmt das jetzt so?

Nein, solche Meldungen sollten nicht auftreten

von Andi (Gast)


Lesenswert?

Was ist daran noch falsch?
oder ist ISE 6.3 buggi?

von Klaus F. (kfalser)


Lesenswert?

Müssen U7 und U2 unbedingt Latches sein?
Diese dienen ja wahrscheinlich nur dazu, dass sich der Ausgang beim 
Lesezugriff nicht ändert.
Besser wären Register, man kann das Einfrieren ja mit der steigenden 
oder fallenden Flanke von P13 machen.

Andi schrieb:
> Was ist daran noch falsch?
> oder ist ISE 6.3 buggi?

Solche Meldungen habe ich noch nie gesehen, selbst wenn ich Latches 
verwendet habe.
Es schaut so aus, als ob die Latches in Logik mit Rückkopplung 
realisiert wurden.
Wie gesagt, normalerweise werden die Set- und Resets der Makrozellen 
verwendet.

von Christian R. (supachris)


Lesenswert?

Andi schrieb:
> oder ist ISE 6.3 buggi?

Hm, alle ISE Versionen sind buggy. Aber wieso nimmst du nicht eine 
aktuelle? Die CPLDs werden ja noch unterstützt. Ich denke mal, das ist 
eine sehr komische Umschreibung für das Latch...denk mal drüber nach ob 
eventuell ein 8-Bit-Register besser wäre.

von Andi (Gast)


Lesenswert?

also ich denke ich brauche schon ein Latch, wenn ich mir ein 74HC4094 
anschaue sind da auch welche drin.
Und ich will die "reale" Schaltung nur so umändern das ich die 2 
74HC4094 "raus" baue und das CPLD einsetze.

von Klaus F. (kfalser)


Lesenswert?

Andi schrieb:
> also ich denke ich brauche schon ein Latch, wenn ich mir ein 74HC4094
> anschaue sind da auch welche drin.
> Und ich will die "reale" Schaltung nur so umändern das ich die 2
> 74HC4094 "raus" baue und das CPLD einsetze.

Schlechter Ansatz.
Wenn man etwas ändert, dann sollte man wissen was man tut, wie etwas 
funktioniert und welche Auswirkungen die Änderung hat -> einen Schritt 
zurück und überlegen, ob es mit einem FF anstelle eines Latches auch 
funktioniert.
Kleine Zusatzaufgabe : was passiert wenn an Shiftregister eine 
Schiebeimpuls kommt und der Microprozessor liest gerade?

von Andi (Gast)


Lesenswert?

dohhh, ich dachte mit CPLD´s wirds einfacher........

von Andi (Gast)


Lesenswert?

aber ich probiers mal so aus.
Mehr wie kaputt gehen kanns ja nicht ;-)

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


Lesenswert?

Andi schrieb:
> aber ich probiers mal so aus.
Ganz pragmatisch. Würde ich auch machen...
> Mehr wie kaputt gehen kanns ja nicht ;-)
Mehr als... ;-)

von Andi (Gast)


Lesenswert?

juhu, es lebt .....
obwohl die NOREDUCE Meldungen kommen.
Ich hab nur noch ein Buffer und ein Inverter an den Eingang des LD8 Pin 
G machen müssen. Keine ahnung warum noch ein INV aber ohne geht es 
nicht.
Was macht einentlich so ein Buffer (BUF)??

von Christian R. (supachris)


Lesenswert?

Andi schrieb:
> Was macht einentlich so ein Buffer (BUF)??

Nichts, außer dass du im Schematic für ein uns das selbe Signal 2 
verschiedene Namen verwenden kannst.

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.