Hallo, ich möchte in ISim einen Dreieckszähler, als Dreieck-Waveform darstellen. Beispiel Sinus: http://www.lothar-miller.de/s9y/archives/57-Sinusausgabe-mit-PWM.html Mein Code stimmt, der Zähler läuft korrekt.
1  | -- Dreieckszähler
 | 
2  | pwm_triangle : process (clk_33mhz)  | 
3  | variable triangle_counter : integer;  | 
4  | variable counter_max : integer := 10;  | 
5  | variable dir : std_logic;  | 
6  |   begin  
 | 
7  | if (clk_33mhz'event and clk_33mhz = '1') then  | 
8  | if (rst='1') then  | 
9  | triangle_counter := 0;  | 
10  |       else
 | 
11  | if (dir = '0') then  | 
12  |             --aufwärts zählen
 | 
13  | if (triangle_counter < (counter_max-1)) then  | 
14  | triangle_counter := (triangle_counter + 1);  | 
15  |             else
 | 
16  | dir := '1';  | 
17  | triangle_counter := (triangle_counter - 1);  | 
18  | end if;  | 
19  |           else 
 | 
20  |           --abwärts zählen
 | 
21  | if (triangle_counter > 0) then  | 
22  | triangle_counter := (triangle_counter - 1);  | 
23  |             else
 | 
24  | dir := '0';  | 
25  | triangle_counter := (triangle_counter + 1);  | 
26  | end if;  | 
27  | end if;  | 
28  | zaehler <= triangle_counter;  | 
29  | end if;  | 
30  | end if;  | 
31  | end process;  | 
Danke für die Hilfe Gruß Camel