Forum: FPGA, VHDL & Co. Adder Problem (ISE Systemgenerator VHDL)


von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

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

von zachso (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.