Aufgrund eines Problems in Intel® Quartus® Prime Pro Edition Softwareversion 23.2 und höher wurde die Breite der CSR-Zugriffsdaten im R-Tile Intel® FPGA IP für Compute Express Link* (CXL*) Type2/3 Designbeispiel von 32 Bit auf 64 Bit geändert. Dies führt zu einer Diskrepanz zwischen der Softwaretreiberfunktion und dem Entwurf der CSR-Logik des Benutzers.
Es ist nicht geplant, dieses Problem in zukünftigen Versionen der Intel® Quartus® Prime Edition-Software zu beheben.
Um dieses Problem zu umgehen, lesen Sie dasFollowing-Codebeispiel :
1. Öffnen Sie / hardware_test_design/common/ex_default_csr/ex_default_csr_avmm_slave.sv
2. Implementieren Sie die CSR mit einer Datenbreite von 64 Bit anstelle der standardmäßigen 32-Bit-Datenbreite.
64bit Datenbreite
immer @(posedge clk )
if (!reset_n) begin
ats_stu <= 5'b0;
ats_en <= 1'b0;
ptm_eg <= 8'b0;
ptm_rs <= 1'b0;
ptm_en <= 1'b0;
end else, if (write && config_access)begin
case(Adresse[20:0])
21'h00E00 : Beginn
ats_stu <= writedata[60:56];
ats_en <= writedata[63];
Ende
21'h00E18 : Beginn
ptm_eg <= writedata[15:8];
ptm_rs <= writedata[1];
ptm_en <= writedata[0];
Ende
Standard;
Endcase
Ende
Logik lesen
immer @(posedge clk )
if (!reset_n) begin
cfg_readdata <= 64'h0;
end else if(read&&config_access)begin
case(Adresse[20:0])
21'h00E00 : cfg_readdata <= {{ats_en,10'b0,ats_stu,16'h0020},EX_CAP_HEADER_ATS };
21'h00E04 : cfg_readdata <= {{ats_en,10'b0,ats_stu,16'h0020},32'b0} ;
21'h00E10 : cfg_readdata <= {EX_CAP_HEADER_PTM_CAP,EX_CAP_HEADER_PTM};
21'h00E14 : cfg_readdata <= {EX_CAP_HEADER_PTM_CAP,32'b0};
21'h00E18 : cfg_readdata <= {32'b0 ,{16'h0,ptm_eg,6'h0,1'b0,ptm_en}};
Standardwert: cfg_readdata <= {32'b0 ,32'hffff_ffff };
Endcase
Ende sonst beginnen
cfg_readdata <= 64'h0;
Ende