团队:站着撸代码
ICB总线总的可以分为命令通道和响应通道,主机通过ICB总线向从机发送命令,从机通过ICB总线响应主机,如下图所示
如下是往ICB总线上挂载AXI Peripheral的例程,通过下面的例子来讲述ICB总线应用。
下图向ICB总线上挂载AXI Peripheral。
命令通道有:
①expl_axi_icb_cmd_valid; (主设备发送读写请求信号)
②expl_axi_icb_cmd_ready; (从设备返回读写接受信号)
③expl_axi_icb_cmd_addr; (主设备发送读写地址)
④expl_axi_icb_cmd_read; (主设备发送读/写模式)
⑤expl_axi_icb_cmd_wdata; (主设备写数据通道)
⑥expl_axi_icb_cmd_wmask;(写数据掩码)
命令通道:
①expl_axi_icb_rsp_valid;(从设备发送读写反馈请求信号)
②expl_axi_icb_rsp_ready;(主设备返回读写反馈接受信号)
③expl_axi_icb_rsp_err;(读写反馈错误标志信号)
④expl_axi_icb_rsp_rdata;(读反馈数据)
如下图所示,将icb转AXI的IP外设挂载到总线ICB上。
下面是通过ICB读写的时序,
写时序
读时序
从上面的读写时序可知,ICB的读写有两次握手,一次是主机发起读写请求,然后从机响应。另一次是从机发起读写反馈请求,主机响应。两次握手结束也就意味着完成一次读写。
通过NucleiStudio SDK使用如下的代码即可测试ICB总线传输。