Xilinx VIVADO中DDR3 IP核的使用(1)

项目简介简述

学完了ISE软件对应MIG的使用,接下来我们学习vivado软件对应MIG的使用,因为两个软件对应MIG的使用并不相同,vivado软件的MIG留给用户的接口比较底层,并没有ISE的那么简单易用。所以接下来的文章,我们将利用DDR3做两个实验:
1、DDR3的循环检验,通过该实验我们学会7系列MIG的读写时序。
2、基于DDR3、USB3.0的图像显示,在1的基础上我们做一个适当的工程,加深对相关操作的理解。
本次实验我们用到的软硬件环境如下:
软件环境:vivado 2019.1
硬件环境:米联客 MA7035FA开发板

MIG IP建立的步骤

这里关于vivado如何建立工程,我们便省略跳过,相信学到DDR3的同学们都会软件的使用。
在这里插入图片描述
1、首先在1处输入MIG
2、双击标号2的MIG IP核
在这里插入图片描述
1、首先对比以下1处的设置信息,防止出错
2、点击2出的Next
在这里插入图片描述
1、其中上面1为建立一个新的MIG IP核,另一个为更改一个已存在的MIG IP,在本次实验中我们选择1建立一个新的MIG IP核
2、MIG IP核的名字
3、MIG 内部控制器的数目,我们选择一个
4、基于AXI协议控制还是app控制,我们这里先讲解app控制,接下来也会学习AXI控制,会在之后的文章中讲解,这里不选中
5、点击Next
在这里插入图片描述
1、其中1中的选项勾选了代表我们的这个IP不光只对该型号有用,也适用于选中的型号
2、这里我们不勾选1中的选项,直接点击2Next
在这里插入图片描述
1、选中DDR3,也就是该芯片支持的DDR类型
2、点击Next
在这里插入图片描述
1、DDR3芯片工作的时钟,这里我们选择最大时钟400MHz
2、控制DDR的数据流是按照2:1还是4:1的数据流,因为DDR是双沿采样,又必须是8突发:,4:1的数据位宽是2:1的两倍,而且app_end信号每两个数据给一次,用户时钟速率2:1是4:1的两倍。
3、选择响应的DDR芯片的型号,也可以进行定制
4、选择DDR的位宽,这里我们使用了两片DDR,每一个是16位,所以这里是32位。
5、使用数据掩码
其余的不太重要,就是控制器内部的一些策略问题,详细的可以查看技术手册
6、点击Next
在这里插入图片描述
1、用户提供给DDR的系统时钟,用来生成前面400MHz的时钟,这里选择200MHz,因为可以与后面的参考时钟共用一个时钟。
2、这里选择连续模式,sdram公国又两种模式连续模式与中断模式,一般选择连续模式
3、使能自动刷新模式
4、终端电阻相关,通常默认即可
5、用户地址与DDR的实际地址的映射方式
6、点击Next
在这里插入图片描述
1、生成时钟的类型,这里面NO Buffer代表是FPGA内部产生的时钟,其余两个是外部时钟引脚直接连接的选项,分别对应着单端与差分时钟信号
2、参考时钟,使用参考时钟生成数据路径与命令路径的时钟,对于A7芯片范围是199MHz到201MHz
在这里插入图片描述
3、低电平复位MIG IP核
4、不使用系统自带的debug,想要调试使用ila即可
其余的默认即可
5、点击Next
在这里插入图片描述
1、终端电阻相关,点击默认即可
在这里插入图片描述
1、A7的MIG与S6的MIG不同,S6的MIG是使用硬核MCB,一旦选定了MCB的位置,那么所有DDR的引脚便 确定了,而A7的MIG是使用硬件逻辑搭建,具体的引脚不确定,所以我们最好在生成MIG的时候固定引脚位置及电平属性,所以选择第二个
2、点击Next
在这里插入图片描述
1、找到对应开发板的DDR引脚文件,一般FPGA开发板都有相配套的ucf或xdc文件
2、点击验证一下文件的有效性
3、点击Next
在这里插入图片描述
1、我们没将上面信号引出开发板,默认即可,点击Next
在这里插入图片描述
1、我们选择的详细信息,点击Next即可
在这里插入图片描述
1、选择接受该协议
2、点击Next
然后一路Next,最后生成MIG IP核即可。到此为止,我们建立了一个完整新的MIG IP,并且知道了MIG IP核调用过程中每个选项所代表的意义。

MIG自带示例工程的搭建

我们班接下来要对该我们的MIG IP核搭建仿真环境,为了掌握仿真环境的搭建,我们先对MIG生成的示例工程进行搭建,然后再搭建我们的MIG仿真环境,因为其中的代码都是借鉴的示例工程中的代码,这里我们也给出了学习一个新的IP的完整流程。
在这里插入图片描述
右击对应的IP核,然后选自Open IP Example Design,打开一个示例工程,这里要比ISE新建一个工程简单的多,如下图:
在这里插入图片描述
接下来仿真该示例工程,用Modelsim仿真,如下图
在这里插入图片描述
在这里插入图片描述

从上图中我们可以看到对应的init_calib_complete信号拉高,说明我们的示例工程成功仿真,接下来我们将利用这个示例工程搭建相应的我们自己创建的MIG仿真环境。

MIG 仿真环境的搭建

这里我们将给出代码,大家可以对比一下代码与上面示例工程的代码,在仿真模型的处理上几乎一样。
ddr3_top模块:

`timescale 1ns / 1ps
// *********************************************************************************
// Project Name : OSXXXX
// Author       : zhangningning
// Email        : nnzhang1996@foxmail.com
// Website      : 
// Module Name  : ddr3_top.v
// Create Time  : 2020-02-27 23:16:16
// Editor       : sublime text3, tab size (4)
// CopyRight(c) : All Rights Reserved
//
// *********************************************************************************
// Modification History:
// Date             By              Version                 Change Description
// -----------------------------------------------------------------------
// XXXX       zhangningning          1.0                        Original
//  
// *********************************************************************************

module ddr3_top(
    //System Interfaces
    input                       sclk                    ,
    input                       rst_n                   ,
    //DDR3 Interfaces           
    output  wire    [13:0]      ddr3_addr               ,
    output  wire    [ 2:0]      ddr3_ba                 ,
    output  wire                ddr3_cas_n              ,
    output  wire                ddr3_ck_n               ,
    output  wire                ddr3_ck_p               ,
    output  wire                ddr3_cke                ,
    output  wire                ddr3_ras_n              ,
    output  wire                ddr3_reset_n            ,
    output  wire                ddr3_we_n               ,
    inout           [31:0]      ddr3_dq                 ,
    inout           [ 3:0]      ddr3_dqs_n              ,
    inout           [ 3:0
03-26
### NVIDIA MIG Technology and IP Configuration NVIDIA Multi-Instance GPU (MIG) 技术允许单个 NVIDIA Ampere 架构 GPU 被划分为多个独立的实例,从而提高资源利用率并优化工作负载分配[^1]。这种技术特别适用于高性能计算环境以及数据中心中的虚拟化应用。 #### 处理涉及 MIG 的场景中 IP 配置的关键点: 当使用 MIG 技术后,在网络环境中配置和管理 IP 地址时需要注意以下几个方面: 1. **多租户支持下的隔离性** 每个 MIG 实例可以被看作是一个独立的 GPU 设备,因此在网络层面也需要为其提供相应的隔离机制。这意味着每个实例可能需要单独的 IP 地址来确保通信的安全性和独立性。 2. **网络接口绑定到特定实例** 如果系统依赖于 Mellanox ConnectX-6 系列网卡或其他高速互联设备,则可以通过驱动程序设置将不同的网络端口或队列映射至各个 MIG 实例上。这样能够实现更高效的流量调度,并减少跨实例间的干扰。 3. **IP 地址规划与分配策略** 对于大规模部署而言,合理的 IP 地址规划至关重要。通常建议采用静态 IP 或 DHCP 结合方式为每台主机上的所有 MIG 实例分别指定唯一的公网/私有地址范围。 4. **安全组规则定义访问权限控制列表(ACLs)** 为了进一步增强安全性,管理员还可以通过防火墙或者云平台内置功能创建针对各 MIG 实例子集的具体 ACL 来限定其可连接的目标服务及端口号集合。 5. **监控工具集成以跟踪性能指标变化情况** 使用专门设计用于分析 GPU 性能数据的应用软件可以帮助识别潜在瓶颈所在位置;同时也可以借助这些解决方案实时查看当前正在运行的任务所消耗带宽比例等相关统计数值以便及时调整资源配置方案。 ```bash nvidia-smi mig -cgi 0 -C network=exclusive # 创建具有独占网络模式的第一个 Compute Instance ip addr add 192.168.1.10 dev eth0 label eth0:mig_instance_0 # 给第一个MIG实例添加专属IP ``` 上述命令展示了如何利用 `nvidia-smi` 工具创建带有专有网络模式的 MIG 计算实例,并随后为此实例关联一个独特的子接口及其对应的 IP 地址。
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值