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;
|