【INTEL(ALTERA)】 quartus使用Compute Express Link(CXL) 设计示例的 R-Tile IP 的 CSR 相关问题

说明

由于英特尔® Quartus® Prime 专业版软件 23.2 及更高版本存在问题,面向 Compute Express Link* (CXL*) Type2/3 设计示例 R-Tile 英特尔® FPGA IP中的 CSR 访问数据宽度从 32 位更改为 64 位;这会导致软件驱动程序功能与用户 CSR 逻辑设计不匹配。


解决方法

此问题不计划在 英特尔® Quartus® Prime 版软件的未来版本中修复。

要变通解决此问题, 请参阅 f违规代码 示例:

1. 打开 / hardware_test_design/common/ex_default_csr/ex_default_csr_avmm_slave.sv

. 使用 64 位数据宽度而不是标准的 32 位数据宽度实现 CSR 。

64 位数据宽度
始终 @(posedge clk )
if (!reset_n) 开始
ats_stu <= 5'b0;
ats_en <= 1'b0;
ptm_eg <= 8'b0;
ptm_rs <= 1'b0;
ptm_en <= 1'b0;
结束否则如果(写入&config_access)开始
案例(地址[20:0])
21'h00E00 : 开始
ats_stu <= 写入数据[60:56];
ats_en <= 写入数据[63];
结束
21'h00E18 : 开始
ptm_eg <= 写入数据[15:8];
ptm_rs <= 写入数据[1];
ptm_en <= 写入数据[0];
结束
默认;
端部
结束

读取逻辑
始终 @(posedge clk )
if (!reset_n) 开始
cfg_readdata <= 64'h0;
end else if(read&&config_access)begin
案例(地址[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}};
默认值 : cfg_readdata <= {32'b0 ,32'hffff_ffff };
端部
结束否则开始
cfg_readdata <= 64'h0;
结束

猜你喜欢

转载自blog.csdn.net/sqqwm/article/details/134995857