PG153 (v3.2) 规定如下:
“AXI4-Lite 写访问寄存器由 32 位 AXI 写数据 (* _wdata ) 信号更新,并且不受 AXI 写数据选通 (* _wstrb ) 信号的影响。”
"The AXI4-Lite write access register is updated by the 32-bit AXI Write Data (* _wdata ) signal, and is not impacted by the AXI Write Data Strobe (* _wstrb ) signal."
这表明 IP 忽略了s_axi_wstrb信号。
然而,用户可能会遇到以下违规行为:
- 如果 CPU 将 0x04 写入 IPISR 寄存器,且 s_axi_wstrb=0xf,则可以切换 IPISR 的位 2。
- 如果 CPU 将 0x04 写入 IPISR 寄存器,且 s_axi_wstrb=0x3,则 IPISR 的位 2 无法 切换 。
- If the CPU writes 0x04 to the IPISR register with s_axi_wstrb=0xf, bit2 of the IPISR can be toggled.
- If the CPU writes 0x04 to the IPISR register with s_axi_wstrb=0x3, bit2 of the IPISR can NOT be toggled.
解决方案
一般而言,由于 IP 会忽略 s_axi_wstrb 信号,因此所有寄存器均由 32 位 s_axi_data 信号更新。
因此,用户应在其设计中使用 s_axi_wstrb=0xf。
对于需要在设计中使用 AXI Quad SPI IP 的 16 位/8 位 (s_axi_wstrb=0x3/0x1) 访问寄存器的用户,本答复记录提供了 Vivado 2018.3 版的补丁,以确保忽略 s_axi_wstrb 信号。