3.2 MPMC的使用
双击Bus_Interface标签栏下的DDR_SDRAM,进入编辑MPMC的界面。如图3.2.1所示:
图3.2.1 点击DDR_SDRAM
3.2.1 Base Configuration主标签栏:
Base Configuration包含两个标签栏。其中,用户可以在Port Type Configuration中配置端口类型,MPMC最多可以有8个端口,每个端口有前述的4种接口类型XCL,PLBv46,SDMA,NPI以及不使用INACTIVE。
图3.2.2 MPMC端口的4种接口类型以及不使用INACTIVE
分配完毕后可以通过LeftJustify将不工作的端口消除掉。在这个过程中所有与端口有关的参数和外部总线连接都被移到左边。

图3.2.3 点击LeftJustify之前

图3.2.4 点击之后
在Common Address中可以观察和设置初始地址。想配置任一个独立的端口地址,需到Advanced标签栏下Address选项选择。
![]()
图3.2.5 Common Address 标签栏
3.2.2 Memory Interface主标签栏
MPMC可以与不同厂商的许多不同种内存一起工作。这个标签栏让你在Memory Part Selector标签下选择与MPMC连接的内存。
Memory Part Selector
它包含Type选项,Memory manufacturer选项,Memory style选项,Memory density选项,Memory width选项和Part No. 选项。

图3.2.6 Memory Part Selector
过滤的结果在Part No.下拉列表中出现。如果内置的内存数据库正确部分不能使用时,Memory Part Selector/Part No.下拉列表也会包含一个用户选项。在你选择了CUSTOM选项之后,所有内存参数都可修改,你能够输入你想要的参数。在你选择了内存部分之后,参数将被自动载入到Selected Memory Info区和Memory/DIMM Settings标签中去
Memory/DIMM Settings
在这个设置区内,选择下拉菜单,你可以调整DIMMs的数目,内存数据宽度,内存时钟周期,ODT设置和部分 其他信息。

图3.2.7 Memory Interface 标签
Memory Part Settings Tab
Memory Part Settings 标签栏有两个区间:Part Settings和Memory Timing Settings。Part Settings 包含Data Depth,Data Width,Bank,Row,和Column Bits。Memory Timing Settings包含内存部分选项。

图3.2.8 Memory Part Settings 标签
3.2.3 Port Configuration主标签栏
在Port Configuration标签栏可以设置每个独立端口的参数。端口0-3和端口4-7可以在标签栏中显示。端口标签栏分成如图3.2.9所示的表明端口号的四个象限。只有与现有端口类型相关的参数(在Base Configuration主标签栏中选择)可以查看并修改。

图3.2.9 Port Configuration
3.2.4 Advanced主标签栏
Advanced的标签栏提供了更多高级MPMC的用户资源。
Data Path
在Data Path这个标签栏中,你既能够配置常规传递途径的设置,也能单独设置每个端口。General Pipeline Settings允许你设置常规传递途径的参数,而Port-specific Settings允许你按照如下方式为独立的端口改变传递途径的设置:
- NPI Width: NPI的宽度。
- Read FIFO Config: 用BRAM, SRL, 或者Wr-Only (只能写, 不能读缓存)执行FIFO。
- Write FIFO Config: 用BRAM, SRL, 或者Rd-Only (只能读, 不能写缓存)执行FIFO。
- Read Memory Pipeline: 允许传递途径读内存。
- Read Port Pipeline: 允许传递途径读潜在端口。
- Write Memory Pipeline: 允许传递途径写内存。
- Write Port Pipeline: 允许传递途径写端口。
- Address Ack Pipeline: 允许传递途径确认抵制要求。

图3.2.10 Data Path
Port-specific Settings中Read FIFO Config 有三个选项:BRAM,SRL,Wr-Only。

图3.2.11 Read FIFO Config
同样,Write FIFO Config 有三个选项:BRAM,SRL,Rd-Only。

图3.2.12 Write FIFO Config
Arbitration
MPMC最多有8个端口,它们能同时访问内存。因此,在任何必要时候都能有一个仲裁机制来断定哪个端口有优先权,就显得十分重要了。在Arbitration标签栏中,你可以选择用哪种仲裁机制。
从下拉菜单中选取一种仲裁机制:
- Round Robin: 采取循环仲裁模式。

图3.2.13 Round Robit
- Fixed: 采取确定的优先级模式。
- Custom: 在这种模式中,可以定制时间档的数值和每个时间档的仲裁优先级。在每个时间档中仲裁优先级被编译成描述端口间优先级下降的字符串。

图3.2.14 Custom
例如,字符串“01234567”给端口0最高的优先级,然后从端口1到7优先级下降。
Misc
Misc这个从标签栏包含了需要你注意,但不在先前类别内的参数。

图3.2.15 Misc
上面大概地介绍了MPMC的结构和功能,具体如何在设计中加入使用NPI接口将在第七章中给出一个实际的例子。




