学习目标

  • 理解 DMA 原理
  • 实现 DMA 传输
  • 减少 CPU 负担

14.1 思考:为什么需要 DMA?

CPU 搬运数据太浪费了!

14.2 DMA 实现

reg [31:0] dma_src, dma_dst, dma_len;

always @(posedge clk) begin
    if (dma_start) begin
        mem[dma_dst] <= mem[dma_src];
        dma_src <= dma_src + 4;
        dma_dst <= dma_dst + 4;
    end
end

思考:DMA 和 Cache 一致性?

下一步

第 15 章:SMP 操作系统

更新时间: