64 Bit zu 4*16 Bit Schieberegister

Gast #988171
Lesenswert?
• ▲
▼
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

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