FPGA DDR4 学习(二)

上一期我们学习了DDR4的基础知识(没有学习的可以点击下面连接进去学习一下,还话是有必要知道基础知识才能进行下面的过程)https://blog.youkuaiyun.com/bingbang0703/article/details/132403454icon-default.png?t=N7T8https://blog.youkuaiyun.com/bingbang0703/article/details/132403454

 一、DDR4运行状态机

实线的是命令输入导致,虚线是如果没有命令自动运行的。

如图看,可以知道电源(power applied)接进去了会进行刷新(reset procedure),刷新结束再经过处理才会到达idle状态,此时我们要注意的就是ACT命令到来,使其形成激活状态(Activating

)才可以让DDR4进行读写操作,激活之后就进入bank激活,最终开始写操作和读操作。

二、激活DDR4

那么问题就来了,激活怎么进行?

这是我们就要去看DDR4芯片手册手册上的激活信息了

 这段话的理解还是比较简单,但要结合命令真值表结合起来看哦!

 可以看到黄色标记的bank activating,这时候就是激活命令了,它的基本组成就是app_addr、app_en、app_wdf_end以及app_wdf_wren,这些后续会进行讲解,你只要知道激活命令的形成就行,以及激活命令要定义好BG、BA、地址的位置就行。

还有两个黄色的标记是针对读写的连读数,也就是一次性8个连读连写,这对刚入学习的人,了解一下就行。

三、DDR4 mig IP核调用与学习

在PL端我们可以直接使用DDR4不需要去PS端运用,那先来了解DDR4 mig IP核的引脚

右侧的接口在上一期的学习当中已经有很多的讲解了,这里就不再多言。(而且右侧端口不需要我们编写,我们要编写的只是左侧的)

在DDR4中由于ddr的升级,要求DDR的安全性和速度,就使用到了差分时钟。

c0_sys_clk_p:正接口

c0_sys_clk_n:反接口

c0_ddr4_app_addr:用户地址,主要组成是存储组(BG)、bank(BA)、行(row)、列(column),怎么进行组合就要看你在IP核中的配置了。

c0_ddr4_app_cmd:命令,000表示写,001表示读。

c0_ddr4_app_en:请求命令,无论是读还是写都需要进行请求。

c0_ddr4_app_hi_pri:输入保留,一般都置0.

c0_ddr4_app_rd_data:读的数据。

c0_ddr4_app_rd_data_end:读的最后一个数据。

c0_ddr4_app_rd_data_valid:读有效。

c0_ddr4_app_rdy:用户端准备信号。

c0_ddr4_app_wdf_end:写数据最后一个数据。

c0_ddr4_app_wdf_mask:掩码,和数据线dq对应,高电平表示该位无效。一般直接全部置0.

c0_ddr4_app_wdf_wren:写使能。

c0_ddr4_app_wdf_data:写数据。

c0_ddr4_app_wdf_rdy:接收缓冲端返回信号,高电平表示已经准备好了,可以发送数据过来。

以上就是用户端的接口各自的含义。

下面就是怎么去调用DDR4 mig IP核。

四、调用DDR4 mig IP

第一步

 第二步

 1.IP名称

2.选择正常模式就行,后面的AXI4不用勾选,没用到AXI4协议接口

3.时钟频率,看你自己调用,最终也不会影响什么,因为时钟是你输入差分时钟进去的。

4.时钟比,因为你输入进去差分时钟,只是给DDR4这个mig控制用,不是给DDR4,经过选择比进行换算,给出一个用户端使用时钟,想往里面 写数据和读数据时就是用这个用户时钟。

5.参考时钟:建议对号入座,选择你输入的时钟大小为参考,否则在时钟约束的时候会出现约束大小的错误。

6.选择信号,选一个和你的ddr型号差不多的就可以,不一定要全部一样

7.选择数据位宽

第三步

 1.选择app_addr地址组合,根据你的需要进行选择就行。

2.选择CL时间:一般只用在读延时上,经过延时读出数据。

3.选择写延时:写入数据时用户端和DDR4端会有一段数据缓冲时间,这就是写延时。

Debug Signals for controller :控制器的调试信号,默认,处除非你会调电路

Simulation Options:默认选择BFM

Microblaze MCS ECC option:不选,一般用不到ECC。

Unisim仿真通常是指对电子电路的仿真。Unisim是Unisim7电路模拟软件,它是一种强大的电路模拟工具,可以用于电路分析和设计。使用Unisim进行电路仿真,可以帮助工程师更好地理解电路的行为,并验证电路设计的正确性。

BFM(Block-based Flow Manager)仿真则可能指的是针对特定软件或系统模块的仿真。BFM是Xilinx公司Vivado软件套件的一部分,用于管理FPGA设计中的高级块流。通过BFM仿真,可以验证这些高级块在系统中的性能和功能。

具体来说,Unisim仿真和BFM仿真是针对不同类型系统的仿真,前者针对电子电路,而后者针对特定软件或系统模块。

Example Design Options:示例设计,选SIMPLE TG,另一个用不到而且很复杂。

后面那几个选项更遇不到,都直接默认就行了

第四步

直接点ok就行,其它一般用不着。

以上就是基础知识,下期学习读写时序和仿真。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值