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