Aufgrund des falschen Referenzcodes von UG-01145_avst 2017.05.15 - 6.12.1 für Configuration Space Register Access Timing ist der Intel® Arria® 10 und Intel® Cyclone® 10 PCIe* Transaction Layer Configuration Space Nicht stabil. Dies liegt daran, dass die tl_cfg_* Schnittstelle durch Multi-Zyklus-Beschränkungen abgedeckt ist, der Code jedoch nicht mit diesem übereinstimmt.
Der Code lautet wie folgt:
immer @(posedge coreclkout_hip)
Beginnen
Adressänderungen erkennen
cfg_addr_reg[3:0] <= tl_cfg_add[3:0];
cfgctl_addr_change <= cfg_addr_reg[3:0] != tl_cfg_add[3:0];
...
Ende
Um dieses Problem zu umgehen, aktualisieren Sie den Referenzcode als UG-01145_avst | 2019.05.22 - 5.12.1 für den Zugriff auf das Konfigurationsraumregister.
Eine weitere Pipeline wird hinzugefügt, um Multi-Zyklus-Timing-Risiko zu vermeiden.
Der Code lautet wie folgt:
immer @(posedge coreclkout_hip)
Beginnen
tl_cfg_add_reg <= tl_cfg_add[0];
tl_cfg_add_reg2 <= tl_cfg_add_reg;
Ende
erkennen Sie die Adressänderung, um eine Datei zu generieren, um die Input32-Bit-Daten zu abtasten
immer @(posedge coreclkout_hip)
Beginnen
cfgctl_addr_change < = tl_cfg_add_reg2 != tl_cfg_add_reg;
cfgctl_addr_change2 < = cfgctl_addr_change;
cfgctl_addr_strobe <= cfgctl_addr_change2;
Ende