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

2023-12-23 20:34:50

说明

由于英特尔? 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

2?. 使用?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;
结束

文章来源:https://blog.csdn.net/sqqwm/article/details/134995857
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。