没有合适的资源?快使用搜索试试~ 我知道了~
DMA项目文档--段江飞,资威,张丽玮1
需积分: 0 0 下载量 121 浏览量
2022-08-03
19:34:39
上传
评论
收藏 690KB PDF 举报
温馨提示
试读
8页
1. 接口 2. 状态 3. 其他参数 1. 每次复位时改变数据的传输方向,实现手动控制 MEM 到 CPU 和 CPU 到 MEM 方 2. 利用三段式状态机
资源详情
资源评论
资源推荐
DMA 项目文档
组长:段江飞 组员:资威、张丽玮
一、 项目内容
DMA 是计算机中不可缺少的一个部分,其主要实现内存中的数据与 CPU
中数据的交互。支持从内存中取出数据传入 CPU 中,也支持从 CPU 中取出数
据传入内存中。DMA 中需要有 2 个数据的缓冲区 BUF1 和 BUF2,工作在不同
的状态。例如:传输的方向为内存->CPU 时,BUF1 在接收内存传入的数据,
BUF2 在向 CPU 输出数据;只有当 BUF1 满了,BUF2 空了之后,BUF1 才和 BUF2
交换,交换之后,BUF2 接收内存传入的数据,BUF1 向 CPU 输出数据;如此
交替下去,实现流水。
二、 整体设计
DMA 与 CPU 之间可进行双向数据传输,其基本过程相似,设计时利用复
位信号来控制数据传输的方向,每次复位数据传输方向发生改变,初始化的
数据传输方向为从 MEM 到 CPU 方向。
数据传输过程类似于两个 FIFO 的联结,设计时参考 FIFO 的设计,利用
三段式状态机实现功能。
DMA 的两个 BUF 在传输过程中要实现交换,根据 BUF1 和 BUF2 的缓冲区
空、缓冲区满的状态将状态机分为 6 个状态(利用独热码),实现单方向数
据传输时的流水作业。
整体程序分为四段,第一段是时序逻辑,实现次态到现态的迁移;第二
段是组合逻辑,实现各个状态的转换;第三段是时序逻辑,用来实现 DMA 的
主体功能;第四段是组合逻辑,用来辅助控制 DMA 的功能和状态。
三、 模块接口与参数
1. 接口
Input 与 Output 是参照实验要求的接口,未进行更改,接口及功能如下。
(1)Input 接口
clk:时钟信号,时序逻辑取其上升沿触发(1bit);
rst_n:复位信号,在为 0 时进行复位操作(1bit);
mem_to_dma_valid:mem 传入的数据是否有效(1bit);
mem_to_dma_enable:mem 是否准备好接受数据(1bit);
cpu_to_dma_valid:cpu 传入的数据是否有效(1bit);
cpu_to_dma_enable:cpu 是否准备好接受数据(1bit);
mem_data_out:mem 传出的数据(4bit)在 valid 和 enable 同时为 1 的时候
才会被 dma 读入;
cpu_data_out:cpu 传出的数据(8bit)在 valid 和 enable 同时为 1 的时候
才会被 dma 读入;
(2)Output
dma_to_mem_valid:dma 传入的数据是否有效(1bit);
dma_to_mem_enable:dma 是否准备好接受数据(1bit);
被要求改名字
- 粉丝: 27
- 资源: 315
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0