En raison d’un problème dans Intel® Quartus® version 23.2 et ultérieure du logiciel Prime Pro Edition, la largeur des données d’accès CSR passe de 32 bits à 64 bits dans l’exemple de conception Intel® FPGA IP R-Tile for Compute Express Link* (CXL*) Type2/3 ; Cela provoque une inadéquation entre la fonction du pilote logiciel et la conception logique CSR utilisateur.
Il n’est pas prévu de résoudre ce problème dans les futures versions du logiciel Intel® Quartus® Prime Edition.
Pour contourner ce problème, reportez-vous à l’exemple decode f ollowing :
1. Ouvrez / hardware_test_design/common/ex_default_csr/ex_default_csr_avmm_slave.sv
2. Implémentez le CSR avec une largeur de données de 64 bits plutôt que la largeur de données standard de 32 bits.
Largeur de données 64 bits
toujours @(posedge clk )
Si ( !reset_n) commence
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 : début
ats_stu <= writedata[60 :56] ;
ats_en <= données d’écriture[63] ;
Fin
21'h00E18 : début
ptm_eg <= writedata[15 :8] ;
ptm_rs <= writedata[1] ;
ptm_en <= writedata[0] ;
Fin
Par défaut;
Casse
Fin
Logique de lecture
toujours @(posedge clk )
Si ( !reset_n) commence
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}} ;
par défaut : cfg_readdata <= {32'b0 ,32'hffff_ffff } ;
Casse
fin sinon début
cfg_readdata <= 64'h0 ;
Fin