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.
> 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.
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...
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?
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
---------------------
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.
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.
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.
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?
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)??
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.