《如何使用其gearbox功能来实现不同的比率的串并转换功能.docx》由会员分享,可在线阅读,更多相关《如何使用其gearbox功能来实现不同的比率的串并转换功能.docx(15页珍藏版)》请在第一文库网上搜索。
1、如何使用其gearbox功能来实现不同的比率的串并转换功能在Se1ectIO简介连载一中介绍了其架构,本章会继续介绍如何使用其gearbox功能来实现不同的比率的串并转换功能。7SeriesFPGA中1VDS使用了ISERDESE2,SDRRa及可设为2,3,4,5,6,7,8oDDRRate可设为4,6,8,10,14。Tab1e3-8:OSERDESE2AttributeCombinationsINTERFACETYPEDATARATEoQDATARATETODATAWIDTHTRISTATE_WIDTHSDRSDR1,-6,7,81DEFAU1TDDRDDR41SDRZ6,8,10,MI
2、rigd-IfiFPGA从UG471的Bits1ip部分可以看出在SDR和DDR移位的位数不一样。在SDR模式下,一个BitS1iP脉冲使数据左移一位;而在DDR模式下,一个BitS1iP脉冲使数据右移一位或左移三位。Bits1ipOperationinSDRModeits1ipOperationinDDRModeBits1ipOperationsExecutedOutputPattern(8:1)Initia110010011100100111201001110310011100400111001501110010611100100711001001Bits1ipOperationsExec
3、utedOutputPattern(8:1)Initia1001001111100100112100111003010011104011100105)0111001611001001711100100UeI71_C3J1012211Figure311:Bits1ipOperationExamp1es123D30)0OQO-jn.j-RmIjIBITS1IPBi申ipIIIC1KDIVj一-1IIf:11Q4-Q1CDBXZBCDA!1M71a12(MM11Figure3-12:DDRBits1ipFunctiona1Diagramjr所以在某些传输过程中,可以先传预设值,等待接收方调整Ide1
4、ay和Bits1ip解出正确的预设值后再传输有效数据。对习惯使用7SeriesFPGA用户在接触Xi1inxUItraSCa1eTM和UItraSCa1e+tm器件Se1eCt1o时感觉不习惯,原因Xi1inxUItraSCa1eTM和U1traSCaIetm是ISERDESE3和OSERDESE3组件,使用Se1ectIO需要在IPcat1og中选择high_speed_se1ectioIPConfigurationinterfaceftSeria1izationFactor选项中只有8或者4可以选择。CUaomi/eIPHighSpeedSetecttOWizxird(3.)P11PnMS
5、MtModeMieAvardRnSctionSummary1ATENCYomcDeStMUPndPnNotoOBocS4woonFectorRmm(cBCUpTrmrgPsmEneMORPportsoTPtX-MSStfObedOCk3DATAN1VDSocOwVICIOCK.P-C1OCK”2、对于Read8to6gearbox设计方式:Startcyc1e1eadingStaI1cyc1e1eading0*01KYWUDKoeoOWOFOfDWCanreadcomp1ete6bitdataDK)从数据排列可以分析到8bit数据在每次读取6bit数据,经过4次后开始循环,我们通过状态机设计g
6、earbox的代码需只需要实现;AIC:Pe二Dpxdata=px_rdcurrf5:0pxrd.seq=1data=px_rdcurrf3:01.Prc1a5tf7.6pxrdseq=21astR4B/Read8to6gearbox/a1ways(posedgepx_c1k)begincase(px_rd_seq)3h:beginpx_dataend3,h1:beginpxdataend3ih2:beginpx_dataend3,h3:beginpx_dataendendcaseend3、DataTransmission,OSERDES3使用4bit输入,参考例程是把ISERDES的数据接到
7、OSERDES,这里我们在参考例程上任然使用ISERDE到OSERDES的数据传送方式验证。分析知道需要一个6bit转4bit数据的Gearbox.TranvntiNtOodiIBUFDSREFC1KPREFC1K.NC1KD1VBUFGCE_DIVA.Ih-.IP11A1MCMCUaNtxc1kgen7to1C1OCKPATTERNCHANNE11C1ockOSERDES3i-1VDSC1OCKChanne11-C1OCK_PC1OCKNDataI.OBUFDSOSeR1E左31VDSDataChanne11ADATA_PDATA_NDataTransmission忑1rgd初JFPGA4、
8、GearboX设计思路是把6bit的数据按4bit大小去读取直到数据开始循环。通过表格客户分析出设计代码做3次循环可以满足要求1 rdstate-0ata=rj12 rdstate=13 rd.state=2tx,data=rd_1ast5:21Readstatemachineandgearbox/a1ways(posedgetxc1kdiv4)beginif(!tx_enab1e)beginrdaddrrd_stateende1sebegincase(rd_state)3h:beginrd_addrtx_datard_stateend3,h1:beginrd_addrtx_datard_st
9、ateend3h2:beginrdaddrtx_datard_stateendcaseendend5、到这来我们已经完成gearbox模块的设计,实现1VDSSourceSynchronous6:1。Seria1izationandDeSeriaIiZatiOn部分还需要修改输入的数据/TransmitDataGeneration/a1ways(posedgetx_px_c1k)beginif(tx_px_reset)begintx_px_data5:0tx_px_dataE11:6tx_px_data17:12txpxdata23:18tx_px_data29:24ende1sebegint
10、x_pxdata5:0tx_px_dataE11:6tx_px_data17:12txpxdata23:18tx_px_data29:24Receiver1-Datacheckingperpixe1c1ock/a1ways(posedgerx1_px_c1kornegedgerx1_px_ready)beginrx1_px_1astif(!rx1_px_ready)beginrx1_matchende1seif(rx1pxdata5:0rx1px1ast5:0+1b1)&(rx1_px_data11:6=rx1_px_1ast11:6+1b1)&(rx1_px_data17:12=rx1_px
11、_1ast17:12+1b1)&(rx1_pxdata23:181rx1px1ast23:18+1b1)&(rx1_pxdata29:24rx1px1ast29:24+1,b1)beginrx1_matchende1sebeginrx1_matchendend6、对用户的系统可能需要的Iane数量为8,在对应的数据部分需要做对应的修改Reformatdatabasedonthefo11owingI1I1PR-C1OCK-5,81inesExamp1eI1-4:0)-Transmittedon1stdockedgef1-(9:51Transmittedon2nddockedgeI1(14:10)
12、Transminodon3rddockedgeI1-(19:15)-Transmnedon4thdockedgeI124:20-Transmittedon5thdockedgeI1(2925-Transmittedon6thdockedgeI13430)Transmittedon7thdockedgeI1(47:40)Transnxttodon6thdockedgef1I1PERJJNW-5/8UnesExamp1ef1(5:0hTraMmrttedon1st1ine(0.1.I1-(116)-TfansmntedonUt1ine(6.7.I1-(17:12-Transmittedon2nd1ine(12.13.I1(23:18)-Transnwnedon3rd1ine(18.19.I1(29:24)Transmittedon4th1ine(24.25.f1(35:30)Tra