Counter Overflow erkennung

Gast #651929
Lesenswert?

ist es möglich diesen ausdruck (counter = x"FFF") direkt an eine 
set-eingang zu legen?
Ich bekomme dann immer den fehler (iOverflowEnable='1' and 
(iCtr=tCtrMax))...
Oder muss ich das zwangweise als Process implementieren.

Das Problem beim Process ist, das die Overflows nicht konsequent erkannt 
werden. (Ich denke es liegt an den Taktraten von dem Zähler 
(100MHz-400MHz)...

Grüße und danke für die Hilfen....
Gast #651971
Lesenswert?

Ich habe den Prozess auch nicht getaktet. Es funktioniert soweit ok... 
Nur bei höhren Taktraten erkennt er nicht mehr jeden Overflow.
1
tCtrMax<=(others=>'1');
2
  
3
  pOverflow: process(iCtr, iOverflowEnable, tCtrMax)--tCtrOld) 
4
  begin
5
    
6
    if (iOverflowEnable='1' and (iCtr=tCtrMax)) then
7
      tOverflow<='1';
8
    else
9
      tOverflow<='0';
10
    end if;
11
  end process pOverflow;
12
  
13
  tFlipflop: component FD1S3DX
14
    port map (
15
      CD=>iRES_Overflow,
16
      CK=>tOverflow,
17
      D=>'1',
18
      Q=>oOverflow
19
   );
Admin Persönliche Seite #652142
Lesenswert?

MARK wrote:
>   tFlipflop: component FD1S3DX
>     port map (
>       CD=>iRES_Overflow,
>       CK=>tOverflow,
>       D=>'1',
>       Q=>oOverflow
>    );

Sehe ich das richtig dass du tOverflow als Clock verwendest? Das ist 
nicht die feine Art. Leg das doch an einen Set-Eingang von einem 
getakteten Flipflop. Oder schreib das ganze erst mal als 
Verhaltensbeschreibung, ein Gemisch aus Netzliste und Prozessen ist der 
Übersichtlichkeit ja nicht unbedingt zuträglich.

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