Forum: FPGA, VHDL & Co. VHDL prozesse synchronisieren


von mikrofriendly (Gast)


Lesenswert?

Hallo,

Ich erhalte durch Modelsim immer folgenden fehler: "Nonresolved signal 
***  has multiple sources"

Das signal ist ein gewöhnluiches std_logic signal welches im 
architecture definiert ist. ich nutze es eigentlich nur um zwei prozesse 
mit unterschiedlichen takt zu synchronisieren. offenbar mag das modelsim 
nicht :)

was gibt es denn sonst noch für möglichkeiten vhdl prozesse zu 
synchronisieren?

mfg

von Marius W. (mw1987)


Lesenswert?

Ich glaube, der Fehler liegt bei dir in Zeile 42. Schau da mal nach und 
ändere das.

MfG
Marius

von mikrofriendly (Gast)


Lesenswert?

danke marius .. wo liegt denn das problem wenn ich ein problem mal 
allgemein formuliere?

von Klaus (Gast)


Lesenswert?

mikrofriendly schrieb:
> wo liegt denn das problem wenn ich ein problem mal
> allgemein formuliere?

Das Problem liegt darin, dass man auf maximal allgemein gestellte Fragen 
auch nur maximal allgemeine Antworten geben kann. --> 42! ;-)

von Christian R. (supachris)


Lesenswert?

mikrofriendly schrieb:
> has multiple sources

Heißt, dass du aus zwei (oder mehr) Prozessen schreibend auf ein Signal 
zugreifst. Das geht nicht. Ein Signal kann immer nur von einem Prozess 
beschrieben werden. Klingt als gehst du nach Software-programmier-Weise 
da ran. Das geht immer schief. VHDL ist Hardware, Signale sind einfach 
gesprochen Kabel. Du kannst nicht ein Kabel mit 2 Spannungen betreiben, 
das gibt Kurzschluss.

von Kriseur (Gast)


Lesenswert?

IN der reinen Simu geht das und auch in der HW funktioniert es , wenn 
sich die Zugriffe zeitlich ausschließen. Trotzdem ist das eine unnötige 
Problemgruppe, weil man sowas durch einen einfachen Trick ausschließen 
kann:

Signale werden immer nur in einem einzigen Prozess, als eine Funktion 
anderer Signale beschrieben. Und zwar in kompletter Abdeckung aller 
möglicher Signalzustandskombinationen, wobei man genau alle Signale die 
einfluss haben können, dem Prozess zuführt und genau alle anderen 
komplett weglässt.


Ich stelle das immer so dar, dass ich von "Definition von hinten" 
spreche. Man fängt hinten am Ausgang des FPGAs an und definiert die 
Signale nach vorn. Das ganze wird damit automatisch strukturorientiert 
und nicht etwa "ereignisorientiert".

von Christian R. (supachris)


Lesenswert?

Kriseur schrieb:
> IN der reinen Simu geht das und auch in der HW funktioniert es

Naja, in der Simulation gibts dann ein rotes X, wenn einer Low sagt und 
der andere High. Und bis zur Hardware kommt es gar nicht, denn Xilinx 
ISE lässt sowas nicht durchgehen und meckert das zu Recht als Fehler an 
und bricht die Synthese ab.

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.