Forum: FPGA, VHDL & Co. Hilfe--> VHDL Fehler bei einer PWM


von El R. (el_r)


Lesenswert?

Hy, ich bin gerade dabei eine PWM in VHDL zu "beschreiben" und ich 
scheitere ständig an einem Fehler, welchen ich nicht weg bekomme.
Ich hoffe jemand kann mir da weiterhelfen ;)
Vielen Dank

entity PWM is
    Generic (CounterWidth : integer := 8);
    Port ( Reset_n_i    : in    STD_LOGIC;
           Clk_i        : in    STD_LOGIC;
           Threshold_i  : in    STD_LOGIC_vector(CounterWidth-1 downto 
0);
           ClkEnable_i  : in    STD_LOGIC;
           LED_o        : out   STD_LOGIC);
end PWM;

architecture rtl of PWM is

subtype CounterType is unsigned(CounterWidth-1 downto 0);
signal  Counter   : CounterType;
signal  Threshold : std_logic_vector(CounterWidth-1 downto 0);

begin

Threshold <= Threshold_i;

PWM : process(Reset_n_i, Clk_i)
begin
  if Reset_n_i = '0' then
    Counter <= (others => '0');
    LED_o   <= '0';
  elsif rising_edge(Clk_i) then
    if ClkEnable_i='1' then
      Counter <= Counter +1;

 hier in der if-Abfrage ist der Fehler-->
("< can not have such operands in this context.")
  *********"if(Counter < Threshold) then"*******************
          LED_o <= '1';
        else
          LED_o <= '0';
        end if;
    end if;
  end if;
end process PWM;

end rtl;

von Klaus (Gast)


Lesenswert?

Deklariere das signal Threshold auch als unsigend.

und dann :
Threshold <= Threshold_i;

ändern in

Threshold <= unsigned(Threshold_i);

von El R. (el_r)


Lesenswert?

unglaublich aber so gehts :) Danke

habe selbst herumgespielt mit umdeklarieren aber es zeigte mir immer 
andere Fehlermeldungen an.

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


Lesenswert?

Eine jede VHDL Beschreibung beginnt mit den Zeilen vor dem Keyboard 
entity mit den verwendeten Libraries. Welche Libs verwendest du?

In VHDL dürfen nur gleiche Typen zugewiesen und/oder verglichen werden. 
Deshalb muss der std_logic für den Vergleich erst zum unsigned Vektor 
umgewandelt/gecastet werden.
Siehe http://www.lothar-miller.de/s9y/categories/16-Numeric_Std

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.