Aurora接口使用说明

上传人:m**** 文档编号:187617741 上传时间:2023-02-16 格式:DOCX 页数:14 大小:520.27KB
返回 下载 相关 举报
Aurora接口使用说明_第1页
第1页 / 共14页
Aurora接口使用说明_第2页
第2页 / 共14页
Aurora接口使用说明_第3页
第3页 / 共14页
点击查看更多>>
资源描述
在 AMC-2C667X 平台上使用 FPGA 的 Aurora 接口说明明:本文档仅面向初学者。、针对平台用的V6芯片型号新建一个ISE工程,工程中加入Aurora IP核,IP核的设置如下(当然也可以选择其他设置,以下均是针对本测试设置而言)IP SymbolS xAurur* -50100LO14 WidthUne RpIc0x4 Faaur-asBacalkx MadaCniHTfflC?Fl 血日日氏Channeltn卸四Runge: 0,4, In Gbps Uw Chipscppr- pro gryzrr| QMBStieietPage vf2 Jet,| | Spnflra1| | fiarwgl串p图1主要参数:lanes-通道数,即使用的GTX收发器个数Lane width:aurora核与用户接口的数据位宽(一般可选2B或者4B)Lane rate:Aurora核的对外通信速率,由于采用8B/10B编码,实际有效速率 要乘以 0.8。GT REFCLK:GTX参考时钟频率采用全双工,流水通信模式。详细请参考Aurora的UG。好了,最后一页了,这IP核设置够简单吧!(一共才两页好伐),让你选择GTX位置图2平台上的V6片子一共有6组GTX QUAD,每个QUAD有4个GTX,选择一个GTX与平台 的SFP+ F2相连,平台说明书写清楚了,是MGT_113_1,就是它了。生成了这个核以后,核的文件夹下会多出一堆文件,这就是XILINX给你的一个示例工程-example design.如旧 m:E:i MiV.1 ZCUCTJ WfelHJ6-r-MeKU口 S* h壬巴命CUB左fefehtce日确Ath Tdcsdie/iina 2W3T3Ztt5EK AE4 XMrrpI上-li弓n201/11/23 池MS+WHl it0a 月 Bs&tJt InTpleie-rrraaie/iia 耶汀咒伴5E* BimulBtian20111723 2d7S+WA srcsdie/iina 2W3T3Ztt5Ea tw11 B!-ararB_ilbl0b_vS_rBHdrn-v.bt2013/27 LI:埔13血直Em-13 対J 鼻fl. trim飪咖细gi_j :FiBSa (Dll占TO臨圍H iMil-占 g 5EQ |M:|气1图3接下来就可以仿真啦。仿真:你可以直接使用它提供的testbench仿真,没问题。但是有更简单的方法,其实 你仿真只是为了看看它的时序,看看你加的东西对不对,因为只要你加对了,仿真一定 通过。那么简单的方法呢?打开modelsim,不要告诉我你没装,或者装了没有关联ISE仿真库,那你得先把这个问 题解决了再说。好了之后,新建一个modelsim工程(file-new.)在你之前那堆文件的 /simulation/functional 文件夹下,看图说话rwHlpaFvii驚込园H磬込逼HH毎1 呂”曰 1Hi*l龄曲綁QMif * I i|L34C baDemifln亶| |一,M sAl皿皿严 T Al 4_口3_山工WW_nr*=_i土 41ltt.jji_Wi土 11t 血 *aa_blTi_Ul_H l_j3. t ft M_unj !_!_ t jfc M_Edma.v3_afl_a 工 鱼 mb .id1 ?2a _v 3_&. 士 *L亠 ta. sm* _dta a m14 艸5C J35TNU D:iJSEd.qJ.a SUIEJWJSEM 口lUSEJPQLLT SUMjn iSEM DlUEK0ll5U5E.ffiM3y mygug euujkmikm 口; :IJ*X4.I14 艸5E JXHY 口: ijsEmmjLq.卯声 g# 口:IJ宾 J3QIJA SUZEJMray 口山BejTQLLTDiUEl0li5U5E.ffiMSy mygug e 吟 a*庐;# 口:哼syE_p5y 口:IJEE34.II14 區agU 口:皿皿口口耳 syiEjKraM 口 1!J5ET叫QMT JiJZEJMiSEM DiQSEzQg唇刘執 OHJ5En*Oii* 5U5E_D5 候 ;y 盂 1毛3丄7 EyE_py :i辱w丄耳叱 _R5qy 口: ijsEmmjLq.卯声 g# 口:IJ宾 J3QIJA SUZEJMray 口山BejTQLLTDiUEl55:tr n eiia akiirariiar Lvu. fur f-i* *Fr*i話Krl-opt.13.和1 iti h. LaplsMAt白 E:ifed. hLii*ifua r 1 i%1L也吟;Li erar ii-L i rpd*_pfC-J:Lir_,|jiEl_aAJ ?. AAr-Hrb_3_lKJE!5_lx1图4下一个界面叫你create new files啥的直接close。然后你就在modelsim命令窗口轻轻地 敲了一行命令:do simulate_mti.do这个 simulate_mti.do 就是人家已经仿真好的仿真文件,就在那个文件夹里,意思就是我 仿好了,你拿去用吧,看看就好,没什么技术含量。 So it begins:jS.JM W*氐征创IGJkFih Edi Viw Curpilv SimJala Add T r VLcripA Took Laul 呂口 clonjrki MMridir# HlpI TlhlCiCl|Z.1gfaL 亡 z:iOL2.Ci?Jnl 21 20L2CoiiLeEJal 21 412CcrriLe-Jnl 27 2(112CciiiLhzJdI 27 N L2jj Ubrjy 刁 *冲 ProjaciFta CintixlA Tsp lvaiL TockJlHr:BEfflKF_IBI Jfs*l TechnDLcqy Mc4E15iii 3E-41 wig Id,I 一 CanpLLinp iKdale <ii&_3L2EhcnplujP Top 1E-*L ikOjIe?-Igll *i-iel Tezhn&LagySE-4 vb阳1 一 CcriLLins umal EKWt=L_TEi PrtQCzz lilt- E; .fpQB_14fc/1F_w弓t_suc:sra畑ieii_isipcoi jlu0丄UE/BiaulBCiij口FEs:eicoa 1. EMI fOWd.f PmIsI匕 T4 卽jen jECOenr-. 鼻 Lading piD*:! Auiaxft_JU.豊 dUULAEGi_E.Ti .i3CP D:X 5E3-._D5 C5E! * Warning:匸疏灯 ilraady eiifcj it wart7. Top leitL :hx9ij1eitLiiit-L_3iB_CHHftC_2CQn_DE:fNcd&ix E-4 聲Lcn IQ. It CTpiLflE- 24L2.O79- CcrpLLxn u-dola 口豆:hb_J;L25_OLn_IIHtEZTP McdLfylDi EiZrMEji&j*:T/rF_Tti!n-_daroi4/Jir2Efi_l_33L2 5125H?AiirES_-3glEE.LpcMei_fllT.BDroiH_SLZEi,sLB 皿 3 0/如0 tea L1 Run :! 711 t 鼻 电在 1 TechnQL34y匕血le SE-4 vLctgR - CcsniLLxn ned口Is glbLLapXC 恤:D2Qjjn* 丁学 ItwL niduljIbjueezl 312& hebplugF Msdal TKhnaLsqy NcdLSix. -44 vLog 10.1e8 - CtrvpLLin? mdal? SttD:is_5L25_ClKflIi_C50PT_DEC图5当然敲了这个命令你的modelsim可能会报错,多半是因为XILINX环境变量的设置问题, 去百度找下答案。编译通过了之后过了一会,就出现了这个界面:At 玮二崎00;备| IJJBa:議H年4塔屮|馬旦 m_txCmi MeSii 勺Lar.Hi BW1i! fflnR_RVjam图5请务必点否,否则你百忙了然后如果出现了最终的仿真波形,那么恭喜你成功了 !图6当然你也可以让仿真多持续一段时间,怎么弄呢?你需要自己去改它的testbench。作为一个使用快速使用该IP的文档,我只告诉你我们需要关注的信号无非这么几个,下 图中黑的信号:抽”皿臼占r兀:他二亡7”1B= 心和Q.聖 B_rCTi5_525CGf* 3亡STtaiiiXin( liitrita-frUSTR-CLK卒 TM_SRjC_pfl_h* TX J75T JgF JM Uhb 3 STAimng ftX IrcfirfMp *2lBER_CLK JHaA* HX_S?C_RDY_N匚4哙 J B*-df De-lectin Intelzei. lEP._CLK 牛.% 5QFT_Hyi &HC Intsi-lTKl U5EW_CLK LAHE_LFQue CkK CAfpwfisalufi InDcrbijfiJ U5rR_CLK t wfth_CC A &D EC5tl 1L0 .Stfi5W(IDO.5 toSd5 tD5t5C1EgSbO Gore ISistefDnterfdctJt RESETJ POWER .DOW 牛 TXjCUF_okFriam Chadai Eirn* Cotr-rl Ith Con Hkt EHA.COiJMTCctv JSCO5WSH辽 u LOinLijiiiM二M二诚=:bKCWM1 1o二1,.,.Llhtdtdrzauaxi 词图7 简单吧!上面的五个信号就是用户接口信号,下面的几个是系统接口信号,你要做的就 是写个模块产生数据然后送到Aurora核当中,所以请重点关注那几个用户接口信号及其 时序。这几个信号什么意思怎么用?参考UG。华丽丽的分割线2、接下来是重点,请至少先读了下Aurora的User Guide。 综合实现:下面你要做的就是,针对它重新新建一个工程,然后把那堆文件夹内的所 有.v(hd)和.ucf文件都包含就去,结果就是一个可编译的可用的东西,这些东西没看懂? 其实我也没看懂,没关系。当然有些地方你需要改动,慢慢往下看。这个工程建立以后就是这样的:ISE Frsjftr: 屛护erPi甜-E:Fpg兀戸可&口廿令31 1口口丄!1口典5口越 汨.邛自 Fll* Edit Virw Prcjiiid Spurca FmaiiV Tc-sli Window Lajaut HdpDili pi3w 0 X:Tic I M 昭snU ilLOfi俱屆一品 一Ja-aHHerBrdiy刊 AuraraJ二 Q| e6W24IHJIL75Q3 chcli.mcdultj - Adroia_3125_CiaCE_MCiDULE iufwa_3 L2S.dockrmcUe.v) Q VJ ALMarH_mcdulB=urcrj_3123 (urorH_3125.T3 5tandard_cn_mopkJr!_i - auror-ff.JliS.SWiDA.CC.ODUlE (jurara_jl25_,5landai3 rwtcjogkj - durDa_3 LJS.RESET.LQGlC tauriS!,fl_3125_re5Jcgic.v)可 frsma_gwn_i - urara_3125Jramc-_dTeii:kjV)p F.vio G.iId |vC_kijca)Bcan - vfi_Kcn luGjEan.acaJ i_ib - SJIa 怖_巧应时6 ajrard_3125_tidiTle_deiign.ud电)Ha PriScnMi luani n(眈莊一玮一 _Gorrweh aLrr3_5125_am口匕如曲“I串-Ehd|- 1 耳n EurnmHry|fiaporbt Liesign UhlhiesU&w仙心占EynH-mia - XST Vwi R7L SchmabcView Tcdrcilogp- fehcmiatic7/ Hi! 5 CUERIGH.! HOTICI ABD DISnAIMER HOST BE KE: / EMT ISIS FIXE LT J!LIL TIHES-/. / / JUJHO HX_IXJFLECcmGW匚/7/ I-caoripclaDi San(plE:dal Z-bEi/BQ” C4SX*如 h-IXdJgjjkscale 1 nf / 1 f-sI* CGrgeMraTiGD_iaED H-arcra_5125. Hirc:ra_!Jbl.i3l nodule am or h._3 12 E_e- x -up Le _ de s 1 pi tipAlAUfiE&X DSE_CHIP5CCPE= lrp2tM SIH-TMCLESEr 5PEEDJD - 1/ Oatr IC RE3EIr5DET2=W r IEJ?_rCWT LMfEPr CEMnrZL_IjFr IHIT_CLJ Pr 盟匸 ijTRlsETIP图8当然,chipscope的那几个核是我手动添加的方便查看信号而已,你要是牛逼,能直接保 证对就不用加了。要使用那几个核,上图右侧有个参数叫 USE_CHIPSCOPE 要设置为 1 接下来看看这个工程的大体结构:Aurora_module_i :以源代码的形式给了你Aurora核的实现,与在这里直接添加一个Aurora IP核一样一样的是为了方便你修改其中的某些参数。如果不是大神,请不要肆意修改 它。Standard_cc_module_i:时钟补偿模块,用来给通信双方进行时钟补偿,因为这个协议对 时钟要求很高,两端的时钟频偏在100个ppm内都可以补偿回来,时钟同步嘛 Frame_gen_i/frame_check_i用户接口端程序,你要写用户程序可以参考它对Aurora用户 接口的操作方式,其实很简单,UG里面有一个用户接口时序。其他的不说了自己看吧。然后你就需要考虑修改ucf文件了,要针对你的片子和平台,这个一开始不熟的话有点 头痛的下面是我跑通的ucf,给你的参考价值只在于它的管脚锁定:# UCF generated for xc6vlx240t-ff1759-2 device # 125.0MHz GTX Reference clock constraintNET GTXQ1_left_i TNM_NET = GT_REFCLK;TIMESPEC TS_GTXQ1_LEFT_I = PERIOD GT_REFCLK 125.0 MHz HIGH 50%;# User Clock Constraint: based on the line rate (2.0 Gbps) and lane width (2-Byte)NET user_clk_i TNM_NET = USER_CLK;TIMESPEC TS_USER_CLK_I = PERIOD USER_CLK 100.0 MHz HIGH 50%;#MGT 113 REF CLK1NET GTXQ1_P LOC = AD8 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE | PERIOD = 8 ns PRIORITY 0;NET GTXQ1_N DIFF_TERM = TRUE;NET GTXQ1_N IOSTANDARD = LVDS_25;NET GTXQ1_N LOC = AD7;#Diff INIT Clock Constraint#Ref Clocks for FPGA1-100M/must lower than refclk of GTXNET INIT_CLK_P DIFF_TERM = TRUE;NET INIT_CLK_P PERIOD = 10 ns;NET INIT_CLK_P IOSTANDARD = LVDS_25;NET INIT_CLK_P LOC = J42;NET INIT_CLK_N DIFF_TERM = TRUE;NET INIT_CLK_N IOSTANDARD = LVDS_25;NET INIT_CLK_N LOC = K42;#100 MHz board Clock ConstraintNET reset_logic_i/init_clk_i TNM_NET = INIT_CLK;TIMESPEC TS_INIT_CLK = PERIOD INIT_CLK 10 ns HIGH 50%;TIMESPEC TS_TIG1 = FROM INIT_CLK TO USER_CLK TIG;NET GT_RESET_INLOC=AD31;/NET RESET PULLUP;/NET RESET LOC = P28;/NET LED LOC =N28;#Errors IndicatorsNET HARD_ERRLOC=N28; #LED2_FPGA0NET SOFT_ERRLOC=P28; #LED3#Channel and Lane up IndicatorsNET CHANNEL_UPLOC=K33; #LED0NET LANE_UPLOC=K32; #LED1/NET clk_dis_out LOC=L32; #LED7#GT Location-MGT_113_1INST aurora_module_i/gtx_wrapper_i/GTXE1_INST/gtxe1_i LOC=GTXE1_X0Y5;#TX/RX locationNET RXPLOC=AF3; #MGT_113_1,connected to SFP+ F2NET RXNLOC=AF4;NET TXPLOC=AJ1;NET TXNLOC=AJ2;很好很强大有木有!我当时调这个的时候就没个人直接给我个ucf.然后程序中还有些地方需要改动,慢慢往下看。看见ucf文件中关于复位的部分没有?就是这段:NET GT_RESET_INLOC=AD31;/NET RESET PULLUP;/NET RESET LOC = P28;/NET GT_RESET_IN LOC = N28;注释的部分就是它原本生成的东西,把两个复位信号RESET和GT_RESET_IN分别约束到两个 按键上来复位,这个复位按照UG上的说明还有一定的时序要求,但是一般这样约束都不会 有问题,比如 XILINX 官方板子这样约束是没问题的。但是我们的平台就不行了,为什么? 因为没有按键!它不是个开发板啊然后我尝试过另外的复位方法:写个小程序定时复位,还有就是通过chipscope的虚拟I0 口 核 VIO 给 Aurora 施加复位信号,均无果而终。那么为什么要把 GT_RESET_IN 约束到 AD31 那个管脚上呢?首先解释下我是这样弄的:wire F1_F0_WARM_RESET;assign F1_F0_WARM_RESET=!GT_RESET_IN;aurora_125m_RESET_LOGIC reset_logic_i(.RESET(F1_F0_WARM_RESET),.USER_CLK(user_clk_i), .INIT_CLK_P(INIT_CLK_P),.INIT_CLK_N(INIT_CLK_N), .GT_RESET_IN(F1_F0_WARM_RESET),.TX_LOCK_IN(tx_lock_i), .PLL_NOT_LOCKED(pll_not_locked_i),.SYSTEM_RESET(system_reset_i), .GT_RESET_OUT(gt_reset_i);也就是说,把resetogic这个模块(为啥是它?因为它的作用就是对输入的复位信号进行时 钟去抖和时序纠正然后把输出的复位供给其他模块使用)的两个复位信号 RESET 和 GT_RESET_IN连到了同一根信号上,即F1_F0_WARM_RESET,而它是连接到AD31管脚连接 进来的复位信号的取反信号上。AD31这个管脚连接到了平台上FPGA1给FPGA0热复位的信 号上,因此它连接的是一个复位信号,而取反只是为了将低有效转为高有效而已,因为Aurora 中的模块都是用高电平有效复位。就这么一个复位问题,不知道耗了我多少宝贵时间啊 复位的问题解决了,时钟呢?约束文件中有这么几段:# 125.0MHz GTX Reference clock constraintNET GTXQ1_left_i TNM_NET = GT_REFCLK;TIMESPEC TS_GTXQ1_LEFT_I = PERIOD GT_REFCLK 125.0 MHz HIGH 50%;# User Clock Constraint: based on the line rate (2.0 Gbps) and lane width (2-Byte)NET user_clk_i TNM_NET = USER_CLK;TIMESPEC TS_USER_CLK_I = PERIOD USER_CLK 100.0 MHz HIGH 50%;#MGT 113 REF CLK1NET GTXQ1_P LOC = AD8 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE | PERIOD = 8 ns PRIORITY 0;NET GTXQ1_N DIFF_TERM = TRUE;NET GTXQ1_N IOSTANDARD = LVDS_25;NET GTXQ1_N LOC = AD7;#Diff INIT Clock Constraint#Ref Clocks for FPGA1-100M/must lower than refclk of GTXNET INIT_CLK_P DIFF_TERM = TRUE;NET INIT_CLK_P PERIOD = 10 ns;NET INIT_CLK_P IOSTANDARD = LVDS_25;NET INIT_CLK_P LOC = J42;NET INIT_CLK_N DIFF_TERM = TRUE;NET INIT_CLK_N IOSTANDARD = LVDS_25;NET INIT_CLK_N LOC = K42;主要是 Aurora 中 GTX 时钟和 user_clk 的约束问题,如果你不清楚这两个时钟是啥?要不留 一页篇幅等你看看 UG? 算了,继续吧还是哈哈平台中 FPGA0 的可用外部时钟资源有好几个,来来截个图看看:Clock Summary TableClockUseSection100MHzGeneral PurposeFree-running dock on a SelectIO Pin sourced from on-board osciif&tor4,3.1.2125MHzGeneral PurposeFree-running clock on a SelectIO Pin sourced from on-board oscillator4.3.1.2312.5MHz General PurposeFree-running clock on a SetectIO Pin sourced from on-board osciilator4.3.1.2125MHzEthernet and SRIOLow jitter free-running clock on GTPs and SeleciiO pins sourced from on-board osciiletor4 Al .3312.5MHz SRIO InterfaceLow jitter free-runni ng clock on GTPs and SelectlQ pins sourced from on-board osciifetor4.4r2122.88/153.6MHzAntenna InterfaceLow jitter clock from CDCE62D05 on GTPs piins4.3.14FPGA Recovered Clock outputAllows the FPGA. to drive the clocking subsystem4.3.1J图9 第一到第三个时钟质量一般,啥叫质量一般?就是它的精度、稳定度和抖动达不到 Aurora 对时钟的要求。但作一般的逻辑使用的时钟足够了。请注意,Aurora UG中说得很明确,它对时钟要求还是很高的,所以别耍什么花样,不然传 输数据出现丢包,错误啥的就只能怪你自己了,虽然能够进行时钟补偿,但是LOOppm范围有限。后面的几个时钟,你应该注意到了-low jitter质量相对较高,尤其是从CDCE62005出 来的那两个,可是GPS同步时钟啊亲基于对联要求,我选择的是那个125M的low jitter 时钟,实际上,对应于一个线速度,在Aurora核的界面出来的几个可选时钟都是可以的, 甚至你生成核以后再修改时钟约束都行,只要是这个线速度对应的时钟列表里的时钟范围 亲测有效。关于平台上时钟与GTX的连接,来个壮观点的图表:5,2J7 GTX Port and Clock AllocationThe FPGA 0 GTX allocation has been designed to support all devices in the FFG1759 package.ConnectionGTX PortsMGT 117 Port3i-ront Panel Mln(-SAS Lane DMGT 117 Fort2Front Panel MiniSAS Lane CREFCLK 117 CLK1N/CREFCLK 117 CLKON/CMGT_117_Fort1Front Panel Mini-SAS Lane BMGT 1 l7 PortOFrortt Psni Mini-SAS Lane AMGTJW Port3SRIO Switch Pert 11 Lart& 47MGT_116_Fort2SRIO Switch Fort 11 Lane 46REFCLK 116 CLK1i25MHe ElhernetREFCLK_116_CLK0CDCE6200S Port 1MGT_11S_Port1SRIO Switch Port 11 Lane 45lS PortOSRIO Switch Pon 11 Lane 仙MGT 11 S Port3SRIQ WwiLch Pori 3 Lan自 1515 Port2SRIO Switch Pori 3 Lane 14REFCLK 115 CLK1N/CREFCLK_115_GLK0312.5MHz SRIO15_Port1SRIO Switch Pori 3 Lane 13MGT 115 PortDSRIO Swtlcrt Port 3 Lane 12MGT&114 Po3AMC Pon 17MGT 114 POrt2AMO Port 1 &REFCLK 114 CLK1N/CREFCLK_114_CLK0AMCFCLKAMGT 114 Port1AMC Port 19MGT 114 PortOAMC Port 20MGT 113 Fort3DSP2 PCIe Lane 1MGT 1l3 Port2DSP2PCIe LgneOREFCLK 113 CLK1125MHz EthernetREFCLK_113_CLK0CDCES2005 Port 3MGT 113 Port1N/CMGT 113 PortDEthernet Swilch Port 4MGT 1l2 Fort3DSP1 leLanelMGT 112 Port20SP1LsneOREFCLK 112 CLK1N/CREFCLK_112_CLK0100MHz FCIE_REFCLKMGT 1 l2 Port1Ethernet Switch Port 3MGT 112!亠Port。Elherrt&t Svvilch Port 2图 10由于平台中的SFP+ F2连接的是MGT_113_port1那个GTX,因此时钟就选择REFCLK_113_CLK1, 这个时钟驱动本QUAD和相邻QUAD的GTX都没问题。它在V6的管脚对应位置为AD8/AD7。 至于那个 uer_clk 的约束,就选择的是第一个普通的时钟,因为它是用来驱动用户逻辑的, 不需要太高的质量。这里大部分工作就完成了,是不是很简单?当你熟了之后觉得确实很简单,但是它却花了你 较长的时间去熟悉空几行留你思考下这时候你就可以进行测试了-先自环再平台对联。自环的话,可以是光纤自环,用一根光纤把SFP+ F2(最下面那个SFP+,一共有三个噻)模块的收发端短接起来。另一种自环就是近端PMA/PCS自环(参见v6_GTX user guide),目的是为了检验GTX是否工作正常。正常情况下,这两种自环是能通的,而且 因为是时钟同源时钟,收发两端不存在时钟频差,因此也不涉及时钟补偿问题。但是呢 我们这个平台光纤自环是不能通的,必须进行更多的时钟补偿,要修改时钟补偿模块(囧)l iE Pr引N-svigstcir |T* 8+) - E,t,pgs prcsi?ct!,yiy,fiijrcir#prctsurcr3 i 2g5 j 5rr.,.3i.iror.y.J,5g 1 ?5J 2 5rn hep - iaurar.B.standa-rd.ccjniDdul? vFile EdriPtqjnd: Sourcs- Ptdchm JooIbWindgyr LajfDUt Hfllp-:苗 Hgl硏e但i Ji2却舀.广El 0 = - Di *将 p4=Ucnign Utilrlies ChockQ prame_geri_i - aureH-a_FT?AME_ClEN(3LrDrfl_frarrie-_!0- DuroB.nAMECHEQK (DurcFB.fr-j iJfiHH - VJCdrli Cv_ican.UCa)M aurDra.exjjmpldfrsi iqmucf怎么修改呢?其实这应该是你的事,修改程序嘛,不过我还是简单说说吧。Hierarchy? a B Q机闻竝屯n-2Hl了50Q 0:创:印 a-I- 71 iK- aurara_c-Jtample_de-5ign (aurora_tampkde5ign.v3 j tlockjToduleJ - aurorfl_CLQC_MODULE (awror-s. aur3_GLQBAL_EJ0GC (aunorj. *1 :-auro*a_TX_STREAM (aurara_U_5lF 丑-fiuroria_RX_STF.EAi1 aLirorar图 11在ISE中打开时钟补偿模块,你要做的就是修改下count_24d_srl_r和count_24d_flop_r两个 变量的字长如上图中的注释reg部分,名字都可以不用改。然后找到与这两个变量相关的两端程序:1B1 1B2 1D3 1B41651B107IBS19Q191192 53194195韵1961992 DC2 DI 2D2203205ZD2072D&2D9210The outer caunt | axa the cc Ld.Le count) lj dsne when, it reei匚b已了 24 b ItGaunt ln.crcm上日匸s only vhcn. rhe mLcLdl上 亡口口曰匸done. 工匸 is Lmpl上mm.匚亡b 整丄匚In. 2 SEUL163end. & fl sp/ rtie SRL counts 2S 2)lcs ar the count 1c 13 enaDled anl/ yhen. Lhe mmaie caunt la / denelays &(pcsedQe U3ER_CLK)iRESETFe ou ni:_l Jd_a rl_r= % DLY11 bDd DO DdDaoaD;eLae 二 ln.Ld.dJ.e_ccim&_d.ane_G | | Eezsalilc_cg_gcrJ-_z5 DLYt counx_12d_fl np_r r ccueic_12d_3E L_r D z 9/ The assla匚意h l数,我是修改r变戟色f勺,你川以不改e、DLYcc idle coun c La dDFie irtiM a 1 zeachea rhe end cE che SHL and che nj.dd.Le er 口 unr fin La he s GC_ldle_QounT;_clorie_c =mlddl e_ca mnc_da ne_c counT;_lZil_3rl_r |I9 ?flop e wren Sa ihe shifr register co 24: bits for coanlng. It is held at, W2th. a single/ The/ zer匚 N-hle channel up 丄s low t c2e-s.r th. i:已口j.ster,j and. 1j jeeded. a/ 1 vtien chAnn&l up czanaiciDna tzarm alvairs 9 (pc 5=dlg= OSER.匚SCjit! (KESETFcouDT;_izii_riap_r=% &lyeLae l |Dale_口口_口 resev_rF couDT:_l?d_riap_r=%&LYeLas l liLLddlE saunt dene a)c ou nr_l JciLc(p_rc-% <irbo;coaDT; io all seres co 百UnuliitR / 凸:E匚已! EonElgTjrarlon. The clrculr will also -wqzjc la rhe imc value/ For sin.ulaclon.rpreparean. 3RLlfi in cJ.ud.ea把其对应的字长和循环移位的长度改一下就好了。 修改这段大概是啥子意思呢?意思就是更加频繁地增加时钟补偿,不细说了。 然后就大功告成了,光纤自环包括后面的平台对联(对联的时候请记住两个平台上的程序均使用一样的时钟补偿)都能成功了。自环和对联时用 chipscope 抓取的信号图就是下面两位:1JQ140HITipjjnnnnnunimnniiiniiniinuinMinuiniinnnnnmnMniiiniiinmiiniunminnu窿断1 KVCkhWK lOdLWll LMH1IW1is -k-1聶” n h siiih id1 hiill ill IIiajjlnfaHiaT* iiii n ilmilSiiimaliiiaii ii milSiiai1:IiLiT-dI2LHlAEliiJflifRlQ:hUhn打J旧:JHLdirOI00HmTsBQhliT-srlSdJJkLihr 饲11血2才国|1.114iJ*nGal11hUhrtHffl0huMiUllaLi * *ir_t翩刪*嵩用【翔啟” 沏幣剤Jaa嵩周【趣|伯皿 烦叮邂皿瞬嵩帅【:srMa?*躺臥飙):瀚也唯k觀)廠i嵩嘲【湘d邂I翊* k坯I鯛 需删【駆I曲* 1潮日刃H-Vfcji? tr JijijiFA MJn_srrjtF.Kl!优|战州岀X扑訂髓罚晌“战桝贮血讹幻血空血i圧也】曲曲粧出电曲咐扯山匸丸曲目勒吃咖 m逍笙卯皿!er滑朮j証Q:q:怕同沔跆広川好如汕;泌匕创汨出HEk iur kfi_trrcImuJV:Luui_rQ rKrij.:Lc1LI91卜僵毗m 豹cm掰却炉1囲Ti河TMu I: H2H:!图 13拔下光纤试试,那两个建链指示灯都是会变的。判断成没成功的关键就是 chipscope 中 channel_up 和 lane_up 对应的两个信号是不是稳定拉高,不出现不时拉低的情况,如果是 那么恭喜你又成功了,就可以用它了。(所以说 XILINX 的这些接口还是很强大的,尤其是其GTX)。哦,第二张chipscope图的user_clk 直是高电平并没错,因为我当时是用这个时钟 采它自己。至于用户接口的数据,你自己可以用线性反馈移位寄存器产生随机数测试,是没 问题的。OK,就酱了,其他的自己发掘吧。copy right LBC-UESTC
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 机械电气


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!