Hilfe--> VHDL Fehler bei einer PWM

OP #3105364
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;
Moderator (Firma: Titel) Persönliche Seite #3105407
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

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