ID do artigo: 000080843 Tipo de conteúdo: Solução de problemas Última revisão: 05/05/2021

Por que o Intel® Arria® 10 e Intel® Cyclone® interface 10 Avalon®-ST para o acesso ao espaço de configuração de camada de transação PCI Express* não é estável?

Ambiente

    Intel® Quartus® Prime Pro Edition
    Intel® Quartus® Prime Standard Edition
    Hard IP para PCI Express* Intel® Arria® 10 Cyclone® 10
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

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

Resolução

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

Produtos relacionados

Este artigo aplica-se a 2 produtos

FPGA Intel® Cyclone® 10 GX
FPGAs Intel® Arria® 10 e FPGAs SoC

1

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês governará e será a controle. Exibir a versão em inglês desta página.