Forum: FPGA, VHDL & Co. 50 Mhz auf 19,2 Khz frequenzteiler !


von Natalie (Gast)


Lesenswert?

Hi zusammen..

habe ein Frequenzteiler-Problem,und zwar ich hab ein Eingangfrequenz von 
50 Mhz,die muss ich teilen so dass ich am Ausgagng eine Frequenz von 
19,2 Khz habe..Das Frequenzteilerprogramm soll in VHDL geschrieben 
werden..

Hat jemand ein Vorschlag für mich?

Danke

von Klaus F. (kfalser)


Lesenswert?

Durch 2604 teilen.
Da die 19.2 KHz vermutlich für eine UART Verbindung sind, macht der 
Fehler nichts aus.

von Natalie (Gast)


Lesenswert?

Ja...aber wissen Sie wie man das Programm in VHDL schreibt?

von GA5T (Gast)


Lesenswert?

man schreibt keine programme in vhdl.
btw hausaufgaben sollte man schon selber machen...

von Natalie (Gast)


Lesenswert?

Ich hab das folgende Programm in der Hand..aber dieses Programm hat ein 
Eingangfrequenz von 2,4567 Mhz und teilt sie auf 38,4 Khz..wie kann ich 
dieses Programm umschreiben,so dass er mir ein 50 Mhz Frequenz auf 19,2 
Khz teilt?
-- frequenzteiler.vhd
        --


        ENTITY frequenzteiler IS
        PORT (clock        : IN     bit ;      -- Eingangstakt; f=2,4576 
MHz
              t_clk        : BUFFER bit ;      -- Transmitter-Takt
              r_clk        : BUFFER bit ) ;    -- Receiver-Takt
        END frequenzteiler ;


        ARCHITECTURE behaviour OF frequenzteiler IS
         BEGIN

          PROCESS
           VARIABLE count : integer RANGE 0 TO 128 ;  -- Zähler
           BEGIN

              WAIT UNTIL clock'event AND clock='1' ;

                 count := count+1 ;                   -- Zähler 
inkrementieren

                 CASE count IS
                   WHEN  32  =>  r_clk <= NOT r_clk ;
                   WHEN  64  =>  r_clk <= NOT r_clk ;
                   WHEN  94  =>  r_clk <= NOT r_clk ;
                   WHEN 128  =>  r_clk <= NOT r_clk ; t_clk <= NOT t_clk 
; count:=0 ;
                   WHEN OTHERS => NULL ;
                 END CASE ;

          END PROCESS;
        END behaviour;

von ... (Gast)


Lesenswert?

Ist das eine Hausaufgabe?

von Natalie (Gast)


Lesenswert?

Ich arbeite an einem Projekt an der Uni,und das ist mein Teil von 
Projekt,aber ich komme damit nicht weiter und muss ihn schon am Freitag 
abgeben! es wäre nett wenn jemand mich retten könnte :) !!

von Thomas H. (mac4ever)


Lesenswert?

Wie unser GA5T schon schrieb, handelt es sich bei VHDL NICHT um 
Programme !

Als kleinen Lösungsansatz:

Im VHDL-Text steht:
 2,456 / 0,384 = 63,9... also 64

Du willst:
 50 / 0,192 = 2604,17... also 2604

Den Rest kannst Du Dir selber denken ( hoffentlich ). Schau Dir mal den 
Counter in deinem Quelltext an.

Davon ab kannst Du den Code wie er dort steht eh nur simulieren.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Der Code ist zwar nicht übermäßig elegant (der Vergleicher hängt am 
Zählereingang, nicht am Ausgang), sieht aber eigentlich ganz gut 
synthetisierbar aus.

von Falk B. (falk)


Lesenswert?

@ Natalie (Gast)

>Ich arbeite an einem Projekt an der Uni,und das ist mein Teil von
>Projekt,aber ich komme damit nicht weiter und muss ihn schon am Freitag
>abgeben! es wäre nett wenn jemand mich retten könnte :) !!

