hallo zusammen. ich möchte gern einen zähler schreiben, der bei jeder steigenden flanke der clock hochzählt. das hochzählen soll auch nur dann passieren, wenn set 1 ist. in der testbench hab ich aber als zählerwert nur xe und keine zahl. was heisst das? library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity count is Port ( clock : in STD_LOGIC; set: in std_logic := '1'; counter : out STD_LOGIC_VECTOR(7 downto 0) ); end count; architecture Behavioral of count is signal temp : std_logic_vector(7 downto 0); begin process(clock) begin if rising_edge(clock) then if set = '1' then temp <= temp + "1"; end if; end if; end process; counter <= temp; end Behavioral;
Das kommt daher, weil temp nicht initialisiert ist und deshalb keinen Startwert hat. Außerdem solltest Du das numeric_std package verwenden und temp als signed type deklarieren.
blub schrieb: > ah, danke. wieso ist das package zu bevorzugen? Such mal im Forum... :-/ Und du findest den Beitrag "Re: Mittelwertberechnung aus vier 8-Bit Zahlen"
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.