Devido a um problema na versão 23.2 ou mais recente do software Intel® Quartus® Prime Pro Edition, a largura de dados de acesso da CSR é alterada de 32 bits para 64 bits na Intel® FPGA IP R-Tile para Compute Express Link* (CXL*) tipo 2/3; isso causa uma incompatibilidade entre a função do driver de software e o projeto lógico de CSR do usuário.
Este problema não está previsto para ser corrigido em versões futuras do software Intel® Quartus® Prime Edition.
Para contornar esse problema, consulte o exemplo decódigo de ollowing :
1. Abrir /hardware_test_design/comum/ex_default_csr/ex_default_csr_avmm_slave.sv
2. Implemente a CSR com largura de dados de 64 bits em vez da largura de dados padrão de 32 bits.
Largura de dados de 64 bits
sempre @(posedge clk)
se (!reset_n) começar
ats_stu <= 5'b0;
ats_en <= 1'b0;
ptm_eg <= 8'b0;
ptm_rs <= 1'b0;
ptm_en <= 1'b0;
final se (gravação &config_access)iniciar
caso (endereço[20:0])
21'h00E00: comece
ats_stu <= writedata[60:56];
ats_en <= writedata[63];
Final
21'h00E18: comece
ptm_eg <= writedata[15:8];
ptm_rs <= writedata[1];
ptm_en <= writedata[0];
Final
Padrão;
endcase
Final
Lógica de leitura
sempre @(posedge clk)
se (!reset_n) começar
cfg_readdata <= 64'h0;
caso contrário, se (leitura&config_access) começar
caso (endereço[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}};
padrão: cfg_readdata <= {32'b0 ,32'hffff_ffff };
endcase
end else começar
cfg_readdata <= 64'h0;
Final