Retten? Wer in einem UNI-Projekt am Ende des Projekts nicht mal solch 
elementare Dinge selbstständig lösen kann verdient keine Rettung. Lernen 
durch Schmerz.

MfG
Falk

P.S. Los, jetzt bitte wieder die Kommentare der Politisch Korrekten.

von Natalie (Gast)


Lesenswert?

Herr Hertwig,ich denke dass es mir schon klar geworden ist,dass 50 / 
0,192 = 2604,17 gibt,ich brauchte auch nicht den "GAST" um es mir zu 
sagen.Sie könnte auch Ihre "Hoffentlich" kommentar auch sparen..wenn Sie 
mir helfen wollen dann wäre es nett,wenn nicht dann schreiben Sie keine 
Ironische kommentare..

von Natalie (Gast)


Lesenswert?

wieder ein Klugscheisser...der Falk !!! es ist ein Forum,um menschen,die 
Probleme haben tipps zu geben...

von Mark E. (mark_e)


Lesenswert?

@ Natalie

ÄÄÄÄTSCH gehe direkt ins Gefängnis, gehe nicht über Los und ziehe auch 
keine Projektarbeitsnote ein ...

Die Antwort wurde genau in den Postings gegeben ...

Von daher zeigt es auf, das du nix von dem was in der Projektarbeit 
gefordert wurde, verstehst !

Also nicht rumheulen sondern so viel Arsch in der Hose haben und nen 
Semester dran hängen und lernen !

von Philip K. (plip)


Lesenswert?

Es ist wohl eine menschliche Schwäche, dass Können immer mit ein wenig 
Arroganz einhergeht.
Zum Glück darf ich mich davon freisprechen: ich kann nix! :-)

von Mark E. (mark_e)


Lesenswert?

Philip Kirchhoff wrote:
> Es ist wohl eine menschliche Schwäche, dass Können immer mit ein wenig
> Arroganz einhergeht.
> Zum Glück darf ich mich davon freisprechen: ich kann nix! :-)

Du ich habe von der VHDL Programmierung so viel Ahnung wie ne Kuh vom 
Fliegen, doch habe ich den Wink mit dem Riesen-Stahlträger verstanden 
und sofort entdeckt was wie im Quelltext geändert werden muss um die 
50/0,192 Teilung zu realisieren !

von Falk B. (falk)


Lesenswert?

Q. E. D.

von Thomas H. (mac4ever)


Lesenswert?

@plip
Naja, Arroganz würde ich dazu nicht sagen. Ich kann auch bei weitem 
nicht alles in VHDL realisieren ( könnte es aber gern :). Auch wenn ich 
noch nicht lange hier angemeldet bin, habe ich bereits feststellen 
müssen, dass viele einfach nur ihre "Hausaufgaben" gelöst haben wollen. 
Und das ist nun wirklich nicht der Sinn eines Forums. Übrigens ist das 
auch nicht Sinn eines Studiums das Lösen von Aufgaben anderen Leuten zu 
überlassen.

@Natalie
siehe plip ... zusätzlich: Wenn Dir klar ist was mit dem 
Teilerverhältnis anzustellen ist, dann hättest Du gar nicht nochmal 
fragen müssen. Denn bereits Klaus hatte die richtige Lösung gepostet.

Bücher lesen soll auch helfen ... ( War das jetzt wieder arrogant ? )

von Natalie (Gast)


Lesenswert?

Aber leute,wenn ich das Antwort kenne,würde ich nicht um hilfe bieten 
!!! VHDL ist in meiner Studium meine Schwachstelle,aber es bedeutet 
nicht dass ich in allen fächer schwach bin..und was ist schlimm daran 
wenn ich in einem Projekt,wo meine schwachstelle liegt,um hilfe 
biete??!!

