Multiplexer der mit dem Mastertakt

Gast #1494799
Lesenswert?

Hallo Leute ,

ich brauche einen Multiplexer der mit dem Mastertakt (100MHz )arbeitet.

so in etwa:

MUX <= chanal_1 WHEN CLK_100 = '0' ELSE chanal_1;


Beim kompilieren reduziert er mir dann hinten dran alles weg.

Weil es ein Takt ist?


Vielen Dank schon mal für Eure Antworten :)

Gruß
Gast #1494858
Lesenswert?

Sieht nach einem typischen Copy'nPaste Fehler aus.
Du willst wohl zwischen zwei Kanälen umschalten aber in:

MUX <= chanal_1 WHEN CLK_100 = '0' ELSE chanal_1;

wird, unabhängig von CLK_100 immer der selbe Kanal ausgewählt.
Da hilft auch ein Prozess nicht weiter. ;-)
Moderator (Firma: Titel) Persönliche Seite #1494865
Lesenswert?

> MUX <= chanal_1 WHEN CLK_100 = '0' ELSE chanal_1;
> Beim kompilieren reduziert er mir dann hinten dran alles weg.
> Weil es ein Takt ist?
Nein, weil es egal ist.
So wie es da steht, wird entweder oder chanal_1 an Mux zugewiesen.

Als Prozess geschrieben sieht das so aus:
1
Process(CLK_100) 
2
BEGIN
3
  IF(CLK_100='1')THEN
4
    MUX <= chanal_1;
5
  ELSE
6
    MUX <= chanal_1;
7
END PROZESS;

Das hier wäre ganz was anderes:
MUX <= chanal_1 WHEN CLK_100 = '0' ELSE chanal_2;


Es ist sehr schlechte Designpraxis, einen Takt als Selektor eines 
Multiplexers zu verwenden. Das kann hübsch ins Auge gehen.
Ich würde hier eher ein DDR-FF am Ausgang benützen.

BTW:
> chanal_1
Was ist denn das bitte für ein deunglisches Konstrukt?
Entweder hast du einen Kanal oder einen channel.
Gast #1494866
Lesenswert?

Hallo Fump,

>Sieht nach einem typischen Copy'nPaste Fehler aus.

Du hast recht "Copy'nPaste Fehler ".

MUX <= chanal_0 WHEN CLK_100 = '0' ELSE chanal_1;
Wäre es sonst Ok?


Oder bekomme ich Probleme wenn ich die Pegel von einem Takt abfrage?

Gruß
Persönliche Seite #1494876
Lesenswert?

leini schrieb:
> Oder bekomme ich Probleme wenn ich die Pegel von einem Takt abfrage?
Doch, prinzipiell geht das schon. Du solltest dir allerdings bewusst 
sein, dass MUX sich erst kurz nach der Änderung des Taktsignals 
ändert. Wenn du das MUX-Signal dann z.B. in ein taktflankengesteuertes 
FlipFlop übernehmen willst, übernimmt das FlipFlop immer den Pegel, den 
MUX in der Zeit kurz vor der jeweiligen Flanke hatte, und nicht den 
Wert, auf den es mit der Flanke umschaltet. Das würde allerdings auch 
nicht so recht Sinn machen, denn ein FlipFlop kann eh nur entweder mit 
der fallenden oder der steigenden Flanke schalten, nicht beides, 
sodass es im Endeffekt immer den gleichen Channel speichern würde.

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