| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Xilinx VIVADO 中 DDR3(AXI4)的使用(1)创建 IP 核 -> 正文阅读 |
|
[网络协议]Xilinx VIVADO 中 DDR3(AXI4)的使用(1)创建 IP 核 |
1、前言? ? ? ? DDR3 SDRAM 简称 DDR3,是当今较为常见的一种储存器,在计算机及嵌入式产品中得到广泛应用, 特别是应用在涉及到大量数据交互的场合,比如电脑的内存条。DDR3的时序相当复杂,对DDR3 的读写操作大都借助 IP 核来完成。 ? ? ? ? MIG(Memory Interface Generators) IP 核是 Xilinx 公司针对 DDR 存储器开发的 IP,里面集成存储器控制模块,实现 DDR 读写操作的 控制流程。在默认情况下,MIG IP 核对外分出两组接口(即 Naive 接口)。一是用户接口,就是用户(FPGA)同 MIG 交互的接口,用户只有充分掌握了这些接口才能操作 MIG。二是 DDR 物理芯片接口,负责产生具体的操作时序,并直接操作芯片管脚。 ? ? ? ? 本次使用的工程环境为 Xilinx VIVADO 2018.3,使用?MIG IP 核的 AXI4 接口。 2、AXI 协议通道简介? ? ? ? 协议的制定是要建立在总线构成之上的,AXI 总线协议包括 AXI4,AXI4-Lite,AXI4-Stream 三类,均分为为主(master)、从(slave)两端,他们之间一般需要通过一个 AXI Interconnect 相连接,其作用是提供将一个或多个 AXI 主设备连接到一个或多个 AXI 从设备的一种交换机制。主设备和从设备需要按照约定好的数据传输方式来发送和接收数据。AXI 协议就是描述了主设备和从设备之间的数据传输方式。在该协议中,主设备和从设备之间通过握手信号建立连接。 ? ? ? ? AXI 协议将读地址通道,读数据通道,写地址通道,写数据通道,写响应通道分开,各自通道都有自己的握手协议。每个通道互不干扰却又彼此依赖。这是 AXI 高效的原因之一。五个通道都有各自的 VALID/READY 握手信号对。每个通道握手信号对的名称如下图所示,更多 AXI 通道释义详情请参考官方文档。 AXI4 总线的通道: (1)读地址通道(AR channel):包含 ARVALID,ARADDR,ARREADY 信号; (2)读数据通道(R channel):包含 RVALID, RDATA,RREADY,RRESP 信号; (3)写地址通道(AW channel):包含 AWVALID,AWADDR,AWREADY 信号; (4)写数据通道(W channel):包含 WVALID,WDATA,WSTRB, WREADY 信号; (5)写应答通道(B channel):包含 BVALID,BRESP,BREADY 信号; (6)系统通道:包含:ACLK,ARESETN 信号。 3、MIG IP 核建立步骤? ? ? ? VIVADO 工程的创建及 IP 核的调用方法,此处直接跳过。 (1)IP 命名与 AXI4 接口选择? ? ? ? 打开 IP 核配置界面,首先设置 IP 核名称,此处默认名称为 mig_7series_0,并勾选最下方的?AXI4 Interface,如下图红圈所示。 ?下一页配置该 IP 核兼容的 FPGA 芯片型号,此处无需关心,点击 Next。 ?选择 DDR3 SDRAM 模式,也就是该芯片支持的DDR类型,点击 Next。 (2)时钟设置? ? ? ? Clock Period 为 DDR3 芯片工作的时钟,这里我们选择 800MHz。控制 DDR 的数据流分为 2:1 或 4:1 两种模式,我们使用 4:1 模式,则 DDR3 的用户读写时钟为 800 ÷ 4 = 200 MHz。 (3)DDR3 芯片型号设置? ? ? ? 选择响应的DDR芯片的型号,也可以进行定制,此处我们选择的是 MT41K256XX-107。 (4)读写位宽设置? ? ? ? 选择 DDR 的数据位宽,这里我们选择 32位,那么用户实际操作的读写数据为空即为 32 × 8 = 256 比特。 (5)使用数据掩码? ? ? ? Data Mask 处打勾,但实际应用中很少用到掩码功能。 ? ? ? ? 其余的不太重要,就是控制器内部的一些策略问题,详细的可以查看技术手册,点击 Next。 ? ? ? ? ? 进入下一页时,顶部的 Data Width 已经自动显示为 256;然后将 Narrow Burst Support 选择置 1,表示支持突发传输数据,如图中红圈所示。其余配置均默认,点击 Next。 (6)系统(参考)时钟配置? ? ? ? 用户提供给DDR的系统时钟,用来生成前面400MHz的时钟,这里选择200MHz,因为可以与后面的参考时钟共用一个时钟。 (7)SDRAM 连续模式? ? ? ? SDRAM 有两种模式:连续模式(Sequential)与中断模式(Interleaved),一般选择连续模式。 (8)DDR 寻址模式? ? ? ? 即最下方的 Memory Address Mapping Selection,选择用户地址与 DDR3?的实际地址的映射方式,我们选择常用的 BANK-ROW-COLUMN 映射模式。 ? ? ? ? 其余配置均默认,点击 Next。 (9)设置时钟类型? ? ? ? 生成时钟的类型,这里面 No Buffer 代表是FPGA内部产生的时钟,其余两个是外部时钟引脚直接连接的选项,分别对应着单端与差分时钟信号。这里的 System Clock 和 Reference Clock 我们都使用 No Buffer 模式。其余配置默认即可,点击 Next。 ?下一页保持默认,点击 Next。 ?(10)配置引脚? ? ? ? 准备根据自己的 FPGA 芯片引脚绑定 DDR3 引脚,如下选择 Fixed Pin Out Pre-existing pin out is known and fixed。 ? ? ? ? ? ?找到对应开发板的DDR引脚文件,一般FPGA开发板都有相配套的 ucf 或 xdc 文件,点击验证一下文件的有效性。点击 Next。 ? ? ? ? 此后是 System signal selection 页面,直接点击 Next。 ? ? ? ? 然后是 Summary 页面打印的 IP 核信息,直接点击 Next。 ? ? ? ? 然后是 Simulation Options 页面,选择接受(Accept)协议,点击 Next。 ? ? ? ? 最后一路 Next,生成 MIG IP 核即可。到此为止,我们建立了一个完整新的 MIG IP,并且知道了 MIG IP 核调用过程中每个选项所代表的意义。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:40:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |