• [笔记]Spartan6和Spartan3A


    来源:http://bbs.ednchina.com/BLOG_ARTICLE_3003106.HTM

    Spartan6时钟资源管理介绍

    1.注意时钟的输入与输出范围,所有应用不能超过范围.。如Spartan-6 器件DCM的DLL模块的时钟输入范围如下(以下摘自Spartan-6 DATA SHEET):
    速度等级为-1L的为器件5MHz~175MHz。
    速度等级为2的为器件5MHz~250MHz。
    速度等级为3和4的为器件5MHz~280MHz。

    4.PLL与DCM的级联选择
    a. PLL输出驱动DCM模块,优点是在输入DCM模块前可减少输入时钟的抖动,同时又可以使用户能构访问所有DCM模块的输出信号,一个PLL可以驱动多个DCM模块,并不要求PLL与DCM都是在同一CMT模块内。
    b. DCM模块输出驱动PLL模块,这种情况可以减少输入时钟和DCM时钟输出的总体抖动。如果DCM输出直接连到PLL输入,要求PLL与DCM都是在同一CMT模块内,这种情况可减少的本地噪声与专用布线资源。如果PLL与DCM不在同一CMT模块内,DCM输出必须经过BUFG缓冲后连到PLL。由于PLL输入信号的限制, 最多只有两个DCM输出信号可以连到一个PLL模块.
    c. PLL与PLL的级联, 级联PLL可以产生更大范围的时钟, 两个PLL的级联也要通过BUFG缓冲, 此时器件通路的抖动最小。

    Spartan3A型号是XC3S400A-5FG320  ,板子采用100MHZ的系统时钟,单端接口

    Spartan6型号是XC6SLX150T-3FGG900 ,板子采用74.25MHZ的系统时钟,双端差分接口

    Spartan6型号是XC6SLX16-3CSG324  ,板子采用100MHZ的系统时钟,单端接口

    2013-04-03   11:00:14

    ISE工具下-->Edit-->Language Templates...有许多源语可以参考,再详细的可以看资料手册。

    Spartan 6中CLOCK

     www.xilinx.com Spartan-6 FPGA Clocking Resources   UG382 (v1.6) May 12, 2011
    Chapter 1: Clock Resources
    Clock Resources
    The Spartan-6 FPGA clock resources consist of four types of connections:
    • Global clock input pads (GCLK)
    • Global clock multiplexers (BUFG, BUFGMUX)
    • I/O clock buffers (BUFIO2, BUFIO2_2CLK, BUFPLL)
    • Horizontal clock routing buffers (BUFH)


    Spartan 3A中ERROR解决:

    问题一:ERROR:Place:864 - Incompatible IOB's are locked to the same bank 0
       Conflicting IO Standards are:
       IO Standard 1: Name = LVCMOS33, VREF = NR, VCCO = 3.30, TERM = NONE, DIR = OUTPUT, DRIVE_STR = 12
       List of locked IOB's:
        led10
        led7
        led8

    错误产生的原因是Bank0中VCCO 电压不一致,详细情况可以查看编译产生的文件(*.par)报告。

    在Kintex 7 中,编译产生的文件是(*.map)报告。

    此外,在Kintex 7 中,我们可以通过编译产生的文件是(*.lpc)报告来看所有已分配和未分配引脚的约束,对于未分配的引脚我们就可以直接用它,只要这样做能编译通过,且能通过Chipscope来观察此信号就OK。

    附件:PAR报告中提示如下:

    ERROR:Place:864 - Incompatible IOB's are locked to the same bank 0
       Conflicting IO Standards are:
       IO Standard 1: Name = LVCMOS33, VREF = NR, VCCO = 3.30, TERM = NONE, DIR = OUTPUT, DRIVE_STR = 12
       List of locked IOB's:
        led10
        led7
        led8

       IO Standard 2: Name = LVDS_25, VREF = NR, VCCO = 2.50, TERM = NONE, DIR = OUTPUT, DRIVE_STR = NR
       List of locked IOB's:
        TXCLK_N
        TXCLK_P
        TXDAT_N<0>
        TXDAT_N<1>
        TXDAT_N<2>
        TXDAT_N<3>
        TXDAT_P<0>
        TXDAT_P<1>
        TXDAT_P<2>
        TXDAT_P<3>
        TXCLK_N_1
        TXCLK_P_1
        TXDAT_N_1<0>
        TXDAT_N_1<1>
        TXDAT_N_1<2>
        TXDAT_N_1<3>
        TXDAT_P_1<0>
        TXDAT_P_1<1>
        TXDAT_P_1<2>
        TXDAT_P_1<3>

       These IO Standards are incompatible due to VCCO mismatch.

    解决方法:我一直以为在UCF文件中约束了不同的电压,但是查看了很久都没有找到,后来请教师傅,原来是程序的源语中定义了差分电压为2.5V,而约束文件又在同一个BANK定义了3.3V,才会产生冲突。

    附件:程序中内容如下:

    genvar i,j ;
    generate
    for (i = 0 ; i <= 3 ; i = i + 1)
    begin : loop0
    OBUFDS #(.IOSTANDARD("LVDS_25"))  
    obuf_d   (.I(tx_output_reg[i]), .O(dataouta_p[i]), .OB(dataouta_n[i]));
    ODDR2  #(.DDR_ALIGNMENT("NONE")) fd_ioc (.C0(clkx3p5), .C1(clkx3p5not), .D0(tx_output_fix[i+4]), .D1(tx_output_fix[i]), .CE(1'b1), .R(1'b0), .S(1'b0), .Q(tx_output_reg[i])) ;
    assign tx_output_fix[i]   = outdata[i]   ^ TX_SWAP_MASK[i] ;
    assign tx_output_fix[i+4] = outdata[i+4] ^ TX_SWAP_MASK[i] ;
    end
    endgenerate

    将红色部分的LVDS电压改成3.3V就可以了。

  • 相关阅读:
    mac下给git://协议设置代理Proxy
    安卓手机中wifi密码查看器,查看wifi密码教程
    坑爹啊!gradle 2.1构建android出现错误的解决方案
    php-fpm开启报错-ERROR: An another FPM instance seems to already listen on /tmp/php-cgi.sock详解
    git rebase 还是 merge的使用场景最通俗的解释
    git rebase 与 git merge 的区别
    zend opcache的最佳设置(仅做参考)
    PHP7.3 报错: A non well formed numeric value encountered
    关于PHP.ini的opcache中opcache.revalidate_freq参数设置测试报告
    微信小程序登录实现,前端+后端PHP代码(前端获得CODE,后端获取微信用户的OPEN ID 和 UNION ID)
  • 原文地址:https://www.cnblogs.com/zlh840/p/2605427.html
Copyright © 2020-2023  润新知