Avalon® 存储器映射(Avalon-MM) Intel® Stratix® 10 Hard IP+用于 PCI Express* 解决方案用户手册

ID 683527
日期 9/30/2019
Public
文档目录

7.1.1.1.1. 寄存器集

DMA Controller中的寄存器为512-bit宽以匹配Bursting Master和Read Data Mover的 Avalon® -MM Master数据路径宽度。从而,如有需要可允许Read Data Mover在单个周期内写入描述符。

表 61.  DMA Controller的寄存器集
偏移 名称 访问 说明
0x000 WDN R/W

写:Write Data Mover普通描述符队列的描述符

读:Write Data Mover普通描述符队列的准备度和填充级别

0x200 WDP R/W

写:Write Data Mover优先描述符队列的描述符

读:Write Data Mover优先描述符队列的准备度和填充级别

0x400 WS RO Write Data Mover状态队列
0x600 WI R/W Write Data Mover中断控制寄存器
0x800 RDN R/W

写:Read Data Mover普通描述符队列的描述符

读:Read Data Mover普通描述符队列的准备度和填充级别

0xA00 RDP R/W

写:Read Data Mover优先描述符队列的描述符

读:Read Data Mover优先描述符队列的准备度和填充级别

0xC00 RS RO Read Data Mover状态队列
0xE00 RI R/W Read Data Mover中断控制寄存器

对于写入描述符列队寄存器的数据,请使用与Data Mover的相应 Avalon® -ST接口中数据相同的格式和内容。应用程序的最低有效专用位显示在处理描述符完成时是否应发布中断。

DMA Controller双倍缓冲只写队列,以便描述符可在需要时一次建立一个DWORD,例如,32-bit主机控制器。当最高有效DWORD被写入时,寄存器的内容被传送到Data Mover的 Avalon® -ST输入。

注: 如果通过写突发写入DMA Controller的寄存器文件,则所有数据(最高达到512字节)进入突发的首个周期中寻址到的寄存器中。该行为使得通过单个突发写事务将多个描述符写入其中一个队列。缺点是无法通过单个突发写入相邻寄存器。

当未置位相应Data Mover的ready信号, 却尝试写入描述符队列时,会导致DMA Controller置位其 waitrequest信号直到ready被置位。所以必须确保Read Data Mover不会在队列已满时尝试写入正在处理的队列,否则会导致死锁。有关死锁的更多详细信息,请参阅死锁风险和规避.

可查看队列寄存器的ready位(bit [31])找到描述符队列ready信号的状态。此外,队列寄存器的位[7:0]表示队列大概的填充级。队列寄存器的其他位被设置为0。

WS和RS寄存器中仅最低有效DWORD包含有效信息。其他位设置为0。

状态队列的格式和内容与Data Mover Avalon® -ST接口对应格式和内容相同,若外加位31,则表示队列为空。当队列为空时,从其中一个状态队列进行读取将返回512'h8000_0000。

WI和RI中断控制寄存器的格式如下:{enable, priority, reserved[414:0], msi_msg_data[15:0], reserved[15:0], msi_address[63:0]}.

enable”位控制是否发送MSI。“priority”位指定是否使用有限队列发送MSI。MSI存储器写TLP也使用msi_msg_datamsi_address字段的内容。