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