來源:http://bbs.ednchina.com/BLOG_ARTICLE_3003106.HTM
Spartan6時鍾資源管理介紹
速度等級為-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就可以了。