Hallo Leute!
Ich soll mit einem FPGA eine Frequenz von 20KHZ auf 4KHZ runterteilen.
Die steigende Flanke kann für eine Erkennung nicht verwendet werden,
weil sie zu langsam ansteigt.
Die fallende Flanke ist steil genug.
Dies ist dadurch erkennbar, wenn ich meinen Prozess auf eine fallende
Flanke abfrage, dann passt die Ausgangsfrequenz von 4KHZ.
Wenn ich jedoch auf die steigende Flanke triggere, dann erkennt der FPGA
so manche steigende Flanke nicht als Flanke. Das Ergebnis ist dann auf
dem Oszi erkennbar.
Das Problem bei dem Ganzen ist, dass sich das heruntergeteilte
Ausgangssignal von 4KHZ bei einer positiven Eingangsflanke ändern soll
und nicht bei einer Negativen.
Der jetzige VHDL-Code fragt auf eine negative Flanke ab.
1 | count: process(clk_sig,rst)
|
2 | begin
|
3 | if rst=ein then
|
4 | counter<=0;
|
5 | clk_out<='0';
|
6 | led<='0';
|
7 | elsif clk_sig'event and clk_sig='0' then
|
8 | led<='1';
|
9 | counter<=counter+1;
|
10 | if counter=0 then
|
11 | clk_out<='1';
|
12 | end if;
|
13 |
|
14 | if counter=2 then
|
15 | clk_out<='0';
|
16 | end if;
|
17 |
|
18 | if counter=4 then
|
19 | counter<=0;
|
20 | end if;
|
21 |
|
22 | end if;
|
23 |
|
24 | end process count;
|
Ich hätte auch schon versucht das Clock-Eingangssignal über einen
Inverter laufen zu lassen, in der Hoffnung, dass die positve Flanke
hierdurch wieder hergestellt wird.
Wie könnte man das Problem lösen?
Danke für eure Antworten.
Tschüss und schönen Tag noch.
Martin