Vivado-Post-Synthesis Simulation liefert falsche Werte

Gast #3479119
Lesenswert?

Hey,
ich muss mich bezüglich meiner Diplomarbeit in VHDL einarbeiten. Leider 
hatten wir nie etwas in der Richtung gehabt, also musste ich es mir 
selber beibringen.
Nun habe ich Code für ein VGA Controller geschrieben, welcher leider 
nicht funktionierte. Also reduzierte ich die komplexität auf nur einen 
einfachen Counter, welcher nach 2 sekunden die LEDS toogelt. Lauft 
Behavior Simulation funktioniert das alles ohne Problem. Leider machen 
die Post-Synthesis und Post-Implemantation Simulation nicht mit (daher 
beim aufspielen auf den FPGA passiert auch nichts außer dem standard 
Leuchten). Habe auch schon eine andere Software fürs Simulieren probiert 
ohne Erfolg
Könnte mir bitte einen Stoß in die richtige Richtung geben bzw. mir 
sagen warum das nicht funktioniert?
Sitze jetzt schon nen Stück dran und verzweifle langsam...

FPGA: Zynq-7000 series (Zedboard)
Suite: Vivado 2013.3 / ModelSim zur überprüfung


PS: Hier habe ich schon gepostet jedoch konnte keiner helfen aber evt 
sind Fragen die ihr habt dort beantwortet 
http://www.computerbase.de/forum/showthread.php?t=1301303
1
    library IEEE;
2
    use IEEE.STD_LOGIC_1164.ALL;
3
     
4
     
5
    use IEEE.NUMERIC_STD.ALL;
6
     
7
     
8
     
9
    entity ClockLED is
10
    Port (
11
    --CLK : in std_logic; -- only in non-Simulation
12
    LEDS : out std_logic_vector(7 downto 0)
13
     
14
    );
15
    end ClockLED;
16
     
17
    architecture Behavioral of ClockLED is
18
     
19
    type state_LEDS is (CNT1, CNT2, SETLEDS); -- defines the states
20
    signal state_LED : state_LEDS;
21
     
22
    signal LEDACTIVE : std_logic_vector(7 downto 0) := "11100011";
23
    signal SUM:integer range 0 to 2000005 := 0;
24
    signal CLK: std_logic;
25
     
26
    begin
27
     
28
    ---------------CLK Simulation------------
29
    process
30
    begin
31
    wait for 500 ns;
32
    CLK <= '1';
33
    wait for 500 ns;
34
    CLK <= '0';
35
    end process;
36
     
37
     
38
    -------------Counter and toogle--------------
39
    process(CLK)
40
    begin
41
     
42
    if rising_edge(CLK)THEN
43
     
44
     case state_LED is
45
      When CNT1 =>
46
       if SUM>2000000 then
47
        state_LED<=SETLEDS;
48
       else
49
        SUM <= SUM+1;
50
     
51
       end if;
52
     
53
      When SETLEDS =>
54
       SUM<=0;
55
       LEDACTIVE<= not LEDACTIVE;
56
       state_LED<=CNT1;
57

58
      When others =>
59
       state_LED<=CNT1;
60

61
      end case;
62

63
     end if;
64
    end process;
65

66
    LEDS<=LEDACTIVE;
67
     
68
    end Behavioral;
Moderator (Firma: Titel) Persönliche Seite #3479154
Lesenswert?

Empa schrieb:
> Leider machen die Post-Synthesis und Post-Implemantation Simulation
> nicht mit (daher beim aufspielen auf den FPGA passiert auch nichts außer
> dem standard Leuchten).
Ja, ist klar.
In ein synthetisierbares VHDL-Modul gehört keine Takterzeugung mit "wait 
for 500 ns;" Wie soll denn das in Hardware umgesetzt werden können? 
Welches Bauteil soll der Synthesizer da hernehmen? Die legendäre 
500ns-Verzögerungsleitung?


Richtig: er hat keines, und deshalb ignoriert er einfach die gesamte 
Takterzeugung. Heraus kommt: eine dauerleuchtende LED.

Wenn ein "wait for" synthetisierbar wäre, könnte man eine LED mit
"LED <= not LED after 500 ms;" zum Blinken bringen:
http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html
Moderator (Firma: Titel) Persönliche Seite #3479333
Lesenswert?

