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 |
|
25 |
|
26 | countout <= to_integer(count) when count(5)='0' else
|
27 | 31-to_integer(count(4 downto 0));
|
28 | PWM_0 <= '0' when count(5)= '0' else '1';
|
29 | --process begin
|
30 | --wait until rising_edge(clock);
|
31 |
|
32 | -- getaktete Beschreibung hier
|
33 |
|
34 | --end process;
|
35 |
|
36 | -- ungetaktete Kombinatorik darf auch hier stehen
|
37 |
|
38 | end;
|