讲解xilinx fpga 使用mig ip对ddr3的读写控制,旨在让大家更快的学习和应用ddr3。
本实验和工程基于digilent的arty artix-35t fpga开发板完成。
软件使用vivado 2018.1
第二篇:mig ip的创建
1 ddr3
digilent的arty artix-35t fpga开发板板载mt41k128m16jt-125 ddr3基本信息如下表所示。
2 mig ip的创建
1>点击ip catalog ->搜索mig->双击memory interface generator(mig 7 series)
2>打开后可以看到一些基本信息
3> enter a component name in the component name field ->next
component name(组件名称):ddr3_ip
4>这里我们不做兼容性选择,直接下一步
5>控制类型选择ddr3 sdram
6>①clock period:(此功能表示所有控制器的工作频率,频率模块受所选fpga和器件速度等级等因素的限制。) 3000ps(333.33mhz)。
②phy to controller clock ratio :(此功能确定物理层(存储器)时钟频率与控制器和用户界面时钟频率的比率。 由于fpga逻辑时序限制,2:1比率会降低最大存储器接口频率。 2:1比率的用户界面数据总线宽度是物理存储器接口宽度宽度的四倍,而4:1比率的总线宽度是物理存储器接口宽度的八倍。 2:1比率具有较低的延迟。 4:1的比率是最高数据速率所必需的)4:1。
③memory type:此功能选择设计中使用的内存部件类型。
④memory part :此选项为设计选择内存部件。 选择可以从列表中创建或者可以创建新部件。mt41k128m16xx-15e。
⑤memory voltage:根据设计原理图1.35v。
⑥data width:(可以根据之前选择的存储器类型在此处选择数据宽度值。 该列表显示所选部件的所有支持的数据宽度。 可以选择其中一个数据宽度。 这些值通常是各个器件数据宽度的倍数。 在某些情况下,宽度可能不是精确倍数。 例如,16位是x16组件的默认数据宽度,但8位也是有效值。)16。
⑦data mask:(选择时,此选项会分配数据屏蔽引脚。 应取消选择此选项以释放数据屏蔽引脚并提高引脚效率。 此外,对于不支持数据掩码的内存部分禁用此功能。)勾选。
nxet。
7>①input clock period:6000ps(166.667mhz)。
②read burst type and length:sequential。
③output driver impedance control:rzq/6。
其他默认,next。
8>①system clock :(此选项为sys_clk信号对选择时钟类型(单端,差分或无缓冲)。 选择no buffer选项时,ibuf原语不会在rtl代码中实例化,并且不会为系统时钟分配引脚。 )no buffer。
②reference clock :(此选项为clk_ref信号对选择时钟类型(单端,差分,无缓冲或使用系统时钟)。 当输入频率介于199和201 mhz之间时(即输入时钟周期介于5,025 ps(199 mhz)和4,975 ps(201 mhz)之间),将显示use system clock(使用系统时钟)选项。参考时钟频率基于数据速率 并注意添加mmcm以创建高于1,333 mb / s的适当ref_clk频率。当选择no buffer选项时,ibuf原语不会在rtl代码中实例化,并且引脚不会分配给参考时钟。)no buffer。
③system reset polarity:(可以选择系统复位(sys_rst)的极性。 如果选项选择为低电平有效,则参数rst_act_low设置为1,如果设置为高电平 - 高,则参数rst_act_low设置为0。)active low。
④debug signals control:选择此选项可以将校准状态和用户端口信号端口映射到example_top模块中的ila和vio。 这有助于使用vivado design suite调试功能监控用户界面端口上的流量。 取消选择debug signals control选项会使example_top模块中的调试信号保持未连接状态,并且ip目录不会生成ila / vio模块。 此外,始终禁用调试端口以进行功能仿真。off。
⑤sample data depth:此选项选择vivado调试逻辑中使用的ila模块的样本数据深度。 当“内存控制器的调试信号”选项为“开”时,可以选择此选项。
⑥internal verf:(内部vref可用于数据组字节,以允许使用vref引脚进行正常的i / o使用。 内部vref仅应用于800 mb / s或更低的数据速率。)勾选。
其他默认,next。
9>默认,next。
10>选择fixed pin out。我们的原理图管脚已经确定无需从新设计。
11>点击read xdc/ucf,这里ddr3管脚支持两种约束文件。
12>点击validate验证管脚约束是否有错误。验证通过next。
13>默认,next。
14>next。
15>accept,next。
16>generate
17>generate
18>至此我们的mig ip创建完成。
JSR 303校验规范及其实现
手机信号放大器如何实现双向放大
微软已调整Office套件支持时间,Office这个版本将被放弃
我国累计进口缝制机械产品出口额再创新高
曝Zen2架构性能将提升16%
通过Arty Artix-35T FPGA开发板创建mig IP
预测2019年磷酸铁锂价格走向
皮带机跑偏后如何调整平衡?怎么控制皮带机跑偏呢?
基于封装天线的过孔分析
最佳iPhone12充电器:傲基100W四口充电器
小米6或于4月11发布,全系骁龙835+陶瓷尊享版+两版本,货量充足不抢购?
开关稳压器的特点 与线性稳压器的区别
巨头开启人工智能时代,改变人类未来的变革正发生!
平板示波器如何进行探头的补偿和衰减系数设定
人工智能医药研发领域存在哪三种商业模式
三极管和晶闸管有什么区别?
卷扬机远程运营可视化管理平台解决方案
以太网 PHY 的功能和选择
房地产行业如何助推智能家居的发展
什么是开口率(Aperture ratio)