VHDL-Forum

 
Sie sind nicht eingeloggt.
LoginLogin Kostenlos anmeldenKostenlos anmelden
BeiträgeBeiträge MembersMitglieder SucheSuche HilfeHilfe
VotesUmfragen FilesDateien CalendarKalender BookmarksBookmarks
Latch XY has unsafe behavior

Anfang   zurück   weiter   Ende
Autor Beitrag
DeLUru
Neuling


Beiträge: 5

New PostErstellt: 26.09.06, 13:42  Betreff: Latch XY has unsafe behavior  drucken  Thema drucken  weiterempfehlen Antwort mit Zitat  

Der Kaufhaus Cop
Hallo,

Ich möchte einen Manchester-Encoder in VHDL programmieren, also 8-Bit
Eingangsdaten und 8-Bit + 1 Parität Ausgang (Pulsbreite wird dabei noch
angegeben). Habe dabei Warnings und kann diese nicht genau zuordnen
(VHDL-Amateur :-))

Könnte mir vielleicht jemand helfen? Danke!! Oder irgendwelche konstruktive Verbesserungsvorschläge?

Gruss,
DeLUru


Latch ManchesterEncoder:Encoder|data_reference has unsafe
behavior Ports D and ENA on the latch are fed by the same signal
ManchesterEncoder:Encoder|act_state.generate_data

Latch ManchesterEncoder:Encoder|clock_reference has unsafe behavior
Ports D and ENA on the latch are fed by the same signal
ManchesterEncoder:Encoder|act_state.generate_data

Latch ManchesterEncoder:Encoder|\PublicProcess:act_data_idx[3] has
unsafe behavior
Ports D and ENA on the latch are fed by the same signal
ManchesterEncoder:Encoder|act_state.generate_data

Ports D and ENA on the latch are fed by the same signal
ManchesterEncoder:Encoder|act_state.generate_dataLatch
ManchesterEncoder:Encoder|\PublicProcess:data_counter[0] has unsafe
behavior



Dateianlagen:

ManchesterEncoder.Vhd (5 kByte)
anzeigen - speichern
Datei wurde schon 156-mal heruntergeladen.

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
DaMicha
Stammgast


Beiträge: 27
Ort: Rostock

New PostErstellt: 27.09.06, 12:03  Betreff: Re: Latch XY has unsafe behavior  drucken  weiterempfehlen Antwort mit Zitat  

Hallo.

Das Problem tritt auf wenn Du ein Latch baust, dessen Enable Signal auch als Dateineingang dient. Das ist nicht gut!
Ich habe leider nicht sehen können an welcher Stelle in Deinem Design das auftritt.
Auf den ersten Blick sind aber im PublicProcess fast alle Signale bei Dir als Latch ausgelegt. Auch das ist nicht gut.
Eigentlich sollte Dir der Synthetisierer das auch im Logfile mitteilen.
Allgemein gilt, dass alle Latche, die Du nicht explizit geplant hast auch nicht ins Design gehören.
Der Grund für das Vorhandensein der Latche ist, dass die betroffenen Signale nicht in jedem Zweig (if-else, case) voll beschrieben sind.
Du solltest vielleicht erstmal alle Signal auskommentieren und nur mit act_state und nxt_state beginnen und mit jeden neuen Signal überprüfen (Dir darüber bewusst werden), ob es ein Latch hervorruft oder nicht.
Was mir noch auffällt, Deine Counter-Values werden nicht in Registern gespeichert (sondern als Latch). Du braucht einen ähnliches Konstrukt wie bei den States. Also ein Clock-Prozess (bzw. den selben) der Speichert.

Gruß DaMicha.


[editiert: 27.09.06, 12:35 von DaMicha]
nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
DeLUru
Neuling


Beiträge: 5

New PostErstellt: 27.09.06, 12:40  Betreff: Re: Latch XY has unsafe behavior  drucken  weiterempfehlen Antwort mit Zitat  

Hi DaMicha,

Danke für die schnelle Antwort. Ich hab das jetzt etwas geändert. In der Simulation (Altium Designer) scheint alles ok zu sein, aber wenn ich das Projekt auf den FPGA übertrage, dann tut das nicht das, was es tun soll.

Gruss,
DeLUru



Dateianlagen:

ManchesterEncoder.Vhd (7 kByte)
anzeigen - speichern
Datei wurde schon 142-mal heruntergeladen.

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
DaMicha
Stammgast


Beiträge: 27
Ort: Rostock

New PostErstellt: 27.09.06, 16:07  Betreff: Re: Latch XY has unsafe behavior  drucken  weiterempfehlen Antwort mit Zitat  

Hallo DeLUru.

Aus Latch-Sicht sieht der StateMachine-Prozess schon ganz gut aus. Du solltest Dir aber nochmal die Signale clock_reference und act_data_idx anschauen.
Der Counters-Prozess geht aus meiner Sicht so nicht. Erstmal brauchen Deine Werte einen (asynchronen) Reset, wie im Trigger-Prozess. Dann solltest Du das Rücksetzen zu clock_counter und data_counter mit in den Clock-Pfad nehmen, da Du Dir hier einen intern über Kombinatorik generierten asynchronen Reset gebaut hast. Das fliegt Dir "in echt" ganz bestimmt um die Ohren.
Vielleicht solltest Du mal mit dem synthetisierten Design (besser noch nach dem Place and Route) simulieren. Wenn es damit nicht geht, dann funktioniert es im FPGA auch nicht. Hierbei musst Du aber beachten, dass Du die Setup- und Hold-Zeiten aus der Testbench für das Design einhältst. Also Eingangssignal nicht mit, sondern vor der Taktflanke setzen.

Gruß DaMicha.

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
DeLUru
Neuling


Beiträge: 5

New PostErstellt: 28.09.06, 08:42  Betreff: Re: Latch XY has unsafe behavior  drucken  weiterempfehlen Antwort mit Zitat  

Danke für den Tipp DaMicha!

Gruss,
DeLUru

nach oben
Benutzerprofil anzeigen Private Nachricht an dieses Mitglied senden
Sortierung ändern:  
Anfang   zurück   weiter   Ende
Seite 1 von 1
Gehe zu:   
Search

powered by carookee.com - eigenes profi-forum kostenlos

Design © trevorj