Generieren von 1ms Pulse nach einem Trigger

Gast #3040551
Lesenswert?

Hallo zusammen,

da ich ein VHDL Neuling bin, bin ich auf euer Hilfe angewiesen.

Ziel ist es nach einem Trigger einen Signal von 1ms (Quarz von 10Mhz 
vorhanden) zu generieren, es ist zwar sehr einfach aber bekomme ich 
nicht hin, jedes Mal bekomme ich Fehler bei der Synthese (XP2, Diamond).
1
-- Clk, Trigger: Inputs
2
-- Puls : Output
3

4
signal Enable: std_logic := '0';
5

6
Process (clk, Trigger)
7
begin
8
 if trigger'Event and Trigger='1' then
9
    Enable <= '1';
10
 end if;
11

12
 if Clk'Event and Clk='1' then
13
  if Enabe = 1 then
14
    Puls <= '1';
15
    counter <= 0; 
16
  end if;
17

18
  if Puls = '1' then
19
    counter <= counter + 1;
20
    if counter >= 10000 then
21
      Puls = '0';
22
     end if;
23
  end if;
24
end process

mein Problem ist: das "Enable" muss wieder auf 0 gesetzt werden, wo kann 
ich das am besten tun?

Vielen Dank für die Hilfe
Moderator (Firma: Titel) Persönliche Seite #3040586
Lesenswert?

VHDL Anfänger schrieb im Beitrag #3040551:
> jedes Mal bekomme ich Fehler bei der Synthese (XP2, Diamond).
WELCHEN?

> if trigger'Event and Trigger='1' then
>   if Clk'Event and Clk='1' then
Die Ursache allen Übels: du hast zuviele Takte in deinem Design!

> Generieren von 1ms Pulse nach einem Trigger
Vorgehensweise: Nur 1 Takt (den Quarzoszillator), dann den Trigger 
einsynchronisieren und danach noch eine Flankenerkennung (such 
einfach mal hier im FPGA-Forum mal danach). Dann mit der erkannten 
Flanke (steigend oder fallend) einen Zähler auf 0 setzen, und solange 
der kleiner als 9999 ist (weil 0...9999 schon 10000 Schritte sind) eine 
1 ausgeben.

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