Ich finde es sehr arrogant,wie die Menschen hier auf meine Frage 
reagiert haben,ich verlange nicht dass jemand für mich die Hausaufgabe 
macht,aber ich brauchte hilfe und hab zufählig dieses Forum in Imternet 
entdeckt und hab versucht..und lag völlig daneben! Aber die Leute 
nicht,die kein Bock haben,auf miene Frage zu antworten,aber trotzdem 
hinterlassen sie ein Ironisches Kommentar...

von Falk B. (falk)


Lesenswert?

@  Natalie (Gast)

>und was ist schlimm daran
>wenn ich in einem Projekt,wo meine schwachstelle liegt,um hilfe
>biete??!!

Nichts. Aber der Ton macht die Musik. Und deine bisherigen Postings 
lassen keine Eigeninitiative erkennen. Und das ist der Knackpunkt. Wenn 
du schreiben würdest, was du schon probiert hast und wie du es zu lösen 
versuchst, DANN kommen wir vielleicht ins Geschäft. Aber einfach nur die 
Aufgabenstellung aus dem Projekt abschreiben und hier reinstellen kommt 
gar nicht gut an.

>nicht,die kein Bock haben,auf miene Frage zu antworten,aber trotzdem
>hinterlassen sie ein Ironisches Kommentar...

Schon mal was von Netiquette gehört? Siehe oben.

MfG
Falk

von Gast (Gast)


Lesenswert?

>@ Natalie
>
>ÄÄÄÄTSCH gehe direkt ins Gefängnis, gehe nicht über Los und ziehe auch
>keine Projektarbeitsnote ein ...

Das ist schon sehr gehässig, aber auch ich muss sagen, daß es einfach 
nicht sein kann, daß wegen jeder Dümpelaufgabe 100 Leute im Forum 
angehauen werden. Klar, dass da keiner antwortet.

Da hilft es auch nichtm wenn man sich als Frau ausgibt, liebe(r) 
"Natalie".

Helfen kann da nur der Kommillitone oder der Prof. Sowas muss man selber 
mal schreiben und sich per Simulation herantastet. Sonst wird das 
nichts.

Lernen heisst nicht, "irgendowo zusammenklauben", sondern "ERARBEITEN"

Da steckt das Wort ARBEITEN drin.

ARBEITEN und LERNEN, sagt der Latiner!

Wenn man allerdings auf so eine Lösung nicht intuitiv kommt (Teiler 
berechnen, runden, Relevanz des Rundungsfehlers abschätzen, Code 
herstellen und test) dann rate ich schnell zu einem anderen Job.

von gast (Gast)


Lesenswert?

>> Da hilft es auch nichtm wenn man sich als Frau ausgibt, liebe(r) "Natalie".
hehe genau das hab ich mir auch gedacht g

von Natalie (Gast)


Lesenswert?

Erstens lieber Falk,ich hab nicht einfach die Aufgabenstellung im Forum 
geschrieben..es ist nur ein Teil von meinem Projekt,und die ist die 
RS232 schnittstelle..Das andere Teil von Projekt habe ich schon 
gemacht,hatte dabei probleme aber am ende hab ich geshafft,nur beim 
Frequenzteilen könnte ich nicht weiter kommen,dann habe ich versucht in 
diesem netten Forum!
Natürlich für die Leute,die sich sehr gut in VHDL kennen,werden meine 
Frage blöd finden,aber sie sollen einbisschen daran denken,dass man sich 
nicht in allem auskennt.was für dich kinderleicht ist könnte für einen 
anderen sehr schwer sein und umgekehrt..

von Natalie (Gast)


Lesenswert?

und ich gebe mich nicht als Frau aus...ihr seid aber echt lächerlich 
hier ! wie seid ihr "gast" und "Gast" dazu gekommen? oder wollt ihr euch 
nur so als kluge menschen in diesem forum darstellen?

von Stefanie B. (sbs)


Lesenswert?

Falk Brunner wrote:
>
> Schon mal was von Netiquette gehört? Siehe oben.
>
> MfG
> Falk

Wie waere es, wenn der Artikel Netiquette o. Ä. angelegt wird?

Dann kann bei einigen Posts direkt wie bei Bildformate darauf 
verwiesen werden

-stef

von gast (Gast)


Lesenswert?

>> und ich gebe mich nicht als Frau aus...ihr seid aber echt lächerlich
>> hier ! wie seid ihr "gast" und "Gast" dazu gekommen?
Erfahrungswerte. Wenn es um Hausaufgaben/Uniaufgaben geht, die Zeit 
knapp
ist und nur die Aufgabe gepostet wird, trifft man sehr oft auf 
Frauennamen.
Gerne auch mal mit Mailadresse die sich per google einem Mann zuordnen 
lässt.
Danach kommen dann Ausreden wie blabla is von meinem Freund usw.
klar... ^^
Viele hoffen wohl auf den Frauenbonus / bzw darauf einen Beschützer- bzw 
Helferinstinkt zu wecken lol

Abgesehen davon will ich mal nicht so sein: einfach zb mal nach
uart fpga
googeln und gucken wie es andere lösen und dann selber implementieren.
Da bekommt man auch als Anfänger schnell eine Idee wie das ganze
implementiert wird und (vorsicht!) lernt evtl noch was dabei ;)

von Falk B. (falk)


Lesenswert?

@ Natalie (Gast)

>Erstens lieber Falk,ich hab nicht einfach die Aufgabenstellung im Forum
>geschrieben..es ist nur ein Teil von meinem Projekt,und die ist die
>RS232 schnittstelle..Das andere Teil von Projekt habe ich schon
>gemacht,hatte dabei probleme aber am ende hab ich geshafft,nur beim
>Frequenzteilen könnte ich nicht weiter kommen,dann habe ich versucht in
>diesem netten Forum!

Das kann ich mir nicht wirklich vorstellen. Wenn du schon andere Sachen 
in VHDL gemacht hast, dann ist der Frequenzteiler das kleinste Problem. 
Na, haben wir ein wenig geflunkert?
Was hast du denn schon in deinem Projekt gemacht?

>Natürlich für die Leute,die sich sehr gut in VHDL kennen,werden meine
>Frage blöd finden,aber sie sollen einbisschen daran denken,dass man sich
>nicht in allem auskennt.

Muss man auch gar nicht.

>was für dich kinderleicht ist könnte für einen
>anderen sehr schwer sein und umgekehrt..

Ja und? Was erwartest du konkret? Das es jemand fertig hinschreibt? 
Könnte ich, in drei Minuten. Mach ich aber nicht, weil mir deine 
Argumentation nicht überzeugend klingt. Von mir bekommt man Hilfe zur 
Selbsthilfe. Vorkauen tun andere.

Taktung FPGA/CPLD

@ Stefan B. (sbs)

>Wie waere es, wenn der Artikel Netiquette o. Ä. angelegt wird?

>Dann kann bei einigen Posts direkt wie bei Bildformate darauf
>verwiesen werden

Na dann fang mal an.

MFG
Falk

von Natalie (Gast)


Lesenswert?

Lieber Falk...ich glaube dir dass du die Lösung einfach in 3 min 
schreiben kannst..aber wenn du es nicht willst,warum schreibst du denn 
etwas hier?? meine frage war,ob jemand mir die Frage beantwort könnte. 
Nicht aber dass jemand,wie du,einfach sich meldet und sagt,"ICH KÖNNTE 
DIE FRAGE IN 3 MIN BEANTWORTEN ABER WILL ICH ES NICHT MACHEN" !!! wenn 
meine Argumente dich nicht überzeugt haben dann könntest du einfach von 
der seite raus und weiter nach anderen Fragen suchen...

von Thomas H. (mac4ever)


Lesenswert?

