Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Technische Informatik » Baudratengenerator in VHDL » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Baudratengenerator in VHDL
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
deppensido
Doppel-As


Dabei seit: 23.12.2012
Beiträge: 144

Baudratengenerator in VHDL Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

ich versuche einen Baudratengenerator in VHDL zu beschreiben, welcher das
Signal Tick mit einer Frequenz von 9600Hz steuert. Dabei hat das clk Signal eine Frequenz von 50MHz. Daher habe ich ein Signal Counter deklariert, welcher das Signal tick auf 1 setzen soll, wenn Counter = 5208 gilt (50MHz / 9600Hz = 5208,33). Allerdings funktioniert es überhaupt nicht, wie die Simulation gezeigt hat. Im folgenden der Code. Ich hoffe mir kann jemand weiterhelfen, es bleibt nicht mehr allzu viel Zeit für die Aufgabe. Endziel soll ein UART-Transmitter werden, aber dazu muss erst mal der Baudratengenerator funktionieren.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
entity Baudratengenerator is
    Port ( clk : in  STD_LOGIC;
           rst : in  STD_LOGIC;
           tick : out  STD_LOGIC);
end Baudratengenerator;

architecture Behavioral of Baudratengenerator is
signal counter : integer;
begin
	P1: Process(clk, rst)
	begin
		if clk'event and clk = '1' then
			if rst = '1' then
				tick <= '0';
				counter <= 0;
			else
				counter <= counter + 1;
				if counter = 5208 then
					tick <= '1';
					counter <= 0;
				else 
					tick <= '0';
				end if;
			end if;
		end if;
	end Process;
end Behavioral;


bei rst = 1 soll alles resetted werden. Ich hoffe mir kann jemand weiterhelfen.

Grüße
01.07.2013 00:02 deppensido ist offline Beiträge von deppensido suchen Nehmen Sie deppensido in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Beachte Zeile 11, ich habe dir den counter initialisiert.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
library ieee;
use ieee.std_logic_1164.all;

entity Baudratengenerator is
    Port ( clk : in  STD_LOGIC;
           rst : in  STD_LOGIC;
           tick : out  STD_LOGIC);
end Baudratengenerator;

architecture Behavioral of Baudratengenerator is
signal counter : integer := 0;
begin
	P1: Process(clk, rst)
	begin
		if clk'event and clk = '1' then
			if rst = '1' then
				tick <= '0';
				counter <= 0;
			else
				counter <= counter + 1;
				if counter = 5 then
					tick <= '1';
					counter <= 0;
				else 
					tick <= '0';
				end if;
			end if;
		end if;
	end Process;
end Behavioral;


__________________
Syntax Highlighting fürs Board (Link)
01.07.2013 14:33 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
deppensido
Doppel-As


Dabei seit: 23.12.2012
Beiträge: 144

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

danke für die Verbesserung. Ich hatte versucht den Counter zu initialisieren, wusste aber nicht wie es geht. Ich bin allerdings davon ausgegangen, dass es egal sei, da ich dachte, dass der ohnehin vom System her Initial auf 0 gesetzt werden würde. Wäre der Baudratengenerator jetzt richtig?

Grüße
01.07.2013 17:30 deppensido ist offline Beiträge von deppensido suchen Nehmen Sie deppensido in Ihre Freundesliste auf
deppensido
Doppel-As


Dabei seit: 23.12.2012
Beiträge: 144

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

warum hast du in Zeile 21 if counter = 5 anstelle 5208 benutzt? Oder hast du dich da vertan? Weil für eine Frequenz von 9600Hz bei 50MHz des Clock signals müsste man doch 50 Millionen durch 9600 teilen und man erhält dann 5208,33 weshalb da doch 5208 stehen müsste.

Grüße
01.07.2013 17:35 deppensido ist offline Beiträge von deppensido suchen Nehmen Sie deppensido in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe das Wort "Baudratengenerator" heute zum ersten Mal gehört. Falls das soviel heißt, wie Frequenzgenerator, dann ist es jetzt richtig. Beachte aber, dass in [0..5208] 5209 Zahlen sind.

Zitat:
warum hast du in Zeile 21 if counter = 5 anstelle 5208 benutzt?

Ich wollte in meiner Simulation sehen, ob es dann funktioniert, das geht bei 5208 nicht so gut.

__________________
Syntax Highlighting fürs Board (Link)
01.07.2013 17:46 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
deppensido
Doppel-As


Dabei seit: 23.12.2012
Beiträge: 144

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hallo,

ja ich denke, dass heißt soviel wie Frequenzgenerator. Es soll in einem Takt von 9600Hz das Signal tick auf 1 gesetzt werden. Dieser wird später für den Transmitter benötigt. Es soll ja ein UART-Transmitter werden.
Ich werde dann 5208 lassen und zum testen gegebenenfalls mal auf 5 wechseln für die Counterabfrage.

Ansonsten vielen Dank für deine Hilfe, jetzt kann ich endlich mit dem Transmitter anfangen. smile

Grüße
01.07.2013 20:37 deppensido ist offline Beiträge von deppensido suchen Nehmen Sie deppensido in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Technische Informatik » Baudratengenerator in VHDL