VHDL-Forum

 
Sie sind nicht eingeloggt.
LoginLogin Kostenlos anmeldenKostenlos anmelden
BeiträgeBeiträge MembersMitglieder SucheSuche HilfeHilfe
VotesUmfragen FilesDateien CalendarKalender BookmarksBookmarks
mehrmaliges Setzen eines Signales in einem Process

Anfang   zurück   weiter   Ende
Autor Beitrag
Sebastian Kotthoff
Gast
New PostErstellt: 15.11.07, 11:05  Betreff: mehrmaliges Setzen eines Signales in einem Process  drucken  Thema drucken  weiterempfehlen Antwort mit Zitat  

Hallo,

ich vermute, dass man in einem Process ein Signal nicht mehrmals setzen kann. (zumindest bei synthetisiertem Code)
Als Beispiel:

SIGNAL counter : std_logic_vector(3 DOWNTO 0) = "1000";

PROCESS (clk)
BEGIN
IF(rising_edge(clk)) THEN
counter = "0000";
counter = counter + 1;
END IF;
END PROCESS;

Dann ist nach dem ersten Abarbeiten des Processes Counter bei mir "1001" und nicht "0001".

Ist meine Annahme korrekt oder hab ich irgendwas nicht beachtet?
(nutze Quartus 6.0 von Altera mit MAX II -CPLD)

Vielen Dank fuer die Hilfe schon mal.
nach oben
Mutex
Registrierter Benutzer


Beiträge: 1

New PostErstellt: 16.11.07, 21:59  Betreff: Re: mehrmaliges Setzen eines Signales in einem Process  drucken  weiterempfehlen Antwort mit Zitat  

Hi!

Das liegt daran, weil nur immer bei der Steigenden Flanke die Werte upgedated werden. In deinem Fall macht das daher keinen sinn zuerst 0 zuzweisen und dann 1 dazu zu zählen. Denn der Counterwert wird nur bei der steigenden flanke übernommen, was er übernimmt (zuweist) liegt am letzten Befehl den er ausführt. -> daher ist die erste Zuweisung sinnlos (verstehe sowieso ned ganz was der Code bringen soll). Ich glaube außerdem auch das Quartus diese Zeile sowieso wegoptimiert, bin mir da aber nicht ganz sicher. Daher kannst du jetzt hoffentlich auch verstehen warum du 1001 raus bekommst. wenn man getaktete Sachen hat mus man eben aufpassen.


SIGNAL counter : std_logic_vector(3 DOWNTO 0) = "1000";

PROCESS (clk)
BEGIN
IF(rising_edge(clk)) THEN
counter = "0000";
counter = counter + 1;
END IF;
END PROCESS;

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