DIE ANTWORT WURDE SCHON MEHRFACH GENNANT !!!

Und so ganz nebenbei ist Falk ein mehr als fähiger User in diesem Forum 
und gibt spitzen Hinweise und Tipps. Warum das in Deinem Fall nicht so 
ist, hat er mittlerweile ausführlich beantwortet ;)

Aber für ganz Faule:
1
        ENTITY frequenzteiler IS
2
        PORT (clock        : IN     bit ; 
3
              t_clk        : BUFFER bit ; 
4
              r_clk        : BUFFER bit ) ;
5
        END frequenzteiler ;
6
7
        ARCHITECTURE behaviour OF frequenzteiler IS
8
         BEGIN
9
          PROCESS
10
           VARIABLE count : integer RANGE 0 TO 2604 ;
11
           BEGIN
12
              WAIT UNTIL clock'event AND clock='1' ;
13
                 count := count+1 ; 
14
                 CASE count IS
15
                   WHEN 0       =>  r_clk <= NOT r_clk ;
16
                   WHEN 2604/2  =>  r_clk <= NOT r_clk ;
17
                   WHEN 2604    =>  count := 0;
18
                   WHEN OTHERS  => NULL ;
19
                   -- den restlichen Müll hab ich einfach mal entfernt ;)
20
                 END CASE ;
21
22
          END PROCESS;
23
        END behaviour;

Man glaubt es kaum, aber man muss 32 und 64 nur durch 1302 und 2604 
ersetzen. Das Leben eines Ingenieurs ist echt hart ....

von Falk B. (falk)


Lesenswert?

@ Thomas Hertwig (mac4ever)

>und gibt spitzen Hinweise und Tipps. Warum das in Deinem Fall nicht so
>ist, hat er mittlerweile ausführlich beantwortet ;)

Wenigsten einer, der es verstanden hat.

>Aber für ganz Faule:

Ob das pädagogisch gut ist? Naja.
Ausserdem ist der Code sehr akademisch, nicht wirklich ein gutes 
Beispiel.
Und er teilt fälschlicherweise durch 2605, nicht wie eigentlich 
gewünscht durch 2604. Ja, Null ist auch eine Zahl ;-)

MFG
Falk

von Mark E. (mark_e)


Lesenswert?

@Thomas

bist du gemein ....

von Thomas H. (mac4ever)


Lesenswert?

Falk Brunner wrote:
> Ausserdem ist der Code sehr akademisch, nicht wirklich ein gutes
> Beispiel.
> Und er teilt fälschlicherweise durch 2605, nicht wie eigentlich
> gewünscht durch 2604. Ja, Null ist auch eine Zahl ;-)

Ob der Code gut oder schlecht ist, sei mal dahin gestellt. Das ist der 
Code, den Natalie gepostet hat. Mit der 2605 hast Du natürlich recht 
also im Code ändern: 2603 ;)

von Karl Ranseier (Gast)


Lesenswert?

Wie soll den sowas synthetisieren ???

von Thomas H. (mac4ever)


Lesenswert?

Persönlich würde ich das auch nicht so lösen. Es ist das oben genannte 
Beispiel mit den korrigierten Werten. Über die Synthesefähigkeit hatte 
ich auch schon meine Zweifel geäußert.

von gast (Gast)


Lesenswert?

Ausserdem sind Variablen böse(TM) und hier total überflüssig...
Und, funktioniert nun alles ? Heute ist ja Abgabe (s.o.)

von Philip K. (plip)


Lesenswert?

gast wrote:
> Ausserdem sind Variablen böse(TM) und hier total überflüssig...
> Und, funktioniert nun alles ? Heute ist ja Abgabe (s.o.)

Warum sind Variablen böse? Meine haben mir noch nie was getan...
Aber mal im Ernst, ich arbeite in meiner Diplomarbeit recht viel mit 
Variablen, hab ich mir damit jetzt ein Ei gelegt?
Und warum ist der Code oben akademisch?