Empa schrieb:
> Die CLK erzeugung ist ja nur für die Simulation.
Das geht aber normalerweise anders...
Dafür schreibt man üblicherweise eine Testbench, die den Prüfling als 
Komponente einbindet und stimuliert.

> Wenn ich den Code auf den FPGA bringe, wird natürlich ein richtiger
> Clock von der IO PLL angelegt.
Nicht einfach ein Takt von einem Takteingang? Wozu die PLL?
Moderator (Firma: Titel) Persönliche Seite #3479537
Lesenswert?

Empa schrieb:
> Die PS section hat einen mit 33.3333 Mhz Die PL section hat einen mit
> 100 Mhz
Würde mir sehr zu denken geben, dass das so gar nicht zu den Zahlen im 
Beitrag "Re: Vivado-Post-Synthesis Simulation liefert falsche Werte" passt...

Empa schrieb:
> Liegt also vermutlich am Takt.
Sehr wahrscheinlich. Du kannst auch einfach mal den Takt an einem Pin 
ausgeben und mit einem Oszi kontrollieren, ob da was kommt.
Moderator (Firma: Titel) Persönliche Seite #3479541
Lesenswert?

Fpga Kuechle schrieb:
> deiner statemachine fehlt die initialisierung, das mindeste ist
> signal state_LED : state_LEDS := CNT1;
Das macht der Synthesizer von sich aus: er nimmt bei uninitialisierten 
Signalen den linkesten Wert der Typdefinition. Die Verhaltenssimulation 
würde diesen Fehler aber aufzeigen...
Moderator (Firma: Titel) Persönliche Seite #3479665
Lesenswert?

Empa schrieb:
> Prinzipiell kann ich diese ja nur abfragen und nicht ändern.
> Wird das regestriert wenn ich den abhole?
Wen? Wie? Wo?
Besorg dir mal das Buch "VHDL-Synthese" in der nächsten Bücherei...

Empa schrieb:
> Leider habe ich gerade kein Osci da :(
> Die Osci auflistung steht hier
Bitte niemals das selbe Wort für ganz was anderes verwenden, ohne vorher 
den Kontext geklärt zu haben. Das verwirrt nur unnötig!
Gast #3480285
Lesenswert?

Empa schrieb:
> ich muss mich bezüglich meiner Diplomarbeit in VHDL einarbeiten. Leider
> hatten wir nie etwas in der Richtung gehabt, also musste ich es mir
> selber beibringen.
Das finde ich aber reichlich seltsam. Die meisten Studenten lernen doch 
Digitaltechnik und werden im Zuge dessen auch mit den einschlägigen 
Beschreibungssprachen bekannt gemacht. Bei mir ist das schon 20 Jahre 
her und heute ist das definitiv nicht anders.

Da VHDL Stand der Technik ist, hätte ich die Erwartungshaltung, dass 
jeder Studi, der sich mit Digittechnik befasst, genau das lernt und 
diejenigen, die das nicht haben, nicht ausgerechnet eine DA anfertigen, 
bei der das abverlangt wird.

Wie kommt's, dass Du nun auf eine solche DA gestossen bist / wurdest?
Gast #3481113
Lesenswert?

Nunja wir hatten ja Digitaltechnik sowie Computerarchitektur. Beides 
habe ich mit einer 1.3 abgeschlossen, habe also aufgepasst. Problem war 
jedoch, das unser Prof. von DIgitaltechnik das im 6 semester in 
Computerarchitektur drannehmen wollte. Jedoch hat er die FH gewechselt 
und der neue Prof. war nur aushilfe mäßig da und hat natürlich was 
anderes drangenommen... Desswegen setzte ich mich derzeit erneut in die 
Vorlseungen bei wieder einen neuen Prof. rein...
So war das bei uns auch bei anderen Fächern. Extrem frustrierend...
Gast #3481177
Lesenswert?

Bei uns hatte damals zwar nicht andauernd der Prof. gewechselt (der 
Dozent war sowieso nur ein Herr Doktor und der Übungsleiter nur 
Dipl-Ing. ;-) ) aber wirklich viel VHDL kam auch nicht dran - wenn man 
wollte(!) dann waren es zwei Vorlesungen sonst wars nur eine wo aber zu 
75% Konzepte und Architektur im Vordergrund standen...
da musste man schon direkt ein Projekt in der passenden Arbeitsgruppe 
mitmachen um mehr Praxis zu erhalten.

Also so ungewöhnlich ist das nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren