เนื่องจากปัญหาในซอฟต์แวร์ Intel® Quartus® Prime Pro Edition เวอร์ชัน 23.2 และใหม่กว่า ความกว้างข้อมูลการเข้าถึง CSR จะเปลี่ยนจากตัวอย่างการออกแบบ 32bit เป็น 64bit ใน R-Tile Intel® FPGA IP สําหรับ Compute Express Link* (CXL*) ตัวอย่างการออกแบบ Type2/3 ซึ่งทําให้ฟังก์ชันไดรเวอร์ซอฟต์แวร์และการออกแบบลอจิก CSR ของผู้ใช้ไม่ตรงกัน
ปัญหานี้ไม่ได้วางแผนที่จะได้รับการแก้ไขในรุ่นอนาคตของซอฟต์แวร์ Intel® Quartus® Prime Edition
หากต้องการหลีกเลี่ยงปัญหานี้ โปรดดู ตัวอย่างรหัสการผสมข้าม :
1.เปิด/hardware_test_design/ทั่วไป/ex_default_csr/ex_default_csr_avmm_slave ของ sv
2. ใช้ CSR ด้วยความกว้างข้อมูล 64 บิตมากกว่าความกว้างข้อมูล 32 บิตมาตรฐาน
ความกว้างข้อมูล 64 บิต
@(posedge clk) เสมอ
ถ้า (!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 <= writedata[60:56];
ats_en <= writedata[63];
สิ้น สุด
21'h00E18 : เริ่ม
ptm_eg <= writedata[15:8];
ptm_rs <= writedata[1];
ptm_en <= writedata[0];
สิ้น สุด
เริ่ม ต้น;
ด้านท้าย
สิ้น สุด
อ่านลอจิก
@(posedge clk) เสมอ
ถ้า (!reset_n) เริ่มต้น
cfg_readdata <= 64'h0;
สิ้นสุดอื่นๆ ถ้า(อ่าน config_access)
เคส(ที่อยู่[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;
สิ้น สุด