陈志荣 发表于 2020-12-21 11:42:50

mdyDmaMode模块

1.1 mdyDmaMode01

1.1.1 功能描述

A.基于MDY总线的DMA模块。
a)输入输出的位宽,可以通过参数配置。
b)所有通道的位宽必须一致,转位宽功能请在DMA外面实现。
c)支持地址模式:初始地址,然后自增1,长度,超过空间自动返回;保持固定值模式。

B.可以通过参数,支持多路的输入通道,支持范围是1~16个通道
a)可以通过参数,确定通道数。
b)每个输入通道对应一组FIFO,用于保存该通道数据。
c)支持包文模式输入;非包文的情况,可以将sop.eop固定为0来实现。

C.可以通过参数,支持多路的输出通道,支持范围是1~16个通道。
a)可以通过参数,确定输出通道数。
b)支持两种发起条件:存够一定长度;存有一个完整的包文。非包文的情况下,使用存够一定长度的模式。

D.支持一路通道数据进,多路通道数据出(不支持!!!)
a)多个通道数据都相同,相当与复制。
b)多个通道的rdy都全部准备好了,才同时输出一个数据。

E.支持多路通道数据进,一路通道数据出
a)多路通道数据之间,使用SP的优先级进行调度。

F.支持多路进多路出的混合模式(不支持!!!)
a)某个输出通道,既可以是一路进,多路出的复制数据包文,也可以是多路进一路出的选择包文。

G.支持0输入,1输出模式
a)在"请求命令"下,产生输出通道时序。
b)输出数据可设置为固定值,有效时输出固定值,无效时变成默认值。
c)该模式是用于产生读时序。


1.1.2 参数列表


参数名
描述默认值
D_W输入输出数据位宽 16
A_W输入输出地址位宽 20
CH_IN输入通道个数 8
CH_OU输出通道个数 8
CFG_IN_W每个输入通道的配置信号位宽 64
CFG_OU_W每个输出通道的配置信号位宽 64
REQ_MODE一共有CH_OU比特。每1比特表示当前输出通道是根据输入数据还是根据REQ信号来产生输出。
0:来自与输入数据。
1:来自于REQ信号。0
TRI_MODE一共有CH_OU比特。每1比特表示当前输出通道的触发条件,是存够一个包文,还是存够一定长度数据。
0:储存一定长度
1:储存一个包文0
OUT_IN_NET一共有CH_OU*CH_IN比特。
每个输出通道含一组CH_IN位宽的配置,每1比特对应一个输入通道。当该比特为1,表示与该通道关联,当该比特为0,表示与该通道无关。
例如2个输出通道,4个输入通道。如果值为{4'b0111,4'b1010},则表示输出通道0数据来自于输入通道1和3,输出通道1数据来自于输入通道0、1和2。64'b10000000_01000000_
00100000_00010000_
00001000_00000100_
00000010_00000001
PKT_MAX一共有CH_IN*16比特。
每个输入通道含有一组16位宽的配置,表示该通道输入的最长包文长度,单位为字节。 128'h0400_0400_0400_0400
_0400_0400_0400_0400
PKT_MIN一共有CH_IN*16比特。
每个输入通道含有一组16位宽的配置,表示该通道输入的最短包文长度,单位为字节。 128'h0002_0002_0002_0002
_0002_0002_0002_0002
ADD_MODE一共有CH_OU比特
每个输出通道包含1比特的配置,表示地址的产生方式。
0:地址递增。
1:地址固定为初始值。 8'h0



1.1.3 接口列表


信号名
类型 位宽 描述
clk I 1 时钟
rst_n I 1 复位
cfg_in I CH_IN*CFG_IN_W 所有输入通道的配置,每个输入都可独立进行配置。低位是通道0的
cfg_ou I CH_OU*CFG_OU_W 所有输出通道的配置,每个输出都可独立进行配置。低位是通道0的
din I CH_IN*D_W
din_vld I CH_IN
din_sop I CH_IN
din_eop I CH_IN
din_add CH_IN*A_W 输入通道的地址
din_rdy O CH_IN
req I CH_OU 读请求信号。每个输出通道对应一个。当配置为读请求模式时,当该通道处于空闲状态,就会产生读数据的时序。
dout O CH_OU*D_W 快空指示信号
dout_vld O CH_OU 满指示信号
dout_sop O CH_OU 空指示信号
dout_eop O CH_OU
dout_add O CH_OU*A_W 输出通道的地址
dout_rdy I CH_OU



页: [1]
查看完整版本: mdyDmaMode模块