Forum: FPGA, VHDL & Co. Power-Up Level Warnung bei Synthese, warum?


von Hubi (Gast)


Lesenswert?

Hallo Zusammen,

ich habe mal eine kurze Frage.

Ich habe in meinem Design ein Monoflop, das mit einem Counter umgesetzt 
ist welcher vom Max-Wert auf Null runter zählt. Beim Reset wird der 
Counter mit dem Max-Wert initialisiert, da es dort gleich aktiviert 
werden soll.

Beim Builden bekomme ich jedoch vom Synthese-Tool (Altera Quartus II) 
die Warnung:
1
Critical Warning: Ignored Power-Up Level option on the following registers
2
Critical Warning (18010): Register [..] will power up to High

Frage:
1.) Bedeutet "Ignored Power-Up Level" dass er die Initialisierung mit 
dem Max-Wert ignoriert?

2.) Warum ist das überhaupt ein Problem? Ich sollte doch im Prozess beim 
Reset angeben was ich will, ob logisch Eins oder Null sollte doch egal 
sein?

Hier der VHDL-Code
1
    monoflop : PROCESS (clk, reset_n)
2
        variable counter : integer range 0 to maxval;        
3
    BEGIN
4
        IF (reset_n = '0') THEN
5
            output  <= '1';
6
            counter := maxval;
7
        ELSIF (clk'EVENT AND clk = '1') THEN
8
            IF (enable = '1') THEN
9
                IF (input = '1') THEN
10
                    output  <= '1';
11
                    counter := maxval;
12
                ELSE
13
                    IF (counter > 0) THEN
14
                        output <= '1';
15
                        counter  := counter - 1;
16
                    ELSE
17
                        output <= '0';                   
18
                    END IF;
19
                END IF;
20
            END IF;
21
        END IF;    
22
    END PROCESS monoflop;

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hubi schrieb:
> 1.) Bedeutet "Ignored Power-Up Level" dass er die Initialisierung mit
> dem Max-Wert ignoriert?
Ja und Nein:
Er wird der Variablen (warum eigentlich eine Variable?) beim Anlegen 
eines aktiven Resetsignals den maxval zuweisen. Aber er wird beim 
PowerUp diesen maxval nicht berücksichtigen. Du hast das übrigens auch 
nirgends verlangt, weil du ja gar keinen Init-Wert angegeben hast...

> 2.) Warum ist das überhaupt ein Problem?
Das liegt idR. an der internen Struktur des FPGAs.

von Hubi (Gast)


Lesenswert?

Lothar Miller schrieb:
> Hubi schrieb:
>> 1.) Bedeutet "Ignored Power-Up Level" dass er die Initialisierung mit
>> dem Max-Wert ignoriert?
> Ja und Nein:
> Er wird der Variablen (warum eigentlich eine Variable?) beim Anlegen
> eines aktiven Resetsignals den maxval zuweisen. Aber er wird beim
> PowerUp diesen maxval nicht berücksichtigen. Du hast das übrigens auch
> nirgends verlangt, weil du ja gar keinen Init-Wert angegeben hast...


Ahh vielen Dank, ist klar, gar nicht dran gedacht. Danke!

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.