Problema crítico
Debido a un problema en la versión 19.3 del software Intel® Quartus® Prime Pro Edition, cuando la IP de Intel® P-Tile/H-Tile Avalon® Memory Mapped (Avalon-MM) para PCI Express está configurada con varios BAR de diferente tamaño, la dirección superior de BAM no está enmascarada correctamente según el tamaño del BAR. Si el sistema no alinea la dirección física del BAR con el tamaño de BAR más alto, el campo de dirección en el tamaño del lado del usuario será incorrecto.
Por ejemplo, para BAR0: 64 KB y BAR2: 1 MB, el sistema asigna la siguiente dirección física:
F021000 para BAR0
F020000 para BAR2
La dirección de BAM es de 20 bits
Cuando el sistema emite una solicitud de escritura o lectura dirigida a 0x800 de compensación BAR0, la interfaz de BAM generará direcciones 0x10800 en lugar de 0x00800
Para evitar este problema para el software Intel® Quartus® Prime Pro Edition versión 19.3 y 19.4, la aplicación puede implementar externamente el enmascaramiento de direcciones utilizando el conducto BAM BAR (bam_bar_o) y el tamaño BAR.
Para el ejemplo anterior:
asignar bam_address_fix = (bam_bar_o== 3'b000) ? {4'b0, bam_address_o [15:0]} : bam_address_o;
Este problema se corrigió en la versión 20.1 del software Intel® Quartus® Prime Pro Edition.