von Falk B. (falk)


Lesenswert?

@ Philip Kirchhoff (plip)

>Aber mal im Ernst, ich arbeite in meiner Diplomarbeit recht viel mit
>Variablen, hab ich mir damit jetzt ein Ei gelegt?

Kann passieren, wenn man nicht wirklich den Unterschied zu Signalen 
verstanden hat.

>Und warum ist der Code oben akademisch?

- buffer verwendet man nicht, weil das bisweilen Probleme in der 
Simulation macht. Nur out, und wenn intern die Variable gelesen werden 
muss halt ein internes Signal, das dem out Port zugewiesen wird
- Variablen sind hier nicht notwendig und eher ungünstig.
- bit als Datentyp verwendet man auch nicht, immer std_logic!
- wait hat in synthetisierbarem VHDL nichts zu suchen
- Wenn es *wirklich ein 50% Duty Cycle sein soll zählt man bis cnt/2 und 
toggelt, das ergibt einfachere Logik (und einen um ein Bit kleineren 
Zähler) als oben im Beispiel.

Also alle in allem eher so.
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
use IEEE.NUMERIC_STD.ALL;
4
5
ENTITY frequenzteiler IS
6
PORT (clock        : in  std_logic; 
7
      t_clk        : out std_logic; 
8
      r_clk        : out std_logic) ;
9
END frequenzteiler ;
10
11
ARCHITECTURE behaviour OF frequenzteiler IS
12
13
signal r_clk_int : std_logic;
14
signal count     : integer RANGE 0 to 2604/2;
15
16
BEGIN
17
18
  r_clk <= r_clk_int;
19
20
  PROCESS (clock)
21
  BEGIN
22
    if rising_edge(clock) then
23
      count <= count-1;
24
      if count=0 then
25
        count <= 1301;
26
        r_clk_int <= not r_clk_int;
27
      end if; 
28
    end if;
29
  END PROCESS;
30
31
END behaviour;


- Wahrscheinlich wird aber eher ein Clock Enable gebraucht, siehe

Taktung FPGA/CPLD


MFG
Falk

von Thomas H. (mac4ever)


Lesenswert?

Variablen haben das Problem, dass sie nicht wie ein Signal gepuffert 
sind. Wenn Du mehrere Berechnungen hintereinander ausführst, dann werden 
bei Signalen pro Takt eine Berechnung/Operation durchgeführt. Bei 
Variablen passiert alles in einem Takt. Dadurch kann es schnell mal zu 
Problemen mit dem Timing führen.

Bsp:
Mit Signalen
1
signal s1,s2,s3 : std_logic := '0';
2
3
s1<='1';
4
s2<=s1;
5
s3<=s2;
Takt 1: s1=1, s2=0, s3=0
Takt 2: s1=1, s2=1, s3=0
Takt 3: s1=1, s2=1, s3=1

Mit Variablen
1
variable v1,v2,v3 : std_logic := '0';
2
3
v1<='1';
4
v2<=v1;
5
v3<=v2;
Takt 1: v1=1, v2=1, v3=1

In diesem Beispiel ist das sicherlich noch unkritisch. Aber bei 
komplexen Berechnungen ( mul, add, usw. hintereinander ) kann es 
durchaus dazu kommen, dass das Ergebnis nicht zur nächsten Taktflanke 
bereitsteht. Somit hast Du einen schönen Datensalat .... mmh lecker :)

von Klaus F. (kfalser)


Lesenswert?

> In diesem Beispiel ist das sicherlich noch unkritisch. Aber bei
> komplexen Berechnungen ( mul, add, usw. hintereinander ) kann es
> durchaus dazu kommen, dass das Ergebnis nicht zur nächsten Taktflanke
> bereitsteht. Somit hast Du einen schönen Datensalat .... mmh lecker :)

Schmarrn, Käse ...
Ob die Ergebnisse zur nächsten Taktflanke bereitstehen hat überhaupt 
nichts mit Variablen zu tun, sondern mit der Komplexität der Logik.
Das kann mit Signalen genauso passieren.

Und um zu bemerken dass es passiert, teilt man dem Tool eben mit welche 
Taktfrequenz man erreichen will (Stichwort Constraints). Dann bekommt 
man eine Rückmeldung ob alles ok ist oder nicht.

von Thomas H. (mac4ever)


Lesenswert?

Natürlich kann das auch mit Signalen passieren. Hab ja auch nichts 
anderes behauptet. Ich wollte eigentlich nur verdeutlichen, dass die 
gleiche Abfolge von Befehlen und Zuweisungen im Quelltext keineswegs 
gleich mit Signalen und Variablen umgesetzt wird. Durch die 
Wiederverwendung von Ergebnissen als Eingang für die nächste Operation 
kann es so schnell zu Missverständnissen kommen, wenn man den 
Unterschied nicht kennt.

von Peter (Gast)


Lesenswert?

Natalie heißt bestimmt Orkan und hat in diesem Semester für das Projekt 
nichts getan.

Falks Meinung unterstütze ich zu 100%.

Ein Forum ist dazu da um zu helfen und nicht um Hausaufgaben zu 
erledigen. Wenn du mit dem Teilungsrest nichts anfangen könntest, wäre 
es verständlich, aber eine fertig geschriebene Aufgabe von jemand anders 
bringt dich auch nicht weiter.

Als ich studiert habe, war meine Projektaufgabe auch nicht schwer, doch 
weil ich nicht die Erfahrung mit VHDL hatte, musste ich schon paar 
Abende im Labor verbringen und das hat  mich in meinem Arbeitsleben 
weiter gebracht als ich dachte. Ohne VHDL, hätte ich jetzt keine Stelle 
in der jetzigen Firma bekommen.

von J. S. (engineer) Benutzerseite


Lesenswert?

>Das kann mit Signalen genauso passieren.

Das kann sogar NUR! mit Signalen passieren, da es synthesetechnisch 
keine Variablen gibt.

Abgesehen von dem Umstand, daß ich ebenfalls zu mehr Eigeninitiative 
rate, was das Lernen angeht, sei hier noch eine Anmerkung gebracht:

Mittels geeigneter PLL-Ketten kann man nahezu jede Frequenz aus einer 
anderen starr erzeugen, ohne den Rahmen, der einem von den PLLs 
vorgegeben wird, zu verlassen. Wenn also der Faktor 2406 nicht reicht, 
weil er zu ungenau ist, der kann die speisende Frequenz einfach per PLL 
hochsetzen, dann dann Teilen.

50MHz auf 19k2 -> X , dann mit k erweiten , bis Fehler klein genug. Hier 
ergibt sich durch eine einfache -> Primfaktorzerlegung, die man zu 
meiner Zeit noch im Kopf machen musste! die Wertefolge 5 und 6. Damit 
erhöhen wir einfach die 50 MHz auf PLL-intern 300 und Teilen 
anschließend durch 15625.

Das erspart krumme Werte. Die Idee hätte ich gerne auch in einem der 
Anwortbeiträge hier gelesen.

von Falk B. (falk)


Lesenswert?

@ Jürgen ... (engineer)

>Mittels geeigneter PLL-Ketten kann man nahezu jede Frequenz aus einer
>anderen starr erzeugen, ohne den Rahmen, der einem von den PLLs

Weil ja PLL-Ketten auch so unproblematisch sind.

>erhöhen wir einfach die 50 MHz auf PLL-intern 300 und Teilen
>anschließend durch 15625.

Eine einfache DDS ohne Sinustabelle ist kleiner und genauer.

>Das erspart krumme Werte. Die Idee hätte ich gerne auch in einem der
>Anwortbeiträge hier gelesen.

