如何使用其gearbox功能来实现不同的比率的串并转换功能_第1页
如何使用其gearbox功能来实现不同的比率的串并转换功能_第2页
如何使用其gearbox功能来实现不同的比率的串并转换功能_第3页
如何使用其gearbox功能来实现不同的比率的串并转换功能_第4页
如何使用其gearbox功能来实现不同的比率的串并转换功能_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何使用其gearbox功能来实现不同的比率的串并转换功能

在SelectlO简介连载一中介绍了其架构,本章会继续介绍如何使用其

gearbox功能来实现不同的比率的串并转换功能。

7SeriesFPGA中LVDS使用了ISERDESE2,SDRRa及可设为2,3,4,5,

6,7,80DDRRate可设为4,6,8,10,14。

Table3-8:OSERDESE2AttributeCombinations

INTERFACETYPEDATARATEOQDATARATETODATAWIDTHTRISTATEWIDTH

SDRSDR1,234,5,6,7,81

DEFAULTDDR44

DDR

SDR2,6,8,10,M.(•,IrigdjifjFPGA

从UG471的Bilslip部分可以看出在SDR和DDR移位的位数不一样。在SDR

模式下,一个Bitslip脉冲使数据左移一位;而在DDR模式下,一个Bitslip

脉冲使数据右移一位或左移三位。

BitslipOperationinSDRModeBitslipOperationinDDRMode

BitslipOutputBitslipOutput

OperationsPattern(8:1)OperationsPattern(8:1)

ExecutedExecuted

Initial10010011Initial0100111

100100111110010011

2210011100

310011100301001110

400111001401110010

501110010500111001

6611001001

711001001711100100

g<71c311012211

Figure3-11:BitslipOperationExamples

BITSLIP[IBitklip

III

dew

I

04-01C(B_**BCDA

i1'।

"1c312042111

Figure3-12:DDRBitslipFunctionalDiagram

所以在某些传输过程中,可以先传预设值,等待接收方调整Idelay和

Bitslip解出正确的预设值后再传输有效数据。

对习惯使用7SeriesFPGA用户在接触Xilinx®UltraScale™和UltraSeal。

+"器件SelectlO时感觉不习惯,原因件linx®U:traScale1M和UltraScale+™

是ISERDESE3和0SERDESE3组件,使用Select10需要在IPcatlog中选择

high_speed_selectioIPConfigurationinterfacethSerialization

Factor选项中只有8或者4可以选择。

iCuUomueIPX

HighSx"S^ctK)Wizard(3.6)

ODocumtnuoon»LOCMCHCCMevfts

Componeotr»gh.»p««d_M*«c:Qwu.0

BasicAdvancedFinSHtctionSummary

PU.PnftMSMIMcdtLATENCY

,AppendPmNotoiO>

Be»K・S«wuaoonFactorL卬mted^c.

BesipTmirw>gP«em(En4OieORPportsofPU

De^yStMC2zae84"

StroteOock3-SMfleCorrtaMBonalv————

(Po^<SMufffiA*lnt«K>c

ki^danFPG^V

在巨nSelection选择时会发现TO选择会有一定限制,在Sensor的应用

中HPbank理想的硬件设计是在同一个bank中连续放置设备I/O,部分Sensor

输出的SerializationFactor需要7:1,6:1,5:1,不能直接使用ISERDES。

对这类应用Xilinx提供了XAPP13157:1的参考设计,那么对6:1,5:1这

种应用用户需要在参考设计上改哪里,怎样去改?下面我们提供修改方式供参

考。

1、从DataReception看需要把ISERDESE3输出的8位数据

(SerializationFactor=8)通过gearbox模块转成7,6,5位的数据。其中

7位的数据XAPP1315已经做过了,这里我们用6:1的数据为例,需要从

TSERDES3实现Read8bit数据通过gearbox转换为6bit数据。

……—两

2、对于Read8to6gearbox设计方式:

从数据排列可以分析到8bit数据在每次读取6bit数据,经过4次后开

始循环,我们通过状态机设计-gearbox的代码需只需要实现;

px_rdseq=0px_dara<=px.rdcurr(5:0]

pxrdseq=l

px.rdseq=2

pxjdseq=3

//Read8to6gearbox

//

always@(posedgepxclk)

begin

case(px_rd_seq)

3'hO:begin

px_data

end

3'hl:begin

px_data

end

3'h2:begin

pxdata

end

3'h3:begin

px_data

end

endcase

end

3、DataTransmission,OSERDES3使用4bit输入,参考例程是把

ISERDES的数据接到OSERDES,这里我们在参考例程上任然使用ISERDE到

OSERDES的数据传送方式验证。分析知道需要一人6bit转4bit数据的

Gearbox.

REFCLKP

REFCLK,N

IngdanFPGA

DataTransrrlssion

4、Gearbox设计思路是把6bil的数据按4bit大小去读取直到数据开始循

环。

通过表格客户分析出设计代码做3次循环可以满足要求

1rdstate=0

2,rdstate二1

3rd51--ate二2txdata=<rdjastf5:21

Readstatemachineandgearbox

//

always@(posedgetx_clkdiv4)

begin

if(!txenable)begin

rd_addr

rd_state

endelsebegin

case(rdstate)

3*110:begin

rd_addr

tx_data

rd_state

end

3'hl:begin

rd_addr

tx_data

rd_state

end

3'h2:begin

rd_addr

tx_data

rd_state

end

endcase

end

end

5、到这来我们已经完成gearbox模块的设计,实现LVDSSource

Synchronous6:1。SerializationandDeserialization部分还需要修改

输入的数据

//

//TransmitDataGeneration

//

always@(posedgetx_px_clk)

begin

if(tx_px_reset)begin

txpxdata[5:0]

tx_px_data[11:6]

txjpx_data[17:12]

tx_px_data[23:18]

txpxdata[29:24]

end

elsebegin

tx_px_data[5:0]

tx_px_data[11:6]

tx_px_data[17:12]

txpxdata[23:18]

tx_px_data[29:24]

end

end

//Receiver1-Datacheckingperpixelclock

//

always@(posedgerxlpxelkornegedgerxlpxready)

begin

rxl_px_last

if(!rxl_px_ready)begin

rxlmatch

end

elseif((rxl_px_ddtd[5:0]==ixl_px_labt[5:0]十1,bl)&&

(rxl_px_data[11:6]==rxl_px_last[11:6]+1'bl)&&

(rxl_px_data[17:12]==rxl_px_last[17:12]+rbl)&&

(rxl_px_data[23:18]==rxl_px_last[23:18]+1'bl)&&

(rxl_px_data[29:24]==rxl_px_last[29:24]+1'bl))begin

rxlmatch

end

elsebegin

rxl_match

end

end

6、对用户的系统可能需要的lane数量为8,在对应的数据部分需要做对应

的修改

ReformatdatabasedonthefoUownng

II

//PER_CLOCK-5,SLinesExample

II-(4:01-Transmittedon1stclockedge

II-19:S]•Transmittedon2nddockedge

II•(14:10)-Transminedon3rdclockedge

II•(19:15)­Transmittedon4thdockedge

II-(24:20)-TransnutJedon5thdockedge

II-[29:25]-Transmittedon6thdockedge

II•J34;30)-Transminedon7lhclockedge

II-(47:40)-Transm«Hedoo6thdockedge

//

IIPER_LINE•S/8LinesExample234

,

II•[50]•TransmrtJedon1stline(0.1.&9

II-(11:6)-Transmittedon1stline(6.7.1・10.

//-[17:12J-TransaxHodon2ndhn«(12.13.14.25.16.

II-[23:18]-TransmiUedon3rdline(18.19.20:21.22.

II-[29:24]-Transmittedon4thline(24.25.26.X7.&28M.

II•(35:30)•Transnutiedon5thlino(30.31.32,3

37.«3,40,

II-[41:36]-TransmittedonSthline(36.49.5IngdjnrPGA

II-(47:421-Transmtledon6thline(42.43.44.46.

Receiver使用ISERDESE3在1:8DDR模式与8:6分布式RAM基于齿轮箱反

序列化和对齐输入数据流。这个实现需要三个时圆域,1/2速率采样时钟

(rx_clkdiv2),1/8速率反序列化数据时钟(rx_clkdiv8),和1/6像素时

钟(px_clk),它等于Receiversourceclock。

Receiversourceclock在MMCM或PLL中乘以6或12以满足VCO频率范

围,然后除以2生成1/2速率采样时钟(rx_clkdiv2),除以6生成织物像素

时钟(px_clk)o

//

//InstantiatePLLorMMCM

//

generate

if(USE_PLL=="FALSE")begin//useanMMCM

MMCME3_BASE#(

.CLKIN1_PERIOD(CLKIN_PERIOD),

.BANDWIDTH("OPTIMIZED"),

.CLKFBOUT_MULT_F(6*VCO_MULT1PLIER),

.CLKFBOUT_PHASE(0.0),

.CLKOUTODIVIDEF(2*VC0MULTIPLIER),

.CLKOUTODUTYCYCLE(0.5),

.CLKOUTO_PHASE(0.0),

.DIVCLK_D1V1DE(1),

.REF_JITTER1(0.100)

)

txmnicni(

•CLKFBOUT(px_pllmmcm),

.CLKFBOUTB(),

.CLKOUTO(tx_pllmmcm_div2),

.CLKOUTOB(),

.CLKOUT1(),

.CLK0UT1B(),

.CLK0UT2(),

.CLK0UT2B(),

.CLK0UT3(),

.CLK0UT3B(),

.CLK0UT4(),

.CLK0UT5(),

•CLK0UT6(),

.LOCKED(cmtlocked),

.CLKFBIN(px_clk),

.CLKIN1(clkin),

.PWRDWN(1*b0),

.RST(reset)

);

endelsebegin//UseaPLL

PLLE3_BASE#(

.CLKIN_PERIOD(CLKIN_PERIOD),

.CLKFBOUTMULT(6*VC0MULTIPLIER),

.CLKFBOUT_PHASE(0.0),

.CLKOUTO_DIVIDE(2*VC0_MULTIPLIER),

.CLKOUTO_DUTY_CYCLE(0.5),

.REFJITTER(0.100),

.DTVCLKDIVIDE(1)

)

tx_pll(

.CLKFBOUT(px_pllmmcm),

.CLKOUTO(tx_pllmmcm_div2),

.CLKOUTOB(),

・CLK0UT1(),

•CLK0UT1B(),

.CLKOUTPHY(),

.LOCKED(cmt_locked),

.CLKFBTN(px_clk),

.CLKIN(clkin),

.CLKOUTPHYEN(TbO),

.PWRDWN(1'bO),

.RST(reset)

);

end

7、代码中对应的源语需要升级到ULTRASCALE_PLUS对应的部分

类似的地方:localparamDELAY_VALUE=((CLKIN_PERI0D*1000)/6

ULTRASCALEPLUSmaximumvaluefor1100.0

IDELAYE3SIMDEVICE("ULTRASCALE_PLUS"),//Setthedevice

versionforsimulationfunctionality(ULTRASCALE//ULTRASCALE_PLUS,

recommendedtore-cal1TDELAYE3intheULTRASCALEPLUSdirectory

8、所以以模块修完之后通过软件依真验证修改的数据跟XAPP1315的数据

对比,设计中采用parameterDATA_FORMAT="PER_CL0CK",数据格式会安

装PERCLOCK方式排列式DSSourceSynchronous6:1Serializationand

DeserializationUsingClockMultiplication。

■-De<a/tU,-"

MrLTLryLTLr|_n_rLfyLrLqnjTrp

B

】】Uji1111n.i

oIII1】】

EIIIIIII】】Iniii:ni】iII】IIiini:IIIIImS1JillSIijgf111iTijiXiTjiXJX

u

DJIAAAn

oYYrn~nyn_nYnpfYnY_r^rII11111,IIIIIIQ:•HrII;;;

iL.miiI】:】IIIIILI:IIIIIJIIinn.uiiiIIJ

Bi

广储'〕三置收屯莘憎埒巽

Oi;的娜毗“:Q」3设醐峭皿t]'[#]了I

&:UUIU

jlHHilMHIUI

D一

O

OIYIYYYYYfTHYXYnrHYrpnrnmryYYIYImrtnyyYmYrrtUYDNI力Y*-nmyfnnYmnYyiimf1!

Drm•_0ToiI:ciHE

&

D

TrrfxxTyrrnjiin(YiYiYfYYX

Dr--I--L---J^nrr—'inrLTuirt

D

Dii工.“111III11u]jYyYmHYYfYYYlYlTYYYYYYiamYyYYYnYmYlCin[inninnxilnIIin

km

0

0

DS.nmniiimmnnn11HuiIIIH口iiH】】iimm

0

OlymTnYnYnTnTnTmmmmTTTnmrnYIV111V11IIIIIIIJKIIIAU_I_

Anai.

D

DYiflf1Y1YY1pmYYTYifiyyYYTYYnYHIYirnYYYXYYHYifYIY

DE

0F

0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论