Ich habe Probleme damit eine shared variable zu verwenden. Bitte nicht auf Signale verweisen. Ich muss von verschiedenen Prozessen darauf zugreifen. Ist eine Übung zur Umsetzung eines C-Programmes in VHDL nach dem Motto eines Kochrezeptes (Man nehme ...). Jede Prozedur bzw. Funktion soll auf einen entsprechenden Prozess in VHDL umgesetzt werden. Ist leider nicht ganz einfach. Als nächstes erfolgt dann als weitere Übung die Umsetzung von rekursiven Funktionen in VHDL.
1 | -- Elemente und Index des Heaps bzw. des Dualport-RAM's
|
2 | subtype element is std_logic_vector (data_width_heap - 1 downto 0); |
3 | subtype index is std_logic_vector (address_width_heap - 1 downto 0); |
4 | -- n wird laut Vorlage in C nur in sort gesetzt (Anzahl der Elemente des Heaps)
|
5 | -- Alle anderen Prozesse greifen nur lesend auf n zu; deshalb sollte man
|
6 | -- ohne Probleme shared verwenden können
|
7 | shared variable n : index; |
Code ist etwas zu lang zum posten; mehr als 900 Zeilen. Trotz Definition als shared erhalte ich die allgemein bekannte Meldung: Multi-source in Unit <heapsort> on signal <n<7>>; this signal is connected to multiple drivers. Wo ist der Denkfehler ? An irgendwelchen Einstellungen in Xilinx ISE kann es wohl nicht liegen ?