PWM.vhd


1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
use IEEE.NUMERIC_STD.ALL;
4
5
entity PWM is
6
  Port(
7
  clock    : in std_logic;
8
  schalter : in  std_logic_vector(9 downto 0); -- nutze schalter(9 downto 5) für die PWM_1 und schalter(4 downto 0)für die PWM_0
9
  PWM_0    : out std_logic;
10
  PWM_1    : out std_logic);
11
end PWM;
12
13
architecture rtl of PWM is
14
15
-- Signale hierher
16
 constant BREITE:  unsigned(4 downto 0):="01000"; -- das ist der Wert 8.
17
 signal count:     unsigned (5 downto 0) := (others=>'0');
18
 signal countout:  integer range 0 to 31;
19
 signal PWM_out  :  std_logic :='0';
20
  
21
begin
22
-- hier ungetaktete Kombinatorik
23
count <= count+1 when rising_edge(clock) ; 
24
countout <= to_integer(count)  when count(5)='0' else
25
              31-to_integer(count(4 downto 0));
26
PWM_out <= '1' when count >= BREITE else '0';
27
--process begin
28
  --wait until rising_edge(clock);
29
  
30
  -- getaktete Beschreibung hier
31
32
--end process;
33
34
-- ungetaktete Kombinatorik darf auch hier stehen
35
36
end;