Multiplexer für I2S, gleiche Durchlaufverzögerung sicherstellen

Gast #2428691
Lesenswert?
• ▲
▼
Hallo Forum,

ich habe folgendes Problem. Ich habe eine Aufgabe, auf einem MAX V CPLD 
von Altera u.a. einen Multiplexer für I2S zu implementieren. Die entity 
dazu sieht wie folgt aus:
1
entity i2s_multiplexer
2
    port
3
    (
4
        S: in std_logic_vector(1 downto 0);    -- Select
5

6
        A_BIT_CLK: in std_logic;    -- I2S bus A
7
        A_LR_CLK: in std_logic;
8
        A_SDATA: in std_logic;
9

10
        B_BIT_CLK: in std_logic;    -- I2S bus A
11
        B_LR_CLK: in std_logic;
12
        B_SDATA: in std_logic;
13

14
        C_BIT_CLK: in std_logic;    -- I2S bus A
15
        C_LR_CLK: in std_logic;
16
        C_SDATA: in std_logic;
17

18
        Q_BIT_CLK: out std_logic;    -- Output of the multiplexer
19
        Q_LR_CLK: out std_logic;
20
        Q_SDATA: out std_logic
21
    );
22
end entity;
Die Signale A_*, B_*, C_* und Q_* sind direkt mit den Pins des CPLDs 
verbunden. Der Multiplexer ist rein kombinatorisch implementiert.
Gibt es eine Möglichkeit, die Verzögerung der Signale z.B. A_* zu den 
entsprechenden Signalen Q_* vorzugeben? Ich habe Angst, dass z.B. 
A_BIT_CLK im Multiplexer zwar richtig durchgereicht wird, aber zu stark 
verzögert wird im Vergleich zu A_LR_CLK und A_SDATA, so dass es Audio 
Störungen geben wird. Kann man vielleicht in Quartus II dafür irgendwie 
irgendwas einstellen? SDC, Timing Constraints?

Danke,
Alex
Moderator (Firma: Titel) Persönliche Seite #2428981
Lesenswert?
• ▲
▼
alex schrieb:
> Ich habe Angst, dass z.B.
> A_BIT_CLK im Multiplexer zwar richtig durchgereicht wird aber zu stark
> verzögert wird im Vergleich zu A_LR_CLK und A_SDATA, so dass es Audio
> Störungen geben wird.
In einem CPLD hast du idR. definierte maximale Durchlaufzeiten. Und die 
sind einiges schneller, als du mit I2S (mit max. 6MBit/s) brauchen 
wirst...
Gast #2429325
Lesenswert?
• ▲
▼
Der TimeQuest Timing Analyser von Quartus II hat mir die Zeiten zwischen 
etwa 5 ns und 16 ns berechnet - im gesamten Temperaturbereich von -40° 
bis +125° C, wenn ich es richtig verstanden habe. Die maximale 
Durchlaufzeit ist so gesehen definiert, aber schwankt irgendwie um bis 
zu 11 ns :(
Moderator (Firma: Titel) Persönliche Seite #2429357
Lesenswert?
• ▲
▼
alex schrieb:
> Die maximale Durchlaufzeit ist so gesehen definiert,
> aber schwankt irgendwie um bis zu 11 ns :(
Allerdings hast du 3 Punkte auf deiner Seite:
1. ALLE Signale müssen durch einen jeweils GLEICHEN Multiplexer
   --> alle Mutliplexer werden abhängig von der Chiptemperatur um
       den selben Faktor schneller oder langsamer
2. Du bist auch mit 11ns Laufzeitunterschied weit im grünen Bereich
   --> 6MHz wären ja 166ns, da gehen die 11ns im Jitter unter

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