mikrocontroller.net

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


Autor: Andi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Stichwort heißt Multiplexer

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andi (Gast)
Datum:

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

Autor: Andi (Gast)
Datum:

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

Autor: ich (Gast)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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...

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Andi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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
---------------------

Autor: Klaus Falser (kfalser)
Datum:

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

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andi schrieb:
> Hab jetzt mal neu gemacht, stimmt das jetzt so?

Nein, solche Meldungen sollten nicht auftreten

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist daran noch falsch?
oder ist ISE 6.3 buggi?

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dohhh, ich dachte mit CPLD´s wirds einfacher........

Autor: Andi (Gast)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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... ;-)

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)??

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.