spartan6_MCB使用详解

来源:网络收集 时间:2025-06-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

XILINX MCB使用详解

说明:本文档将详细讲述赛灵思的DDR2 IP 核的使用流程,目标芯片为Sparten6系列芯片xc6slx25-2fgg484,ISE版本为12.4,MCB版本为3.5。应用案例为FPGA芯片外带载两片DDR2芯片进行乒乓操作,目的是用一个PLL驱动两个MCB。

术语:ug382,Xilinx的User Guide,Sparten-6 FPGA Clocking Resources UG382(v1.4)August24,2010

本人技术有限,不足之处请指正,请发到 19861011lsf@sina.com,也欢迎讨论,QQ383997593,谢谢!

一、核的生成

1、 打开Xilinx CORE Generator工具,找到MCB核(MIG),

2、 选择版本,这里以3.5为例(尽量选择最新版本),进入Xilinx Memory Interface Generator界面,单击

Next,进入下一步;

3、 选择输出项,输入自定义模块名;

单击Next,注意:如果你是修改一个核而不是第一次生成核,会出现如下对话框,单击Yes,这时会覆盖掉一些文件,因此无论你在接下来的步骤中有没有对核的选项进行修改,最后必须点击Generator;

4、 单击Next,选择Memory Type;

注意到图中有个C1、C3,这是因为Xilinx的MCB有部分是属于硬核,引脚是固定的,分别存在于FPGA芯片的BANK1和BANK3,在代码中将看到很多的信号名是以C1_XXX和C3_XXX开头的,这很容易区分是哪个DDR芯片对应的信号名,注意与后面的端口(Port)混淆;

5、 单击Next,进入DDR2芯片选项模块,先选择存储器,再输入时钟;

这里的Memory Part 选择的是自定义的芯片,单击

,输入一个自定义的DDR2芯片名,

尽量输入芯片的实名而不是自定义名,这样有利于重复使用,不至于将来使用时不知所云,下面的参数可

以在你所选的DDR2芯片DATASHEET中找到,输入参数值,保存,这样就可以在

找到自定义的存储器了,单击Next; 6、 选择同上,单击Next; 7、 Next; 8、 Next;

9、 进入端口配置,

(1)选择配置模式,单向与双向的意思是指端口是可读、可写,还是既可读又可写,

将端口配置成一个读一个写,其他不用;

(2)选择存储器的地址映射方式,可根据自己程序设计方便选择,这里默认;

10、Next,这里由于对两个DDR2的操作是相同的,配置同上;Next 11、Next; 12、Next;

13、进入FPGA选项

实际情况选择单端还是差分,这里选择单端

,这里注意系统时钟的方式,根据

其他默认; 14、Next,同上; 15、Next;

16、选择 17、Next;

Next;

18、

二、IP核内部文件详解

该部分主要尝试描述MCB的时钟部分。

在Xilinx的MCB核中每一个MCB需要占用一个PLL,由于要求使用一个PLL,因此需要将两个PLL合并成一个。

1、 将生成的核文件导入工程中,尽量使用.v文件而不是.coe文件,这样便于修改。 2、 如果将所有.v文件导入后还有问号提示有一些AIX的文件未导入,不用管它。 3、 工程中IP核的顶层为;

该顶层目录下有以下文件:memc1_infrastrcture_inst.v、memc3_infrastrcture_inst.v,memc1_wrapper_inst.v、memc3_wrapper_inst.v,memc1_infrastrcture_inst.v、memc3_infrastrcture_inst.v描述的是每一个memory使用的PLL,将memc3_infrastrcture_inst.v删除,同时在这个模块

MCB

将memc3_infrastructure_inst的模块如下:

4、双击memc1_infrastrcture_inst.v,可以看到该文件中主要有三个部分:u_pll_adv模块,实际上就是Xilinx的PLL核;BUFG模块,是Xilinx的全局缓冲器;BUFPLL_MCB,是专门用于MCB的BUFPLL,对于BUFPLL不清楚的地方可以查阅ug382,该文档详细描述了Sparten6的时钟以及各种BUF;另外还有一个generate循环体模块,该模块是针对单端还是差分输入时钟做不同的输入BUF处理;需要注意的是,这个模块的所有参数都会在外部顶层模块做重新定义。 4.1、generate模块:

假设C_INPUT_CLK_TYPE == \。若输入时钟已经上了全局时钟域,

那么

的修改PLL的输入时钟

需要注释掉,反之保留。注意,若注释掉,要相应

4.2、u_pll_adv模块:

如上所述,u_pll_adv模块就是Xilinx的PLL核,并没有什么特殊之处,而MCB只用了其中的4个时钟输出,其中一个还是提供给用户逻辑使用,因此完全可以对该PLL的3个时钟输出做自定义,这样可以减少系统所用PLL个数。

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库spartan6_MCB使用详解在线全文阅读。

spartan6_MCB使用详解.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/459226.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219