Devido ao código de referência errado de UG-01145_avst 2017.05.15 - 6.12.1 para o tempo de acesso do registro de espaço de configuração, o acesso ao espaço de configuração de camada de transação Intel® Arria® 10 e Intel® Cyclone® 10 PCIe* não será estável. Isso porque a interface tl_cfg_* é coberta por restrições de vários ciclos, mas o código não corresponde a ela.
O código é o seguinte:
sempre @(posedge coreclkout_hip)
Começar
detectar mudança de endereço
cfg_addr_reg[3:0] <= tl_cfg_add[3:0];
cfgctl_addr_change <= cfg_addr_reg[3:0] != tl_cfg_add[3:0];
...
Final
Para resolver este problema, atualize o código de referência como UG-01145_avst | 2019.05.22 - 5.12.1 para o tempo de acesso do registro de espaço de configuração.
Mais um pipeline é adicionado para evitar o risco de sincronização de vários ciclos.
O código é o seguinte:
sempre @(posedge coreclkout_hip)
Começar
tl_cfg_add_reg <= tl_cfg_add[0];
tl_cfg_add_reg2 <= tl_cfg_add_reg;
Final
detectar a alteração de endereço para gerar um estroboscar para amostrar os dados de entrada de 32 bits
sempre @(posedge coreclkout_hip)
Começar
cfgctl_addr_change <= tl_cfg_add_reg2 != tl_cfg_add_reg;
cfgctl_addr_change2 <= cfgctl_addr_change;
cfgctl_addr_strobe <= cfgctl_addr_change2;
Final