Hallo,
ich habe hier ein Problem mit einem Shiftregister!? Ich moechte aus
einem 64 Bit breiten Fifo auslesen und die ersten 16 Bit verwenden, dann
schieben und die naechsten 16 Bit auslesen usw.. Versucht habe ich es
wie folgt:
1 | prc1:
|
2 | ...
|
3 | when READ =>
|
4 | EP68_RD <= "00";
|
5 | if WORD_OUT = 1 then -- Reset Value von WORD_OUT ist '1'
|
6 | if USB_ADR_I(0) = '0' then
|
7 | -- read data from EP6
|
8 | EP68_RD <= "10";
|
9 | LOCAL_RD_DATA <= EP6_DATA_O;
|
10 | end if;
|
11 | ...
|
12 | prc2:
|
13 | ...
|
14 | if Q_S = READ then
|
15 | if EP68_RD /= "00" then
|
16 | EP_RD_DATA <= LOCAL_RD_DATA
|
17 | end if;
|
18 | if CNT_SHIFT_O /= "11" then
|
19 | WORD_OUT <= '0';
|
20 | S_USB_DATA <= EP_RD_DATA(63 downto 48);
|
21 | EP_RD_DATA <= EP_RD_DATA(47 downto 0) & x"0000"
|
22 | CNT_SHIFT_O <= CNT_SHIFT_O + 1;
|
23 | else
|
24 | CNT_SHIFT_O <= (others => '0');
|
25 | WORD_OUT <= '1';
|
26 | end if;
|
27 | ...
|
Kompilieren tut es aber irgendwie meckert Synplify rum:
Pruning Register S_USB_DATA
Pruning Register EP_RD_DATA
Optimizing register S_USB_DATA to a constant 0
Irgendwie vermute ich, dass ich total auf dem Schlauch stehe und es nen
dummer Fehler ist. Es waere super wenn mir jmd helfen koennte.
Beste Grusse
Stephan