Hallo, ich habe folgendes Problem: Hier erstmal der code: ... signal summe: std_logic_vector(49 downto 0) := (others => '0'); ... summe<=ki_int_scale+summe; ki_int_scale ist ein Eingang mit 48 downto 0. Das ganze steht in einem Prozess (rising edge(clk)), ist also quasi getaktet. Ich will das ganze mit Simulink (Blackbox) simulieren, aber das ausgangssignal (summe) ist immer 0.. Alle anderen Signale kann ich mir ordentlich ansehen. Wenn ich einen anderen eingang mit ki_int_scale Multipliziere habe ich auch ein Signal. Nur das Aufsummieren geht nicht. Warum? Ich habe auch schoneinmal so getestet: summe<=ki_int_scale+summe(48 downto 0); allerdings geht dies auch nicht. Hat jemand eine Idee? Im Anhang ist die ganze VHDL Datei. Ich nutze: ISE 11.5 Matlap 2008b mit Simulink und Systemgenerator von Xilinx
Hallo!
1 | if rising_edge(sys_clk) then |
2 | |
3 | diff<=soll-ist; |
4 | |
5 | kp_int<=diff*kp; |
6 | ki_int<=diff*ki; |
7 | |
8 | summe<=ki_int_scale+summe; |
9 | |
10 | end if; |
das geht schonmal nicht, das signal wird erst am ende des prozesses aktualisiert, warum siehe hier: http://www.gmvhdl.com/signals.htm wenn du das so machem wilst muss diff eine variable werden. ciao, zachso ps: kann noch mehr sein, aber das war das erste was mir aufgefallen 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.