Forum: FPGA, VHDL & Co. NPI PIM read


von seltene Erde (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

weiß jmd wie NPI-PIM für Xilinx mpmc geht? ( siehe Anhang)
Ich brauche nur den Lesevorgang. Leider sind alle Daten, die ich 
rauslese immer 0. Obwohl überprüft an der Adresse richtige Daten liegen.
Wahrscheinlich verpasse ich das kurze Fenster in dem die PIM-Daten 
anliegen.
Ich habe auch schon beide Möglichkeiten probiert, ob PIM das 
höchstwertige Bit auf 0 oder 31 sieht. Beides mal lese ich 0.

Kann jmd was zu dem vhdl-Code sagen?
Wahrscheinlich muss ich irgendwas kombinatorisch machen. Aber der Code 
läuft zumindest alle Zustände ab...
1
when req_data =>
2
  PIM_Addr    <= addr;          
3
  PIM_AddrReq <= '1';
4
  PIM_RNW     <= '1';
5
  if PIM_AddrAck = '1' then
6
    cnt_latency <= unsigned(PIM_RdFIFO_Latency);
7
    state   <= recv_data;
8
  end if;
9
        
10
when recv_data =>
11
  PIM_AddrReq <= '0';
12
  PIM_RNW     <= '0';
13
  if PIM_RdFIFO_Empty = '1' then
14
    PIM_RdFIFO_Pop <= '0';
15
  else
16
    PIM_RdFIFO_Pop <= '1';
17
    if cnt_latency = 0 then
18
      data  <= PIM_RdFIFO_Data;
19
      state <= shift2strm;
20
    else
21
      cnt_latency   <= cnt_latency - 1;
22
      state     <= recv_late_data;
23
    end if;
24
  end if;
25
        
26
when recv_late_data =>
27
  PIM_RdFIFO_Pop <= '0';
28
  if cnt_latency = "00" then
29
    data    <= PIM_RdFIFO_Data;
30
    state   <= shift2strm;
31
  else
32
    cnt_latency <= cnt_latency - 1;
33
  end if;
34
          
35
when fertig =>
36
  PIM_RdFIFO_Pop <= '0';
37
  ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.