FPGA的LVDS介紹和xilinx原語的使用方法中文說明_第1頁
FPGA的LVDS介紹和xilinx原語的使用方法中文說明_第2頁
FPGA的LVDS介紹和xilinx原語的使用方法中文說明_第3頁
FPGA的LVDS介紹和xilinx原語的使用方法中文說明_第4頁
FPGA的LVDS介紹和xilinx原語的使用方法中文說明_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

FPGA的LVDS介紹和xilinx原語的使用方法中文說明低壓差分傳送技術(shù)是基于低壓差分信號(LowVolt-agcDifferentialsignaling)的傳送技術(shù),從一個電路板系統(tǒng)內(nèi)的高速信號傳送到不同電路系統(tǒng)之間的快速數(shù)據(jù)傳送都可以應(yīng)用低壓差分傳送技術(shù)來實(shí)現(xiàn),其應(yīng)用正變得越來越重要。低壓差分信號相對于單端的傳送具有較高的噪聲抑制功能,其較低的電壓擺幅允許差分對線具有較高的數(shù)據(jù)傳輸速率,消耗較小的功率以及產(chǎn)生更低的電磁輻射。LVDS:LowVoltageDifferentialSignaling,低電壓差分信號。LVDS傳輸支持速率一般在155Mbps(大約為77MHZ)以上。LVDS是一種低擺幅的差分信號技術(shù),它使得信號能在差分PCB線對或平衡電纜上以幾百M(fèi)bps的速率傳輸,其低壓幅和低電流驅(qū)動輸出實(shí)現(xiàn)了低噪聲和低功耗。差分信號抗噪特性從差分信號傳輸線路上可以看出,若是理想狀況,線路沒有干擾時,在發(fā)送側(cè),可以形象理解為:IN=IN+—IN-在接收側(cè),可以理解為:IN+—IN-=OUT所以:OUT=IN在實(shí)際線路傳輸中,線路存在干擾,并且同時出現(xiàn)在差分線對上,在發(fā)送側(cè),仍然是:IN=IN+—IN-線路傳輸干擾同時存在于差分對上,假設(shè)干擾為q,則接收則:(IN++q)—(IN-+q)=IN+—IN-=OUT所以:OUT=IN噪聲被抑止掉。上述可以形象理解差分方式抑止噪聲的能力。褻m各神WDS技術(shù)的工業(yè)咨準(zhǔn)工業(yè)摭準(zhǔn)據(jù)率果出捷幅(WJ功煢LVDSTIA'EIA-6443.12&Gbps±354)mVLUPECLNb'A10+Gbfis±@00mV中等-高CMLWA10+Gbpst800mV中等M-LVDSTIA'EIA-599250k也能土55dmV低B-LVDSWASOOMbps±550mVfitFrom:美國國家半導(dǎo)體的《LVDS用戶手冊》P9

FPGA中的差分管腳為了適用于高速通訊的場合,現(xiàn)在的FPGA都提供了數(shù)目眾多的LVDS接口。如Spartan-3E系列FPGA提供了下列差分標(biāo)準(zhǔn):LVDSBusLVDSmini-LVDSRSDSDifferentialHSTL(1.8V,TypesIandIII)DifferentialSSTL(2.5Vand1.8V,TypeI)2.5VLVPECLinputs所擁有的差分I/O管腳數(shù)目如下Thblo2:RvEI白bteil/OsshdDlifferentiBllUOPnirsVQ10OVQG10DCPI32CPG132TQ144TQG144P口海PQG2C9FT25GFTG25GFG32QFGG320FG400FGGJOOFG4B4F眼4B1deviceUbbtUfler□IlfUserDWUserniffUser□IlfUoerDIHUserDIWUserXC3S1DOE酒3Q倒133E)35倒1聊網(wǎng)■10構(gòu)--XC3S25OE御炭(7)41倒1084D向1S8㈣65佝172W倒-XC3S5D0E03D92例15&(32)㈤1B0㈣77倒232闞92----XC3S12ME-19。㈣77250㈣09f倒304網(wǎng)124㈣--XC3S16OTE-250㈣弛能J304(7S)124㈣376例(31)From:Spartan-3EFPGAFamily:CompleteDataSheetp5I/O管腳的命名方式:Bank0/8X1LINXSpartan-3EBank0/8X1LINXSpartan-3EFPGA£ZB^nk2\Figure80:DifferentialPairLabelingFPairNumbep—A?^BankNumber2"PositivePolarityTrueDriverIO_L3?4IO_L3S(NU.NegativePola-itysInvertedDriverDS31i<00_1111teFrom:Spartan-3EFPGAFamily:CompleteDataSheetp16450%一I7IDXVICMViNNVINPGNDlevelSpartan-3EDifferentialInpulSpartan-3EDifferentialInputwithOn-ChipiDifferentialTerminator]Spartan-3EDifferentialOutputFigure11:DifferentialInputsandOutputs[JS312-2_2-l_Qa2W5From:Spartan-3EFPGAFamily:CompleteDataSheetp18Spartan-3E系列FPGA器件差分I/O接口輸入工作的特性參數(shù):EnternalLogJcDlff&r&ntiai/OPairPins^ihjp*"「NNV|CM=inputcommonmodevoltage=V|D=DifferentiaJInputvoyage=V,Spartan-3EDifferentialInpulSpartan-3EDifferentialInputwithOn-ChipiDifferentialTerminator]Spartan-3EDifferentialOutputFigure11:DifferentialInputsandOutputs[JS312-2_2-l_Qa2W5From:Spartan-3EFPGAFamily:CompleteDataSheetp18Spartan-3E系列FPGA器件差分I/O接口輸入工作的特性參數(shù):EnternalLogJcDlff&r&ntiai/OPairPinsIOSTANDARDAttributevccoT?Driwrs^j如ViewMln(V>Num(V>Mbjl(V)Mln(mV)Ntom(mV}MaxgMlh(V)Nam(V)(V)LVDS.252.3752.602.6261003606000.30125a.20fllVDS252.37S2.502.62S100350eooa.3D1.252.20MINI_LVDS_252.3752502.625200-6000.30-22LVFECL..35112*inputsOnly100800woo0.51.Z210RSDS_2S2.37S£502.625100200-0.31.201-4DIFF_HSTUJ_i?17插1.9100--O.B-1.1DIFF_HSTL_HLie1.7i_a1.91D0?-o.a-idDIFF_SSTL18_I1.7ra1.9100--0.7-1-1DIFF_SSTL2_I是27100■-1.0-isFrom:Spartan-3EFPGAFamily:CompleteDataSheetp126Spartan-3E系列FPGA器件差分I/O接口輸出工作的特性參數(shù):^ternafLogicDifferentia[I/OPalfPins^ternafLogicDifferentia[I/OPalfPins"qutnVQUTPGNDl^vel50%X11*DJVqgmJvVOLV。*qlttp~2Vqutnt“偵QLTTP*^OUTNVOCM=Outputcominonmodevoltage=^OUTP%口=outputdffferentlalvoltage"ch=OutputvohageIndicatingaHighfogiclevelVQL=Outputvo-liageIndicatingaLow3ogtclev^lD5312.B冗宅脈Figure71:Differentialqlttp~2Vqutn^OUTP由謎82:DCCliar^cieri$tjic;s-ofLlseirKOsUsingDiffwnerrti日ISignalSi^ndardsIOSTANDARDAttributeVOCM烏L?頃VQHMln(mV)T!T(mV)Maw(mV)Mhn(mV>MM(mV)Mln(V)TV|>閔Max(WMln(mV)Max(mV)Mln£V)(V)LVOS_25260360450——1125-1.376—一-BLVDS_2525Q3&0450——-1!_2Q——-—一MINi_kVD$_25300—600—KJ1.0-14ho—一RSDS-QEtoo—枷—JLI-1.4——一DlFF_HSTLJ_1fi一Woco_0.40.4DiFEHSTkjije一-"got。?40.4DIFF_SSTLt0.I-V1T十0.475Vrr-0475DIFF_SSTL2J—Vtt+0.61V-rr-Q.SIFrom:Spartan-3EFPGAFamily:CompleteDataSheetp127Xilinx公司差分原語的使用(原語,其英文名字為Primitive,是Xilinx針對其器件特征開發(fā)的一系列常用模塊的名字,用戶可以將其看成Xilinx公司為用戶提供的庫函數(shù),類似于C++中的“cout”等關(guān)鍵字,是芯片中的基本元件,代表FPGA中實(shí)際擁有的硬件邏輯單元,如LUT,D觸發(fā)器,RAM等,相當(dāng)于軟件中的機(jī)器語言。在實(shí)現(xiàn)過程中的翻譯步驟時,要將所有的設(shè)計單元都轉(zhuǎn)譯為目標(biāo)器件中的基本元件,否則就是不可實(shí)現(xiàn)的。原語在設(shè)計中可以直接例化使用,是最直接的代碼輸入方式,其和HDL語言的關(guān)系,類似于匯編語言和C語言的關(guān)系。)關(guān)于Xilinx原語的詳細(xì)介紹,可以參考下面文章FPGA開發(fā)實(shí)用教程第4節(jié)Xilinx公司原語的使用方法/article/08-03/37457s.htmlISE的Help—sofewareManuals差分I/O端口組件1)IBUFDS舊UFDS原語用于將差分輸入信號轉(zhuǎn)化成標(biāo)準(zhǔn)單端信號,且可加入可選延遲。在舊UFDS原語中,輸入信號為I、IB,一個為主,一個為從,二者相位相反。舊UFDS的邏輯真值表所列,其中“-*”表示輸出維持上一次的輸出值,保持不變。表舊UFDS原語的輸入、輸出真值表輸入輸出IIBO0::0001■&11.1IBUFDS原語的例化代碼模板如下所示://IBUFDS:差分輸入緩沖器(DifferentialInputBuffer)//適用芯片:Virtex-II/II-Pro/4,Spartan-3/3E//XilinxHDL庫向?qū)О姹?,ISE9.1IBUFDS#(?DIFF_TERM("FALSE"),//差分終端,只有Virtex-4系列芯片才有,可設(shè)置為True/Flase.IOSTANDARD("DEFAULT")//指定輸入端口的電平標(biāo)準(zhǔn),如果不確定,可設(shè)為DEFAULT)IBUFDS_inst(.O(O),//時鐘緩沖輸出.I(I),//差分時鐘的正端輸入,需要和頂層模塊的端口直接連接.IB(IB)//差分時鐘的負(fù)端輸入,需要和頂層模塊的端口直接連接);//結(jié)束IBUFDS模塊的例化過程/itp/xilinx6/books/data/docs/lib/lib0229_197.htmlVerilogInstantiationTemplateIBUFDSinstance_name(.O(user_O),.I(user_I),.IB(user_IB));圖舊UFDS原語的RTL結(jié)構(gòu)圖2)OBUFDSOBUFDS將標(biāo)準(zhǔn)單端信號轉(zhuǎn)換成差分信號,輸出端口需要直接對應(yīng)到頂層模塊的輸出信號,和舊UFDS為一對互逆操作。OBUFDS原語的真值表如表所列。表OBUFDS原語的真值表輸丞、輸出I00B00i:11.0OBUFDS原語的例化代碼模板如下所示://OBUFDS:差分輸出緩沖器(DifferentialOutputBuffer)//適用芯片:Virtex-II/II-Pro/4,Spartan-3/3E//XilinxHDL庫向?qū)О姹?,ISE9.1OBUFDS#(.IOSTANDARD("DEFAULT")//指名輸出端口的電平標(biāo)準(zhǔn))OBUFDS_inst(.O(O),//差分正端輸出,直接連接到頂層模塊端口.OB(OB),//差分負(fù)端輸出,直接連接到頂層模塊端口.I(I)//緩沖器輸入);//結(jié)束OBUFDS模塊的例化過程/itp/xilinx5/data/docs/lib/lib0317_301.htmlVerilogInstantiationTemplateOBUFDSinstance_name(.O(user_O),.OB(user_OB),.I(use");JZL—圖OBUFDS的RTL結(jié)構(gòu)圖3)IOBUFDSIOBUFDS原語真值表inputsBidirectionalOutputsITIOIOB0X1■Z■Z■_Ji00'0'101"0101Th口dash(-}me^nsNoChange.IOBUFDS的RTL結(jié)構(gòu)圖IVerilogInstantiationTemplate//IOBUFDS:DifferentialBi-directionalBuffer//Virtex-II/II-Pro/4/5,Spartan-3/3E/3A//XilinxHDLLibrariesGuide,version9.1iIOBUFDS#(.IBUF_DELAY_VALUE("0"),//Specifytheamountofaddedinputdelayforthebuffer,"0"-"16"(Spartan-3Eonly).IFD_DELAY_VALUE("AUTO"),//Specifytheamountofaddeddelayforinputregister,"AUTO","0"-"8(Spartan-3Eonly).IOSTANDARD("DEFAULT")//SpecifytheI/Ostandard)IOBUFDS_inst(.O(O),//Bufferoutput.|O(|O),//Diff_pinout(connectdirectlytotop-levelport).|OB(|OB),//Diff_ninout(connectdirectlytotop-levelport).|(|),//Bufferinput.T(T)//3-stateenableinput);//EndofIOBUFDS_instinstantiation差分時鐘組件1)|BUFGDS與全局時鐘資源相關(guān)的原語常用的與全局時鐘資源相關(guān)的Xilinx器件原語包括:IBUFG、IBUFGDS、BUFG、BUFGP、BUFGCE、BUFGMUX、BUFGDLL和DCM等,如圖1所示。IBUFGDS是IBUFG的差分形式,當(dāng)信號從一對差分全局時鐘管腳輸入時,必須使用舊UFGDS作為全局時鐘輸入緩沖。IBUFG支持BLVDS、LDT、LVDSEXT、LVDS、LVPECL和ULVDS等多種格式的IO標(biāo)準(zhǔn)。/itp/xilinx6/books/data/docs/lib/lib0231_199.htmlIBUFGDS原語真值表InputsOutputs1IB00o01010111*Thedash(-)rr;已a(bǔ)n^.NoChang已.IBUFGDS的RTL結(jié)構(gòu)圖VerilogInstantiationTemplateIBUFGDSinstance_name(.O(user_O),.I(user_I),.IB(user_IB));LVDS差分的在FPGA中的應(yīng)用在高速傳輸?shù)倪^程中,經(jīng)常會受到干擾而誤碼,因此有時候時鐘輸入采用差分輸入的辦法來提高抗干擾的能力。下面已一個二分頻為例子:二分頻Verilog代碼如下:'timescale1ns/1psmodulediv2(clk,div2_clk,rst_n);inputclk;inputrstn;outputdiv2_clk;regdiv2_clk;always@(posedgeclkornegedgerst_n)beginif(!rst_n)div2clk<=0;elsediv2_clk<=~div2_clk;

endendmodule布線布局的仿真(Post-RouteSimulation)波形如下:1St11WgD;div2_te^clk1St11WgD.^drv52_te$l/dii/2_cl':*Jdiv2_ieilA£l_n西印GSR現(xiàn)在對時鐘clk信號進(jìn)行差分處理,對div2module進(jìn)行例化(CreateSchematicSymbol)新建一個div2_diff.sch。添加div2的module在sch上。通過搜索,把時鐘緩沖差分組件舊UFGDS也放在div2_diff.sch上。設(shè)置好clk的差分管腳,(按照Verilog命名規(guī)范)正的命名為clk_p,負(fù)的命名為clk_n。div2

在添加波形測試文件時要注意,ClockInformation選擇MultipleClocks(因?yàn)闀r鐘變?yōu)閮蓚€clk_p、clk_n)QInitialTi*infandCloctTizard-QInitialTi*infandCloctTizard-ClockSelection可以看到仿真的clk_p和clk_n都變?yōu)椴罘州斎氲牧?。還要對div2_diff.sch進(jìn)行管腳約束。div2_diff.ucf約束文件如下:NET"clk_p"LOC="C9"|IOSTANDARD=LVDS_25;NET"clk_n"LOC="D9"|IOSTANDARD=LVDS25;NET"div2_clk"LOC="A10"|IOSTANDARD=LVCMOS33;NET"rst_n"LOC="H13"|IOSTANDARD=LVCMOS33;要注意:clk_n和clk_p都要設(shè)置在差分管腳對上,clk_n——C9——IO_L14Pclk_pD9IO_L14N并且邏輯電平標(biāo)準(zhǔn)設(shè)置為LVDS_25。Spartan-3E支持下面的差分邏輯電平標(biāo)準(zhǔn)。LVDSBusLVDSmini-LVDSRSDSDifferentialHSTL(1.8V,TypesIandIII)DifferentialSSTL(2.5Vand1.8V,TypeI)2.5VLVPECLinputs綜合、翻譯、映射和布線布局后,運(yùn)行布線布局仿真,可以看到時鐘clk已經(jīng)變?yōu)椴罘謺r鐘了。p1nn1~11—11111ni-1T_n_nJn■7dw2_dil(_b=3l/lck_pQuu_1I—II—1n_n_r-rLTL-Ti_n_r.n_TLnhnI11_1LJ■11ii1I~~II|1I~1n4JgtiL炬SRWEJJ看div2_diff.sch的HDL文件(ViewHDLFunctionalModel)??梢钥吹狡鋵?shí)sch調(diào)用了舊UFGDS原語?!觥鰐itwescaleltisIpsmodulediv:S-diffLknrcLkprrstnfinputcHc_n;inputcllc_p;inputrst._n;outputd-i^-.^cLh:;wirekLXIT_l;div^;d.iv&._diffC.jcIIc(XLXN_1J.ratn(rBt_n]』__織^2^^14^4€34^2^(34其)-)_;|lBUFGDSXLXI_2C.I,"".IB(clS_n),.O(^LXN^l))J//~syntliesis_attribute_lOSTAWDARL__XLZIis,FDEFAULTMsyntliesisattributeIBUF_DELAY_VALUEofZLZI_^is棉口”defparam^LZ:I_2.DIFF_TERM=-,TiLSE,F;endmoduie在差分設(shè)計中,經(jīng)常會因?yàn)榕渲缅e誤而使得綜合出錯,最常見的錯誤分析如下:①ERROR:Place:332-ThisdesigncontainsanLVDSIOpair.ThepairofIOsmustbeplacedinaspecificrelativestructure.ThetwoIOscannotbeplacedinthisspecificstructure.Thereasonforthisissue:Allofthelogicassociatedwiththisstructureislockedandtherelativeplacementofthelogicviolatesthestructure.TheproblemwasfoundbetweentherelativeplacementofIBUFclk_patsitePAD27andIBUFclknatsiteIPAD28.Thefollowingcomponent

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論