Hallo Leute, ich habe ein Problem. Mein Design funktioniert nicht und da habe ich mit der Anschsteuerung von einer Leuchtdiode versucht das Problem einzugrenzen. Das komische ist, dass die Leuchtdiode hin ganz unwilkürlich beim Druck auf den Taster anfängt zu Leuchten. (heißt: ich drucke auf den Taster - halte gedrückt: manchmal Leuchtet die LED nach x sek., machmal nicht. - drucke mehrmals: manchmal Leuchtet die LED nach x sek., machmal nicht. Das Takt DISP_ECLK ist 30MHz. Das das Programm ja bis dato ziemlich einfach ist und ich versthe überhaupt nicht warum es so nicht geht. Ich hoffe jemand von Euch kann mir helfen! shared variable x : integer :=0; begin --... process (DISP_ECLK, rst) begin if Button= '1' then if DISP_ECLK = '1' then --... if x = 2 then x :=0; LED0<='1'; -- HIER LED!!!! else x:=x+1; end if; end if; end process;
1. Der Code hat nicht die richtige Form. Ein getaktetes Signal beschreibt man so process (DISP_ECLK, rst) begin if (rst = '1') then .. elsif rising_edge(DISP_ECLK) then if Button= '1' then ... end if; end if; end process; Schreib es auf die Form um. 2) Was soll die shared variable? Die sollten Anfänger meiden wie der Teufel das Weihwasser. Die brauchst Du sicher nicht. 3) Wo wird LED wieder auf '0' gesetzt? 4) Wahrscheinlich kommt es davon das der Taster prellt. Dabei werden bei jedem menschlichen Tastendruck für das FPGA mehrere Schaltvorgänge generiert (ca. 50 ms lang) Klaus
@Klaus Falser >2) Was soll die shared variable? Die sollten Anfänger meiden wie der >Teufel das Weihwasser. Die brauchst Du sicher nicht. Was sollen shared variables überhaupt? Ich hab schon einige FPGA-Designs im professionellen Umfeld gemacht und bin nicht ein einziges Mal in die Verlegenheit gekommen, sowas zu benutzten. Um der Wahrheit die Ehre zu geben, ich wusste gar nicht, dass sowas in VHDL existiert. MFG Falk
Falk wrote: > @Klaus Falser > >>2) Was soll die shared variable? Die sollten Anfänger meiden wie der >>Teufel das Weihwasser. Die brauchst Du sicher nicht. > > Was sollen shared variables überhaupt? Ich hab schon einige FPGA-Designs > im professionellen Umfeld gemacht und bin nicht ein einziges Mal in die > Verlegenheit gekommen, sowas zu benutzten. Um der Wahrheit die Ehre zu > geben, ich wusste gar nicht, dass sowas in VHDL existiert. > > MFG > Falk Hallo, shared Variablen sind eigentlich nur in der Simulation gut. Wenn man Variablen über mehrere Prozesse braucht. Vor allem bei File-IO und Text-IO. Sonst braucht man sie eigenlicht nicht. Vor allem in der Synthese sollte man so gut wie keine Variablen nutzen. Gruß Ralf
Das mit der shared-Variable habe ich gemacht, da eine Instiialisierungssquenz für ein OLED-Display durchlaufen werden muss. Nach jeder steigenen-Display-Takt-Flanke muss sich ein Wert änder und das 41 mal. Daher habe ich Signalarray erzeugt, es mit 41 werten gefüttert und wollte praktisch mit einen zähler (x) dass sie das Array um eins hochschraubt (bis zur 41 halt). Mittlerweile habe ich mir überlegt, dass ich den zähler als Signal nutze und diesen in einen eigenen Process hochzähle. Vielen Dank für Eure Hilfe(!!) und ein schönes Wochenende. Die shared Variablen werde ich erstmal wieder als Werkzeug kicken. @Klaus zu 1) Vielen Dank! zu 2) habe ich eingesehen 3) Wo wird LED wieder auf '0' gesetzt? Die LED solte nur testen ob das so funktioniert wie ich es gehofft hatte und wurde noch ga rnciht auf 0 gesezt (sitze an einem Virtex4- Evalu. Board) 4) Wahrscheinlich kommt es davon das der Taster prellt. Dabei werden bei jedem menschlichen Tastendruck für das FPGA mehrere Schaltvorgänge generiert (ca. 50 ms lang) An das Prellen habe ich noch gar nicht gedacht. Bin immer davon ausgegangen, dass da eine art Filter eingebaut ist.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.