• 人民日报召开创刊70周年读者座谈会 2019-06-09
  • 【改革印记——看中国发展】变迁印记,留下的是韵味现实 2019-05-31
  • [大笑]阿Q都是这么说的。。。。。。 2019-05-31
  • 曾祖红:天津欢乐谷二期将于6月30日对外开放 2019-05-28
  • 新发现:墨西哥发现恐龙新物种 2019-05-21
  • 为吸引中国游客 世界各国纷纷喊话:“我最懂你” 2019-05-21
  • 任天堂Switch九月开始收连线费 详细方案公开 2019-05-20
  • 甘肃警方破获一起“微信卖茶叶”特大新型网络诈骗案 2019-05-20
  • 党史上的两个闽赣省委 2019-05-07
  • “12338”妇女维权公益服务热线介绍 2019-05-02
  • 中国驻越南使馆举办越南媒体交流会 2019-05-02
  • 曹建明:坚持有腐必反,坚定不移“打虎”、“拍蝇”、“猎狐” 2019-04-30
  • 他们不知道,年轻人轻轻松松也能就业 2019-04-30
  • 哥大在读硕士马健瑞创业 为留学生做“专属保护”装备 2019-04-29
  • 为了人民重托——记政府工作报告起草 2019-04-22
  • SPRATAN6_MCB_使用分享 下载本文

    青海11选五怎么中奖 www.skw3.com Spartan6 ------MCB_DDR2 设计说明

    如今的存储器工艺、性能发展之快真是让人岑木结舌,但是随之而来的控制复杂度

    也大大增加,对于PCB设计要求、如何使存储器跑到最大带宽,都是工程师们要考虑的事。对于电子市场来讲,现在一片1Gbit的800M速率的DDR2颗粒价格在40元左右,无论从成本和性能讲都有绝对大的优势。

    XILINX 公司率先在FPGA芯片中集成了MCB硬核,它可以支持到DDR3,而且对于大多数厂家的芯片系列都支持,这也是spartan6系列闪耀的地方。对于工程来讲,其MCB硬核优秀的误码校验和偏移时钟校验,以及PLL_ADV工作时的稳定、高精度都大大保证了项目产品的质量。而对于用户接口又是以FIFO的读写方式,代替复杂的ddr2读写逻辑。以sram的地址映射方式代替复杂的行列地址选择??杉鹲partan6 ——MCB控制器的诞生是值得大家高兴的。

    本文从(1)“MCB_CLK”设计须知”(系统时钟需要考虑的问题)

    (2)“CORE Gen的使用” (即MCB控制器的生成) (3)“硬件平台调试” (红色飓风spartan6开发板完成DDR2高速的

    读写并且校验误码)

    (4)“Xilinx谦虚的地方” (揭秘PLL_ADV / MCB硬核的性能指标) (5)“您用得到的我粘出来” (在XILINX应用设计中很有用的文档)

    MCB ——CLK设计须知

    1. MCB -CLK驱动说明

    (1) 对于两个以上的MCB同时使用,对于同端的PLL输出clkout0、clkout1要共用。

    如果只应用一个,Xilinx建议首先要选择3_bank,这样不会占用配置引脚和复用引脚。

    MCB布局

    从PLL输出的时钟只有两条时钟线可以到达硬件的左右两侧,并与IO_clk网络相连,因此同侧的MCB要共用一样的IO_clk网络、跑相同的速率。(如clkin200M则clkout0、1=400M).

    (2) BUFPLL_MCB驱动器内部参数为DIVIDE=2,2x_clk提供给ddr2的通讯速率为

    doudle rate,是pll输入时钟的两倍,而1xclk则给ddr2的硬件主时钟。

    MCB驱动器示意图

    (3)Calibration clk校验时钟则要求时钟设计在min=50M / max=100M

    (4)HDL内部逻辑时钟则与MCB端口设置的宽度有关 最佳设置公式如下,时钟应该大于等于这个clk0:Clk0(内部逻控制辑同步时钟)=system_clk(硬件输入时钟)*2(double rate)*X

    (X=ddr2的数据宽度*16 or*8 or*4)/MCB端口的设置宽度128 or 64 and etc。

    (5)CMD_FIFO的读写clk建议要使用一致的时钟,如使用Clk0(内部逻控制辑同步时钟)。

    2. 关于程序中时钟PLL的设置

    module memc3_infrastructure # 中主要是设计时钟源的文件,系统的时钟都在这里设置

    (1) 内部差分时钟输入可以根据自己设计选择加入或否

    (比如你愿意出高价格买差分的晶振“100M差分170RMB”,你可以加上如下的BUF转成单时钟,反之修改设计中的这部“如下”注销即可,并将NET“sys_clk_ibufg” LOC=“单端晶振”)

    // IBUFDS SYS_CLK_INST // (

    // .I (sys_clk_p), // .IB (sys_clk_n), // .O (sys_clk_ibufg) // );

    (2)内部时钟输入相位和频率可以根据自己设计选择参数,具体如下: (后面有对其评估的详细报告)

    PLL_ADV # (

    .BANDWIDTH (\ .CLKIN1_PERIOD (CLK_PERIOD_NS), .CLKIN2_PERIOD (1),

    .CLKOUT0_DIVIDE (1), //******用于处理外部的ddr2数据的2X时钟 .CLKOUT1_DIVIDE (1), //******用于处理外部的ddr2数据的2X_180时钟 .CLKOUT2_DIVIDE (6),//*******内部logic工作时钟 .CLKOUT3_DIVIDE (6),//*******校验时钟50---100M .CLKOUT4_DIVIDE (1),//*******可选频率端口 .CLKOUT5_DIVIDE (1), //*******可选频率端口 .CLKOUT0_PHASE (0.000), .CLKOUT1_PHASE (180.000), .CLKOUT0_DUTY_CYCLE (0.500), .CLKOUT1_DUTY_CYCLE (0.500), .CLKOUT2_DUTY_CYCLE (0.500), .CLKOUT3_DUTY_CYCLE (0.500),

    .COMPENSATION (\ .DIVCLK_DIVIDE (1),

    .CLKFBOUT_MULT (6),//**参数设置 MUSLT/clkoutx*clkinbuf=actecl clk .CLKFBOUT_PHASE (0.0), .REF_JITTER (0.005000) )

    说明:设输入的时钟为X

    CLKOUT0_DIVIDE= X * CLKFBOUT_MULT/ CLKOUT0_DIVIDE _paramater

    CORE GENERATER

    “为了大家学习截图很多,照做就可以”

    1新建工程(ise11.1以上版本)file—>new project

    2. 选择spartan6_etc配置如下(选择新片类型)

    3. 选择语言Verilog,点击OK下一步设置(其他配置如下图:

    4. 在Memory ——IP中选中MIG如下图

    然后的两个对话框都为next下一步。

    5. 选择硬件在bank3调用MCB, DDR2器件





  • 人民日报召开创刊70周年读者座谈会 2019-06-09
  • 【改革印记——看中国发展】变迁印记,留下的是韵味现实 2019-05-31
  • [大笑]阿Q都是这么说的。。。。。。 2019-05-31
  • 曾祖红:天津欢乐谷二期将于6月30日对外开放 2019-05-28
  • 新发现:墨西哥发现恐龙新物种 2019-05-21
  • 为吸引中国游客 世界各国纷纷喊话:“我最懂你” 2019-05-21
  • 任天堂Switch九月开始收连线费 详细方案公开 2019-05-20
  • 甘肃警方破获一起“微信卖茶叶”特大新型网络诈骗案 2019-05-20
  • 党史上的两个闽赣省委 2019-05-07
  • “12338”妇女维权公益服务热线介绍 2019-05-02
  • 中国驻越南使馆举办越南媒体交流会 2019-05-02
  • 曹建明:坚持有腐必反,坚定不移“打虎”、“拍蝇”、“猎狐” 2019-04-30
  • 他们不知道,年轻人轻轻松松也能就业 2019-04-30
  • 哥大在读硕士马健瑞创业 为留学生做“专属保护”装备 2019-04-29
  • 为了人民重托——记政府工作报告起草 2019-04-22