Forum: FPGA, VHDL & Co. zwischen zwei clocks umschalten


von Mark H. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte zwischen zwei unterschiedlichen Takten hin-und herschalten. 
In meinem VHDL-Code synchronisiere ich erst auf einen Basistakt und will 
nun zwischen dem Takt1 und einem Takt2 wechseln.
Mit dem Auslösen des Triggersignals soll jeweils bei Triggersignal high 
bzw.low zwischen den beiden Takten hin-und her geschaltet werden. Das 
habe ich versucht zu machen, jedoch bekomme ich Glitches beim 
Umschalten.
Wie würde ich den sowas sauber lösen?

von Fpgakuechle K. (Gast)


Lesenswert?

Für Xilinx benutze BUFGMUX.

MfG,

von Mark H. (Gast)


Lesenswert?

Ja, habe leider nur einen Cyclone II von Altera auf meinem DE1 Board. 
Wie ist der BUFGMUX aufgebaut?

von Schlumpf (Gast)


Lesenswert?

Abgesehen davon, dass es vermutlich eine bessere Lösung für dein Problem 
gibt, als die Takte zu schalten, müsstest du auf jeden Fall auch deine 
Steuersignale synchronisieren

von Mark H. (Gast)


Lesenswert?

Also auch die nebenläufigen Anweisungen den Prozess packen?

von Schlumpf (Gast)


Lesenswert?

Mark H. schrieb:
> Also auch die nebenläufigen Anweisungen den Prozess packen?

Nein, nicht nur. Sondern wie du es mit deinen beiden Takten ja auch 
schon gemacht hast, auf den Systemtakt synchronisieren.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mark H. schrieb:
> Also auch die nebenläufigen Anweisungen den Prozess packen?
Das allein macht auf der Hardware keinen Unterschied!
Eine nebenläufige Anweisung ist (ein wenig vereinfacht und abgesehen von 
den unterschiedlichen Syntaxelementen) nichts anderes als ein Prozess 
ohne (bzw. mit impliziter) Sensitivliste. Das hier ist beide Male 
funktionell genau gleich und wird auch genau gleich in Hardware 
umgesetzt:
1
  -- mit Prozess
2
  process (a,b) begin
3
    z <= a+b;
4
  end ptorcess;
5
6
  -- nebenläufige Anweisung
7
  z <= a+b;

Beim Umschalten von Takten hast du kein VHDL-Problem, sondern ein 
Harwareproblem. Und genau dort muss es gelöst werden.

Wobei mich allerdings sehr interessieren würde:
Woher kommen die Takte?
Was soll damit passieren?
Welche Frequenz(en) haben die?
Wieviele Takte hast du insgesamt in deinem Design?

von Lattice User (Gast)


Lesenswert?

Gleich das erste Ergebnis in Google:

http://www.vlsi-world.com/content/view/64/47/

Ist zwar Verilog, aber einen guten Entwisckler sollte das egal sein.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Lattice User schrieb:
> Ist zwar Verilog, aber einen guten Entwickler sollte das egal sein.
Richtig: mir ist Verilog egal...  ;-)

> Gleich das erste Ergebnis in Google:
Das ist eine tolle Beschreibung für ein ASIC, die aber nicht unbedingt 
für die Umsetzung auf ein FPGA taugt, weil dort die Takterzeugung und 
-verteilung primär die Sache des FPGA-Herstellers ist. Der macht die 
Taktnetze und legt sie so aus, dass keine Race-Condition auftreten kann. 
Und der muss auch Takte umschalten können.

Beim ASIC ist das mein eigenes Problem, da bin ich selber der 
Hersteller...

von Lattice User (Gast)


Lesenswert?

Lothar Miller schrieb:
> Lattice User schrieb:
>> Ist zwar Verilog, aber einen guten Entwickler sollte das egal sein.
> Richtig: mir ist Verilog egal...  ;-)
>
>> Gleich das erste Ergebnis in Google:
> Das ist eine tolle Beschreibung für ein ASIC, die aber nicht unbedingt
> für die Umsetzung auf ein FPGA taugt, weil dort die Takterzeugung und
> -verteilung primär die Sache des FPGA-Herstellers ist. Der macht die
> Taktnetze und legt sie so aus, dass keine Race-Condition auftreten kann.
> Und der muss auch Takte umschalten können.

Stimmt natürlich, war aber nicht die ursprüngliche Frage, die aber ohne 
Zweifel falsch gestellt wurde.

Der Cyclone II kann es natürlich auch, siehe Fig. 7-11 im Handbuch. Wie 
man das in VHDL/Verlog verwendet wäre die eigentliche Frage gewesen. 
Kann ich aber nicht beantworteten.

/flame ON
Warum veröffentlichen FPGA Hersteller eigentlich Handbücher wenn sie 
keiner liest?
/flame OFF

von daniel__m (Gast)


Lesenswert?

Lattice User schrieb:
> /flame ON
> Warum veröffentlichen FPGA Hersteller eigentlich Handbücher wenn sie
> keiner liest?
> /flame OFF

Hypothese:
Weil die viel zu viele Seiten haben (mind 3stellig) und das Eigentliche 
oft "zwischen den Zeilen" steht? So zumindest meine Erfahrung bei Xilinx 
;). Da schieb ich das Lesen auch oft nach hinten raus.

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.