[筆記]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就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM