effizienter/kleiner, konfigurierbarer Frequenzteiler

Gast #3333495
Lesenswert?

Hallo zusammen,

ich möchte gerne meinen Systemtakt für Debug-Zwecke auf ein Pad umleiten 
und ihn damit messbar machen.

Dabei möchte ich gerne mit einem Vektor den Teiler einstellen können.

Ich hab es jetzt so umgesetzt:
1
  p_divide_sys_clk : PROCESS (NRES, CLK)
2
  BEGIN
3
    IF NRES = '0' THEN
4
      sys_clk_cnt    <= (OTHERS => '0');
5
      sys_clk_divide <= '0';
6
    ELSIF rising_edge(CLK) THEN
7
      sys_clk_cnt <= sys_clk_cnt + 1;
8
      CASE FREQ_DIVIDE IS
9
        WHEN   "11" => sys_clk_divide <= sys_clk_cnt(3); -- divide by 16
10
        WHEN   "10" => sys_clk_divide <= sys_clk_cnt(2); -- divide by  8
11
        WHEN   "01" => sys_clk_divide <= sys_clk_cnt(1); -- divide by  4
12
        WHEN OTHERS => sys_clk_divide <= sys_clk_cnt(0); -- divide by  2
13
      END CASE;
14
    END IF;
15
  END PROCESS;

sys_clk_divide wird dann an anderer Stelle auf das PAD geschaltet.

Gibt es noch eine andere Methode, das noch effizienter bzw. noch 
variabler zu beschreiben?

Vielen Dank!
Roman
Moderator (Firma: Titel) Persönliche Seite #3333720
Lesenswert?

Roman schrieb:
> Gibt es noch eine andere Methode, das noch effizienter bzw. noch
> variabler zu beschreiben?
Definiere "effizient" und "variabel". Geht es dir nur um die "Anzahl der 
Zeichen im VHDL Quelltext", oder meinst du mit effizient den 
Ressourcenverbrauch? Falls ja: welche Ressource plagt dich am meisten?
Bedeutet "variabel" = "generisch" (universell), oder bedeutet variabel 
eher "flexibel im Hin- und Herrouten und Umschalten"?
Moderator (Firma: Titel) Persönliche Seite #3334278
Lesenswert?

Luke.skywalker schrieb:
> Das was du mit deiner Schaltung generierst ist kein echter "Takt" und
> würde somit auch nicht über das interne Taktnetz des FPGAs geroutet
> werden. Das kann zu Verzögerungen in deinem "Taktsignal" führen und das
> Verhalten deiner Schaltung beeinflussen.
Es soll m.E. gar kein Takt für die interne Verwendung erzeugt werden, 
sondern nur ein Teiler, der den durch Zweierpotenzen geteilten Takt an 
einem Pin ausgibt. Da ist nichts kritisch, weil keine Phasenbeziehung 
gefordert und kein Jitter definiert ist...

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