Forum: FPGA, VHDL & Co. Quartus II: warum wird mein Zählernicht synthetisiert?


von Maik (Gast)


Lesenswert?

Hallo!

Ich verstehe nicht, warum mir Quatus II den Zähler puls_spacing_counter 
in folgendem process nicht synthetisieren will:
1
process(clk)
2
begin
3
    if(clk'event and clk = '1') then
4
        
5
        if(is_clk_out_m_in = '0') then
6
            if(conv_integer(imp_data_from_sr) > 0) then
7
                puls_data_complete(10 downto 0) <= imp_data_from_sr;
8
                puls_data_complete(23 downto 11) <= conv_std_logic_vector(puls_spacing_counter, 13);
9
                reset_counter <= '1';
10
                get_puls_data_complete <= '1';
11
            end if;
12
        end if;
13
      
14
        if(is_clk_out_m_in = '1') then
15
            if(reset_counter = '1') then
16
                puls_spacing_counter <= 0;
17
                get_puls_data_complete <= '0';
18
            else
19
                puls_spacing_counter <= puls_spacing_counter + 1;
20
            end if;
21
        end if;
22
    end if;
23
end process;

Mehr Prozesse hat das Entity nicht in seiner Architektur. Es bekommt den 
Vector imp_data_from_sr von einer integrierten Komponete, und es soll 
nun dieser Vector mit dem Inhalt des Zählers in einen neuen Vector 
(puls_data_complete) geschrieben werden.
Leider kommt Quartus ständig mit diesen Warnungen, und die Bits 23-11 in 
puls_data_complete bleiben immer leer.

Warning: Reduced register "reset_counter" with stuck data_in port to 
stuck value VCC
Warning: Reduced register "puls_spacing_counter[0]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[2]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[3]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[4]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[5]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[6]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[7]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[8]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[9]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[10]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[11]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[12]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[11]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[13]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[14]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[15]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[16]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[17]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[18]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[19]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[20]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[21]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[22]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[23]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_spacing_counter[1]" with stuck data_in 
port to stuck value GND
Warning: Reduced register "puls_data_complete[12]" with stuck data_in 
port to stuck value GND

Was mache ich hier falsch?

Gruß
Maik

von Schlumpf (Gast)


Lesenswert?

Erstes Warning sagt, dass reset_counter immer auf '1' sei.
Das heisst, dass du nie an die Stelle kommst, wo gezählt wird. Also 
optimiert die Synthese den Zähler raus, da er offensichtlich nicht 
gebraucht wird.

Schau mal nach, wie reset_counter gebildet wird!

von Maik (Gast)


Lesenswert?

Okay, ich habe es selber herausbekommen. Ich musste den reset_counter 
natürlich noch einmal zurücksetzen, damit der Counter nicht bei jedem 
Prozessaufruf gelöscht wird.

von Maik (Gast)


Lesenswert?

Hi Schlumpf!

Gerade habe ich es ja selber herausbekommen. Wie du siehst, hattest du 
aber recht. Vielen Dank für die schnelle Hilfe . . .

Gruß
Maik

von Schlumpf (Gast)


Lesenswert?

Wenn is_clk_out_m_in = '1', weist du puls_spacing_counter <= 0 zu, da 
reset_counter immer '1' ist.
Wenn dann is_clk_out_m_in = '0' ist, dann übernimmst du eben genau diese 
0 in
puls_data_complete(23 downto 11)

von Schlumpf (Gast)


Lesenswert?

Okay, alles bestenes...

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.