"); //-->
TP854 涵盖了设置寄存器的任务
一般来说,有两种方法来处理传入的通道——有和没有skid buffer s。使用skid buffer,你的 slave 将能够实现更低的延迟和更高的吞吐量。如果没有skid buffer,你的 slave 将有更少的逻辑和只有 50% 的吞吐量,但它仍然是一个有效的 AXI-Lite slave。
在本节中,我们将研究如何以简单的方式处理这些握手——不使用任何滑动缓冲区。
让我们再次从写入端开始。我们将在此处遵循(并修复)Xilinx 的示例,并且仅在和都 为真S_AXI_AWREADY时才引发。这会将两个通道同步在一起——这是任何 AXI 从设备的重要组成部分。S_AXI_AWVALIDS_AXI_WVALID
这个逻辑的初稿可能看起来像,
initial axil_awready = 1'b0; always @(posedge S_AXI_ACLK) axil_awready <= (S_AXI_AWVALID && S_AXI_WVALID);
虽然这可能在大多数时候都有效,但它不会一直有效。
事实上,如果我们要像这样保留这个逻辑,那么我们就会犯Xilinx 在其核心. 问题是我们没有检查背压。因此,让我们将检查添加到我们的逻辑中,并确保axil_awready在输出通道停滞时它是低的。也就是说,如果BVALID价格高而价格 BREADY仍然低,我们还没有准备好。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。