Kritisches Problem
Aufgrund eines Problems in der Intel® Quartus® Prime Pro Edition Software Version 19.3, wenn die Intel® P-Tile/H-Tile Avalon® Memory Mapped (Avalon-MM) IP für PCI Express mit mehreren BARs unterschiedlicher Größe konfiguriert ist, ist die BAM-Adresse oben nicht korrekt gemäß der BAR-Größe maskiert. Wenn das System die Physische Adresse der BARs nicht auf die höchste BAR-Größe ausrichtet, ist das Adressfeld auf der Benutzerseite falsch.
Für BAR0: 64 KB und BAR2: 1 MB weist das System beispielsweise die folgende physische Adresse zu:
F021000 für BAR0
F020000 für BAR2
DIE BAM-Adresse ist 20 Bit
Wenn das System einen für den BAR0-Offset-0x800 ausgerichteten Schreib- oder Leseanforderung ausgibt, wird die BAM-Schnittstelle 0x10800 anstelle von 0x00800
Um dieses Problem für die Intel® Quartus® Prime Pro Edition Softwareversion 19.3 und 19.4 zu beheben, kann die Anwendung die Adressmaskierung extern mit BAM BAR condstack (bam_bar_o) und BAR-Größe implementieren.
Für das oben beschriebene Beispiel:
assign bam_address_fix = (bam_bar_o== 3'b000) ? {4'b0, bam_address_o [15:0]} : bam_address_o;
Dieses Problem wurde in der Intel® Quartus® Prime Pro Edition Software Version 20.1 behoben.