【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之DDR3 IP简单读写测试(六)

这篇具有很好参考价值的文章主要介绍了【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之DDR3 IP简单读写测试(六)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处

适用于板卡型号:

紫光同创PGL22G开发平台(盘古22K)

一:盘古22K开发板(紫光同创PGL22G开发平台)简介

盘古22K开发板是基于紫光同创Logos系列PGL22G芯片设计的一款FPGA开发板,全面实现国产化方案,板载资源丰富,高容量、高带宽,外围接口丰富,不仅适用于高校教学,还可以用于实验项目、项目开发,一板多用,满足多方位的开发需求。

二:实验目的

MES22GP 开发板上有一片 Micron 的 DDR3(MT41K256M16 TW107:P)内存组件,拥有 16bit 位宽的存储空间(MT41J系列是旧的产品,目前很多型号已经停产,后续替代就是MT41K系列。硬件上的差异是MT41K支持1.35V低电压,同时也兼容1.5V电压,所以可以用MT41K直接替换相应型号的MT41J芯片)。该DDR3 存储系统直接连接到了 PGL22G 的 Bank L1 及 Bank L2 上。PGL22G的DDR IP为硬核IP,需选择正确的IP添加。

本次实验目的为生成DDR3 IP,实现DDR3的基于AXI4的简单读写控制,了解其工作原理和用户接口,然后通过在线Debugger工具查看写入和读出的数据是否一致。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

三:DDR3控制器简介

HMIC_H IP 是深圳市紫光同创电子有限公司FPGA 产品中用于实现对SDRAM 读写而设计的IP,通过公司Pango Design Suite 套件(后文简称PDS)中IP Compiler 工具(后文简称IPC)例化生成IP 模块。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

HMIC_H IP 系统框图如下图所示:

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

HMIC_H IP 包括了DDR Controller、DDR PHY 和 PLL,用户通过 AXI4 接口实现数据的 读写,通过 APB 接口可配置 DDR Controller 内部寄存器,PLL 用于产生需要的各种时钟。

AXI4 接口:HMIC_H IP 提供三组 AXI4 Host Port:AXI4 Port0(128bit)、AXI4 Port1(64bit)、

AXI4 Port2(64bit)。用户通过 HMIC_H IP 界面可以选择使能这三组 AXI4 Port。三组 AXI4 Host Port 均为标准 AXI4 接口。

APB 接口:HMIC_H IP 提供一个 APB 配置接口,通过该接口,可配置 DDR Controller 内部寄存器。HMIC_H IP 初始化完成后使能该接口。

详细的端口说明请点击IP配置界面的View Datasheet查看IP手册。

DDR的IP需要手动添加,操作流程请查阅文件目录1_Demo_document/工具使用篇的《03_IP核安装与查看用户指南》。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

DDR3 IP例化流程简述

打开IPC 软件,进入 IP 选择界面,如下图所示,选取 System/DDR/Hard 目录下的 Logos HMIC_H,然后在右侧页面设置 Instance Name 名称,并选择 FPGA 的器件类型。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

IP 选择完成后点击Customize 进入Logos HMIC_H IP 参数设置界面,如下图所示,左边Symbol 为接口框图,右边为参数配置窗口:

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

参数配置完成后点击左上角的Generate按钮,生成 IP,即可生成相应于用户特定设置的 HMIC_H IP 代码。生成 IP 的信息报告界面如下图所示:

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

  IP 自带生成的.pds 文件和.fdc 文件仅供参考,需要根据实际单板进行修改。成功生成 IP 后会在生产IP时指定的Pathname 路径下输出如下文件:

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

DDR3 IP配置说明

HMIC_H IP 配置分为四个页面,分别为 Step1: Basic Options,Step2: Memory Options,Step3: Interface Options,Step4: Summary,请务必按照该页面顺序配置。

 Step 1: Basic Options

是 IP 的基本配置页面,页面如下图所示:

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

Step 2: Memory Options

是Memory 参数的配置页面,页面如下图所示:

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

Step 3: Interface Options

是接口参数的配置页面,页面如下图所示:

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

Step 4: Summary

用于打印当前的配置信息,不需要配置参数,页面如下图所示:

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

四: 实验源码

DDR3 IP配置完成后会生成一个可用于例化的模块。

DDR3 IP 模块接口说明

如下图所示为DDR3 IP的Memory Interface(PHY),不需要我们直接操作。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

以下所示为外部输入时钟,复位,输出的用户时钟axi4 port0/port1/port2以及一些复位或者初始化完成的标志信号(可以通过连接LED灯来直观显示,更易观察)。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

以下所示为AXI4协议的读写控制端口,也是用户可以直接操作用于控制DDR3读写的端口。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

AXI4协议的读写控制这里不进行具体讲解。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

 DDR3 读写测试顶层模块设计

顶层模块的输入输出端口便是DDR3例化模块中的Memory Interface(PHY)和一些直连LED灯的用于观察的标志信号,因为本次实验通过按键来控制开始向DDR3写入数据,所以还需要一个输入按键。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

然后对应DDR3的AXI4读写我们单独用一个模块来控制,顶层模块中的例化如下所示。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

使用按键,所以需要一个按键消抖模块,顶层模块中的例化如下所示。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

DDR3 AXI4读写控制模块

本次实验只是一个简单的读写测试实验,故可以将一些AXI4的信号配置为常量。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

使用按键控制数据开始写入DDR3,通过一个移位寄存器来产生这个写标志。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

使用状态机来控制写地址信号,写数据信号,读地址信号,读数据信号的产生及状态的切换和跳转。

当按键按下,写标志触发,状态机进入写地址状态,awvalid_0信号为高电平,当awready_0和awvalid_0同时为高电平时,写地址被有效写入,下一个周期awvalid_0为低电平同时状态机跳转到写数据的状态;

写数据状态中,wvalid_0为高电平,当wready_0和wvalid_0同时为高电平时,数据开始被写入,一共写入5~20总计16个数据(从0开始计数长度便为15)。当写到最后一个数据时wlast_0保持一个周期的高电平。这里我们用一个计数器来产生写入数据,当wready_0和wvalid_0同时为高电平时开始计数器开始自加,当计数到15时(最后一个写入数据),下一个周期计数器清零,状态机跳转至等待写响应的状态;

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

写响应的状态中,通过一个移位寄存器抓取写响应有效bvalid_0信号为高电平的时刻,当bvalid_0且bresp_0为2’b00(表示写响应ok)时触发读开始的标志,状态机进入读地址写入状态;

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

读地址写入状态中,arvalid_0为高电平,当arready_0和arvalid_0同时为高电平时,读地址被有效写入(地址与写数据地址一致),下一个周期arvalid_0为低电平同时状态机跳转到读数据的状态;

读数据状态中,当rvalid_0 和 rready_和 rlast_0均为高电平时,状态机跳转至最初的状态等待按键被再次按下。读出的数据可以通过在线调试Debugger工具来查看。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

DDR3 IP的时钟约束

IP 有 5 个时钟,分别为 pll_refclk_in、phy_clk、pll_aclk0、pll_aclk1、pll_aclk2、pll_pclk,其中 pll_refclk_in 是输入时钟,phy_clk、pll_aclk0、pll_aclk1、pll_aclk2、pll_pclk 都是 PLL 倍频得到,phy_clk 用作 HMIC_H 硬核的输入时钟,pll_aclk0 用做 AXI4 port0 的输入时钟,pll_aclk1 用做 AXI4 port1 的输入时钟,pll_aclk2 用做 AXI4 port2 的输入时钟,pll_pclk 用做APB port的输入时钟。phy_clk 是HMIC_H专用时钟,在IP内部使用,不允许外接使用。pll_pclk,pll_aclk_0,pll_aclk_1,pll_aclk_2 四路时钟供外部逻辑使用,彼此没有相位关系,都是异步时钟。

外部输入时钟约束如下。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

Pll产生的时钟约束如下。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

五:实验现象

点击Debugger按钮,下载程序,便可通过Debugger工具进行在线调试,查看具体信号的波形情况。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

按下开发板的按键,产生写触发信号,awvalid_0信号为高电平,当awready_0和awvalid_0同时为高电平时,awvalid_0拉低同时进入写数据状态,wvalid_0拉高,随后wready_0和wvalid_0同时为高电平时开始写入数据5~20,wlast_0在写入最后一个数据时拉高。一段时间后bvalid_0拉高且bresp_0为2’b00,表示写入数据成功,然后进入读数据状态。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

读地址写入状态中,arvalid_0为高电平,当arready_0和arvalid_0同时为高电平时,读地址被有效写入(地址与写数据地址一致),下一个周期arvalid_0拉低同时状态机跳转到读数据的状态。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

通过Debugger工具查看DDR3先写入后读出的数据是一致的,表明DDR3的读写测试正常。

同时在烧录程序后,可以观察LED灯的亮灭情况来查看DDR的PLL输出的时钟是否已经稳定,DDR PHY复位是否完成和DDR的控制器是否初始化成功。

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习

ddr3 axi4 读写控制模块源码如下:

紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习紫光怎样例化模块,fpga开发,FPFA,fpga开发,学习文章来源地址https://www.toymoban.com/news/detail-819181.html

到了这里,关于【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之DDR3 IP简单读写测试(六)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 紫光同创 FPGA 开发跳坑指南(三)—— 联合 Modelsim 仿真

        Modelsim 是 FPGA 开发中重要的 EDA 设计仿真工具,主要用于验证数字电路设计是否正确。紫光 Pango Design Suite 开发套件支持联合 Modelsim 仿真,这里作简要的介绍。 方法一     打开 Pango Design Suite,点击 Tools - Compile Simulation Libraries,在弹出来的窗口中,设置需要编译

    2023年04月10日
    浏览(45)
  • 紫光同创 FPGA 开发跳坑指南(四)—— DDR3 控制器 IP 的使用

    DDR3 是一种大容量的存储器件,采用了预取技术和双边沿采样技术,以实现高速数据存储与读取,在视频处理中可以用来缓存 1 帧或多帧图像。 目录 一、紫光 DDR3 IP 的安装 二、紫光 DDR3 IP 的配置 三、DDR3 IP 的使用 3.1 DDR3 写操作 3.2 DDR3 读操作         在 Pango Design Suit 中,选

    2024年01月25日
    浏览(40)
  • 基于紫光同创FPGA的图像采集及AI加速

    本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL50H开发平台(盘古50K开发板) 本篇优秀作品:2023集创赛全国总决赛紫光同创杯赛一等奖获奖作品,来自东莞理工+BugMaker的内容分享。 获奖作品:

    2024年04月14日
    浏览(32)
  • 基于紫光同创 FPGA 的 DDR3 读写实验

    此篇为专栏 《紫光同创FPGA开发笔记》 的第二篇,记录我的学习FPGA的一些开发过程和心得感悟,刚接触FPGA的朋友们可以先去此专栏置顶 《FPGA零基础入门学习路线》来做最基础的扫盲。 本篇内容基于笔者实际开发过程和正点原子资料撰写,将会详细讲解此 FPGA 实验的全流程

    2024年01月20日
    浏览(42)
  • FPGA以太网入门(一)——MDIO接口读写测试实验(基于紫光同创)

    此篇为专栏《紫光同创FPGA开发笔记》的第五篇,记录我的学习 FPGA 的一些开发过程和心得感悟,刚接触 FPGA 的朋友们可以先去此博客 《FPGA零基础入门学习路线》来做最基础的扫盲。 本篇内容基于笔者实际开发过程和正点原子资料撰写,将会详细讲解此 FPGA 实验的全流程,

    2024年04月15日
    浏览(56)
  • FPGA以太网入门(二)——ARP测试实验(基于紫光同创,含原语介绍)

    此篇为专栏《紫光同创FPGA开发笔记》的 第六篇 ,同时也是 FPGA 以太网入门 的 第二篇 ,记录我的学习 FPGA 的一些开发过程和心得感悟,刚接触 FPGA 的朋友们可以先去此博客 《FPGA零基础入门学习路线》来做最基础的扫盲。 本篇内容基于笔者实际开发过程和正点原子资料撰写

    2024年02月20日
    浏览(43)
  • 紫光同创FPGA图像视频采集系统,提供2套PDS工程源码和技术支持

    紫光同创FPGA图像视频采集系统,提供2套PDS工程源码和技术支持 “苟利国家生死以,岂因祸福避趋之!”大洋彼岸的我优秀地下档员,敏锐地洞察到祖国的短板在于高精尖半导体的制造领域,于是本着为中华民族伟大复兴的中国梦贡献绵薄之力的初心,懂先生站在高略高度和

    2024年02月08日
    浏览(39)
  • 紫光同创FPGA纯verilog代码实现视频拼接,提供PDS工程源码和技术支持

    紫光同创FPGA纯verilog代码实现视频拼接,提供PDS工程源码和技术支持 “苟利国家生死以,岂因祸福避趋之!”大洋彼岸的我优秀地下档员,敏锐地洞察到祖国的短板在于高精尖半导体的制造领域,于是本着为中华民族伟大复兴的中国梦贡献绵薄之力的初心,懂先生站在高略高

    2024年02月07日
    浏览(40)
  • FPGA高端项目:紫光同创系列FPGA纯verilog图像缩放工程解决方案 提供3套工程源码和技术支持

    FPGA高端项目:紫光同创系列FPGA纯verilog图像缩放工程解决方案 提供3套工程源码和技术支持 “苟利国家生死以,岂因祸福避趋之!”大洋彼岸的我优秀地下档员,敏锐地洞察到祖国的短板在于高精尖半导体的制造领域,于是本着为中华民族伟大复兴的中国梦贡献绵薄之力的初

    2024年01月18日
    浏览(38)
  • 紫光同创FPGA 多路视频处理:图像缩放+视频拼接显示,OV7725采集,提供PDS工程源码和技术支持

    紫光同创FPGA 多路视频处理:图像缩放+视频拼接显示,OV7725采集,提供PDS工程源码和技术支持 “苟利国家生死以,岂因祸福避趋之!”大洋彼岸的我优秀地下档员,敏锐地洞察到祖国的短板在于高精尖半导体的制造领域,于是本着为中华民族伟大复兴的中国梦贡献绵薄之力的

    2024年02月08日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包