Vivado中DDRX控制器(mig)ip核配置中关于命令序号选择和地址映射说明(一)

情感   2024-11-16 08:06   河北  


本篇主要讨论Vivado中DDRX控制器(mig)ip核配置中关于命令序号选择和地址映射说明(一)


利用Xilinx 7系列FPGA开发时,经常需要驱动外部存储器--DDRX。Xilinx提供了mig(存储器接口生成器)这个ip用以驱动外部存储器。



在配置中有一项命令序号模式的选择:



mig这个ip可以接收多个命令(在第一个命令还没有执行时,就可以接收后续的几个命令。并不是接收一个命令,执行完后才可以接收下一个命令)。


上述选择两个模式的区别为:


正常模式允许存储器控制器重新编序收到的命令的顺序,以或者更高的性能(例:收到的命令顺序为A1,A2,A3,但是发现按照A1,A3,A2的顺序执行,不妨碍功能,并且拥有更高的性能)。


严格模式强制要求控制器按照收到的命令顺序去执行。


在配置时,还有一项地址映射模式选择:



DDRX SDRAM是一种按照M行,N列凑成一个片(BANK),然后多个片构成的一个存储器。在使用时需要提供BANK地址,行地址,列地址,才能够指定对应的访问位置(特别注意:每个位置存储一个字(需要看存储器的宽度),并不是一个字节(8个bit))。


注:此图为SDR SDRAM的内部结构图,只为方便理解。


在使用mig时,我们需要提供一个地址,那么这个地址的各个位对应的DDRX SDRAM的bank地址,行地址,列地址的模式是按照上述选择的。


例:(不考虑RANK地址),假设行地址13位,列地址10位,BANK地址3位,无论我们选择哪一种模式,我们的地址都是给一个26位的地址。如果选择ROWBANK,COL的模式,那么地址的25:13会给到行地址,1210会给到BANK地址,9:0会给到列地址如果选择BANK,ROWCOL的模式,那么地址的25:23会给到BANK地址,2210会给到行地址,9:0会给到列地址


那么这两个地方我们应该选择哪个呢?


这个和内部结构以及工作原理有关系,并且也和我们平时使用的方式 有一定的关系。


内部结构在上述已经简单的叙述过了,下面简述一下工作原理:


在访问时,我们首先需要激活访问地址对应的BANK里面的对应的那一行,然后才可以进行读写。


下面给出SDRAM中的几个特性:


· 在SDRAM中某一行激活了,是需要关闭的(有时间的限制)。


· 在SDRAM中如果第二个操作和第一个操作是同一个bank,同一行,那么第一个操作完成后,可以不关闭此行,第二个操作也不用激活,此时提高了访问效率 。


. 在SDRAM中同一个BANK只能激活一行。例:如果第二个操作和第一个操作是同一个bank,但是不同行,那么就只能将第一个操作的行关闭,然后再将第二个行激活。



. 在SDRAM中,不同的BANK是可以同时激活使用者想要访问的行。例:如果第二个操作和第一个操作不在同一个bank,那么就可以在关闭第一个操作对应的bank的同时,激活第二个操作对应的BANK,那么此时相当于节省了一段时间,提高了访问的效率。




知道了这几个特性,我们来考虑上述的两个选择项的问题:


首先考虑命令是否允许重新编号;假设第一个操作为BANK A,ROW A,第二个操作为BANK A, ROW B, 第三个操作为BANK A, ROW A。如果按照严格顺序执行,那么只能够进行激活、操作一,关闭,激活、操作二、关闭、激活、操作三、关闭。共需要九步完成所有的命令。如果把操作二和操作三对调,那么将执行激活、操作一、操作三、关闭、激活、操作二 、关闭。共需要七步即可完成,提高了一定的效率,所以此选项建议选择正常模式。


下面考虑地址映射的选项:


这个需要考虑一个使用者的方式:一般我们使用时,是一段连续的地址;例:0到10000。


如果选择BANK,ROWCOL的模式,就是利用第一个bank的第一行,然后第二行,第三行,········, 直到第一个bank利用完毕,才可以利用下一个bank。


如果选择ROWBANK,COL的模式,就是利用第一个bank的第一行,完事后,利用第二个bank的第一行,然后是第三个bank的第一行····直到所有的bank的第一行全部利用完事后,才会利用第二行。


那么在当一行利用完毕时,BANK,ROWCOL的模式下一个用的是第二行就必须等第一行关闭后,才可以激活第二行。如果选择ROWBANK,COL的模式下一个用的是其他的bank的行,所以不需要等待关闭就可以激活,相当于节省了一段时间,提高了访问效率。

END


往期精选 

 
 

【免费】FPGA工程师招聘平台

ISE 14.7 安装教程及详细说明

Vivado 2019.2 安装教程

SANXIN-B01开发板verilog教程V3电子版

学员笔记连载 | FPGA Zynq 千兆以太网回环

求职面试 | FPGA或IC面试题最新汇总篇

FPGA项目开发:204B实战应用-LMK04821代码详解(二)

项目合作 | 承接FPGA项目公告

资料汇总|FPGA软件安装包、书籍、源码、技术文档…(2024.07.29更新)


FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

加群主微信,备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖QQ交流群

备注姓名+公司/学校+岗位/专业进群

FPGA技术江湖
任何技术的学习就好比一个江湖,对于每一位侠客都需要不断的历练,从初入江湖的小白到归隐山林的隐世高人,需要不断的自我感悟自己修炼,让我们一起仗剑闯FPGA乃至更大的江湖。
 最新文章