Wozu? Der Teilfaktor ist genau 2604,1666666666666666666666666667. Wenn 
man durch 2604 teilt ist das ein Fehler von "sagenhaften" 
0,0064004096262160778289810547875064% Das sollte für einen UART genügen. 
Pedanterie ist uncool, zumindest bei richtigen Ingenieuren (tm).

MfG
Falk

von Frank U. (Gast)


Lesenswert?

(Pedanterie) Waum ungenau , wenn es auch genau geht ?

von pingeliger Pedant (Gast)


Lesenswert?

Ja warum ungenau wenn es auch genau(er) geht? Wie genau ist denn der 
angeschlossene Quarz?

von Falk B. (falk)


Lesenswert?

@  Frank U. (Gast)

>(Pedanterie) Waum ungenau , wenn es auch genau geht ?

Klar, weil PLLs auch mal so hoppla hop gemacht sind und sooo einfach 
sind.

http://de.wikipedia.org/wiki/Pedanterie

MfG
Falk

von GeradeDu (Gast)


Lesenswert?

>Pedanterie ist uncool, zumindest bei richtigen Ingenieuren (tm).

Das schreibt ausgerechnet der größte Pedant des ganzen Boards... Ich 
sage nur "Bildformate"!

von Martin K. (mkohler)


Lesenswert?

GeradeDu wrote:
>>Pedanterie ist uncool, zumindest bei richtigen Ingenieuren (tm).
>
> Das schreibt ausgerechnet der größte Pedant des ganzen Boards... Ich
> sage nur "Bildformate"!

Falk schreibt seine Beiträge sehr problembezogen und zudem noch mit 
Anmeldung und nicht wie viele hier (leider) als anonymer Gast.
Ich schätze seine Beiträge und habe ihn bisher nicht als pedantisch 
erlebt.

von Silvan (Gast)


Lesenswert?

Unfassbar wohin die Diskussionen gehen! Was, wenn es nicht um eine 
lümmelligen UART geht, sondern einen genau benögtigten Takt? Dann ist 
die Idee doch gut. Wofür habe ich denn den ganzen Kram im FPGA, wenn ich 
ihn nicht nutze, sondern mich mit naheligenden Lösungen behelfe?

>Wie genau ist denn der angeschlossene Quarz?

Es geht oft genug um die Datenrate und einen stimiigen ganzzahligen 
Zusammenhang zwsichen erzeugendem Takt und sendendem Takt.

Was macht man z.B., wenn man von 50 MHz auf 16x192kHz raus will?

von pingeliger Pedant (Gast)


Lesenswert?

Wenn es um etwas anderes geht als einen 'lümmelligen UART' wird man neu 
überlegen müssen und wenns hochgenau sein muss evtl. was anderes nehmen 
als FPGA und Popelquarzoszillator.

Als Ingenieur hat man meist die Ausgabe eine Lösung für ein Problem mit 
bestimmten Randbedingungen (Genauigkeitsforderungen) aufwandsminimal zu 
lösen. Kommt ja auch niemand auf die Idee ein nur zu 3/4 gefülltes FPGA 
nochmal zu überarbeiten und die bislang 16 Bit breiten Datenpfade durch 
solche mit 19 Bit Breite zu ersetzen nur weil es dann irgendwo noch 
genauer wird.

Auf das feste Verhältnis zwischen Generatortakt und Sendetakt könnte man 
doch z.B. dadurch verzichten das die Datenquelle mit höherem Takt 
arbeitet und die Sendeschaltung dann jeweils ein neues Datenwort 
anfordert.

von Carsten Meyer (Gast)


Lesenswert?

>die bislang 16 Bit breiten Datenpfade durch
>solche mit 19 Bit Breite zu ersetzen

Doch das gibt es, ist mir schon untergekommen, daß Designs aufgebohrt 
wurden. Bei Windows ist das seit Jahren so, daß nur noch Kosmetik 
hinzukommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.