Aufgrund eines Problems in der Intel® Quartus® Prime Pro Edition Softwareversion 23.4 und früher gibt es keine ATS-Fähigkeitsregister (Address Translation Service) im Intel Agilex® 7 R-Tile Compute Express Link* (CXL) 1.1/2.0 FPGA, was eine erforderliche Funktion für den CXL.io Pfad ist, um eine virtuelle Adresse in eine physische Adresse gemäß der Compute Express Link* (CXL) Spezifikation zu übersetzen.
Dieses Problem wird in zukünftigen Versionen der Intel® Quartus® Prime Edition Software nicht behoben.
Um dieses Problem zu umgehen, implementieren Sie zusätzlichen RTL-Code, indem Sie die Beschreibung Intel Agilex® 7 im R-Tile Compute Express Link* (CXL) 1.1/2.0 FPGA IP Benutzerhandbuch wie folgt befolgen:
Mit IP können Sie PF1 ab Adresse 0xE00 erweiterte Funktionen hinzufügen. Das Designbeispiel enthält ein NULL-Konfigurationsregister für erweiterte Funktionen am Offset 0xE00, das die erweiterte Funktionskette beendet.
Weitere Informationen finden Sie im folgenden Codebeispiel:
1. Öffnen Sie / hardware_test_design/common/ex_default_csr/ex_default_csr_avmm_slave.sv.
2. Fügen Sie die ATS-Funktionsregister hinzu:
ATS 00E00+00E04
Reg [4:0] ats_stu;
Reg ats_en;
00E00 Capability Header
localparam EX_CAP_HEADER_ATS = 32'hE101000f;
00E04 Steuerung
{ats_en,10'h0,ats_stu,16'h0020}
immer @(posedge clk )
if (!reset_n) begin
ats_stu <= 5'b0;
ats_en <= 1'b0;
end else, if (write && config_access)begin
case(Adresse[20:0])
21'h00E04 : Beginn
ats_stu <= writedata[20:16];
ats_en <= writedata[31];
Ende
Standard;
Endcase
Ende
immer @(posedge clk )
if (!reset_n) begin
Lesedaten <= 32'h0;
end else if(read&&config_access)begin
case(Adresse[20:0])
21'h00E00 : readdata <= EX_CAP_HEADER_ATS;
21'h00E04 : readdata <= {ats_en,10'b0,ats_stu,16'h0020} ;
Standard: readdata <= 32'hffff_ffff;
Endcase
Ende