Pulsgenerator für Baudrate

Gast #508184
Lesenswert?

@udo

>Ich benötige für die Baudrate: 9600Hz eine Pulsfrequenz von 65
>(10Mhz/(16 * 9600 Baud)) . Wie erzeuge ich mir die am einfachsten?

Mit nem Zähler?

signal cnt : std_logic_vector(6 downto 0);
signal baud_pulse : std_logic;

process(clk)
begin
  if rising_edge(clk) then
    cnt <= cnt +1;
    if cnt=64 then
      cnt <= (others =>'0');
      baud_pulse <= '1';
    else
      baud_pulse <= '0';
    end if;
  end if;
end process;

MfG
Falk
Gast #508999
Lesenswert?

@udo

>den Grundgedanken dahinter verstehe ich auch. Aber wie realisiere ich es
>am Besten in Schematik da ich leider wenig vhdl verstehe.

Ganz genauso. Ein Zähler wird bei erreichen von 64 synchron 
zurückgesetzt.
Das Rücksetzsignal ist gleichzeitig dein Baudraten-Clock-Enable (najs, 
keine schönes Wort). Sinnvollerweise sollte das Baudraten-Clock-Enable 
noch über ein FlipFlop retimed werden.

Du brauchst also

- 1x 7 bit Zähler mit synchronem Reset
- 1x 7 bit Comparator
- 1x FlipFlop

MFG
Falk
Gast #509112
Lesenswert?

Hi Rick,
du hast warscheinlich recht. Befasse mich mit FPLA erst seit letzter 
Woche und bis jetzt reicht die Schaltplaneingabe für mich aus. Außerdem 
ist es bei einfachen Sachen für mich übersichtlicher.

Udo
Gast #509941
Lesenswert?

@udo

>beim übersetzen des Programmes bekomme ich den Fehler das Spartan 3
>keine 16x9 bbfifo Buffer unterstützt?

Klingt nach Picoblaze und Xapp 233. Da fehlt wahrscheinlich die *.edn 
Datei im Projektverzeichnis. Oder der VHDL-Code (da gibt es verschiedene 
Versionen).

>Was jetzt machen Chip ändern oder???

Nein, die Dateien ins Projektverzeichnis kopieren.

MFG
Falk

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