
ã¿ãªããããã«ã¡ã¯ïŒ ãã®èšäºã§ã¯ãADCããããšFPGAã¯ãªã¹ã¿ã«ã®æ¥ç¶ã«ã€ããŠèª¬æããŸãã åè·¯ããŒãã®æ¥ç¶ã®äž»ãªç¹åŸŽãèæ ®ãããææ°ã®ADCãšãã®ç¹æ§ãæ瀺ãããŸãã ãã®èšäºã§ã¯ãæå°éã®æéã³ã¹ãã§ADCãFPGAã«è¿ éãã€æ£ããæ¥ç¶ããæ¹æ³ã«é¢ããå®çšçãªãã³ããæäŸããŸãã ããã«ã1ã€ãŸãã¯å¥ã®ADCãæ¥ç¶ããåçã«ã€ããŠèª¬æããŸããå ¥åFPGAãããã¡ãŒãšãã®åºæ¬ã³ã³ããŒãã³ãïŒããªã¬ãŒãIODELAYé 延ããŒããISERDESã·ãªã¢ã©ã€ã¶ãŒãªã©ïŒãæ€èšããŸãã ãã詳现ã«ã¯ãVHDLã®ããã°ã©ã ã³ãŒãã®äŸã䜿çšããŠãADCããã®ããŒã¿ã®é«å質åä¿¡ã«å¿ èŠãªåºæ¬èŠçŽ ã®æŠèŠãå®è¡ããŸãã ããã¯ãå ¥åãããã¡ãã·ã³ã°ã«ãã£ãã«ããã³ãã«ããã£ãã«ã·ã¹ãã çšã®ããŒã¿ãããã³ã°ããŒããFIFOããŒã¹ã®ããŒã¿åæããã³ããŒã¿éä¿¡ã¢ãžã¥ãŒã«ãSPIã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããADCããã°ã©ãã³ã°ããŒããããã³ããŒã¿åšæ³¢æ°åæããŒã-MMCM / PLLã§ãã ãŸãããã®èšäºã§ã¯ãã¢ããã°ããã³ããžã¿ã«åè·¯ã®äž»èŠãªå€åœããã³åœå ã¡ãŒã«ãŒã®å®æããããã€ã¹ïŒFMCèŠæ ŒïŒã®æŠèŠã説æããŸãã èšäºã®æåŸã«ããã«ããã£ãã«ADCåè·¯ããã®ããŒã¿ã®åä¿¡æ©ã®ãŠãããŒãµã«ããŒãã®ãœãŒã¹ã³ãŒããžã®ãªã³ã¯ããããŸãã ã³ãŒãã¯ã·ã³ãã«ã§æ§æãæè»ã§ãVHDLèšèªã§è¡šç€ºãããXilinx 7ã·ãªãŒãºä»¥äžã®FPGAã§ã·ã£ãŒãã«ãªããŸãããä»ã®FPGAã§ã䜿çšã§ããŸãã
èšäºã®æŠèŠ
- ADCïŒæŠèŠãç®çãèŠçŽ ããŒã¹ïŒ
- ããŸããŸãªã¡ãŒã«ãŒã®å®æããADCã¢ãžã¥ãŒã«ã®äŸ
- ADCãFPGAã«æ¥ç¶ããŸãã FPGAã®éžæã é£çµ¡å
ãè«çãªãœãŒã¹ãããŒã¿è»¢éã€ã³ã¿ãŒãã§ãŒã¹ã®æ°
- FPGAå ¥åãããã¡ãŒã æ§æãã¡ã€ã³ããŒãã äºå®
- ã·ã³ã°ã«ãã£ã³ãã«ããã³ãã«ããã£ã³ãã«ã¹ããŒã çšã®ããŒã¿ããã«ãŒ
- ããŒã¿åæããŒãïŒFIFOïŒ
- SPIã€ã³ã¿ãŒãã§ãŒã¹ãä»ããADCå¶åŸ¡ïŒäŸïŒ
- ã€ã³ããŒã¿ã€ã€ã FPGAããªã¢ãŒãããã€ã¹ã«æ¥ç¶ãã
- ADCããŒã¿åä¿¡æ©ã®ãœãŒã¹ã³ãŒã
- åç §è³æ
A / Dã³ã³ããŒã¿ãŒ
ADCã¯ãå¹ åºãçš®é¡ã®ç¡ç·ãšã³ãžãã¢ãªã³ã°ã¿ã¹ã¯ã«äœ¿çšãããŸããã¢ããã°ä¿¡å·ãããžã¿ã«åœ¢åŒã«å€æããå¿ èŠããããã¹ãŠã®ããã€ã¹ã§äœ¿çšãããŸãã ãªãŒãã£ãªããã³ãããªã·ã¹ãã ãæ°Žé³é¿åŠããã³æ°Žéä¿¡ã®åé¡ïŒäœãµã³ããªã³ã°åšæ³¢æ°ãé«ããã深床ïŒãç¡ç·åšæ³¢æ°ç¯å²ãå€æããããã€ã¹ïŒDDC / DUCåè·¯ïŒãã¬ãŒããŒããã³ç¡ç·ããã²ãŒã·ã§ã³ïŒé«ãµã³ããªã³ã°åšæ³¢æ°ãäžãããïŒã§äœ¿çšã§ããŸãããŒã¿ïŒã ADCã¯ãããžã¿ã«é»å§èšããã³ãã«ãã¡ãŒã¿ãŒãã³ã³ãã¥ãŒã¿ãŒã®ãããªå ¥åããŒãããããªã«ã¡ã©ãé³å£°èªèã·ã¹ãã ããµãŠã³ãããã€ã¹ã§äœ¿çšãããŸãã é«éADCã¯ããªã·ãã¹ã³ãŒãããã³ã¹ãã¯ãã«ã¢ãã©ã€ã¶ãŒã§äœ¿çšãããå®éšè£ 眮ããã³å»çæ©åšã§äœ¿çšãããŸãã å€ãã®å ŽåãADCã¯é«éã§ããŒã¿ãåéããã³åŠçããã¿ã¹ã¯ã§äœ¿çšãããŸãã
ã芧ã®ãšãããADCãããã¯A / Dããã€ã¹ã®äžå¯æ¬ ãªéšåã§ãã çŸä»£ã®äžçã§ã¯ãADCããªãããã€ã¹ãèŠã€ããããšã¯éåžžã«å°é£ã§ãã ADCã®å€å žçãªå€èŠ³ã次ã®å³ã«ç€ºããŸãã

ããã¯ãAD9684ãããã®ããŒã¿ã·ãŒãããåãããç°¡ç¥å³ã§ãã 2ã€ã®å·®åã¢ããã°å ¥åVINAããã³VINB ã CLKã¯ããã¯å ¥åãSPIå¶åŸ¡ããã©ã¬ã«åºåãã¹D0-D13 ããã€ã¯ãåè·¯ã®ããŸããŸãªã³ã³ããŒãã³ãã®é»å§ãã€ã³ããåæãããã¯SYNCããã³ãã®ä»ã®å¶åŸ¡ä¿¡å·ãå«ãŸããŠããŸãã
ADCã®ãã€ã¯ãåè·¯ã¯ããŠãŒã¶ãŒã®æçµçãªéžæã«äŸåããADCã®ç¯å²ã決å®ããç¹å®ã®ãã©ã¡ãŒã¿ãŒã®ã»ããã«ãã£ãŠç¹åŸŽä»ããããããšã¯æããã§ãã ããžã¿ã«éšã§ã¯ ãããã¯ããŒã¿è»¢éé床ïŒæå¹ã¯ããã¯åšæ³¢æ°ïŒã§ãããæ°åkHzããæ°GHzã®ç¯å²ã§ãã ADCã®åºåã§ã®ããŒã¿å®¹é-ææ°ã®ããã€ã¹ã§ã¯8ã32ãããã®ããŒã¿ã ã¢ããã°åŽã§ã¯ããããã¯ä¿¡å·å¯Ÿéé³æ¯ïŒ SNR ïŒãšã¹ããªã¢ã¹ããªãŒãã€ãããã¯ã¬ã³ãžïŒ SFDR ïŒã§ãããéåžžã¯ãã·ãã«ã§è¡šãããŸãïŒéåžžã®SNRã¬ãã«ã®ç¯å²ã¯70ã80 dBãSFDRã¬ãã«ã¯çŽ90 dBcïŒã ADCãéžæããéã®éèŠãªãã©ã¡ãŒã¿ãŒã¯ãæ¶è²»é»åïŒWïŒã1ã€ã®ããŠãžã³ã°å ã®ãã£ã³ãã«æ°ãããžã¿ã«ããŒããšã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŠãã¡ããã³ã³ããŒãã³ãã®ã³ã¹ãã§ãã
ããããçš®é¡ã®ADCããã³DACãããã®è£œé åéã®å·šäººã§ããæåãªãµã€ãAnalog Devicesããæç²ããè¡šã®äŸã䜿çšããŠãææ°ã®é«éADCãšãã®ç¹æ§ãæ€èšããŠãã ããã 䟿å®äžãè¡šã«ã¯ããã€ã¯ãåè·¯ã®æãéèŠãªç¹æ§ãèŠçŽãããŠããŸãããããã¯ãããžã¿ã«ããã€ã¹ãšã®éä¿¡ã€ã³ã¿ãŒãã§ã€ã¹ã®ã¿ã€ãã«ãã£ãŠåããããæ å ±è»¢éã®é床ïŒã¯ããã¯åšæ³¢æ°ïŒã«å¿ããŠå€§ããªå€ããå°ããªå€ã«é 眮ãããŸãã

ãã®è¡šã¯ãLVDSèŠæ Œã«åŸã£ãŠããŒã¿ã䞊å圢åŒã§éä¿¡ãã4ã€ã®ããããšã³ããã€ã¯ããããã瀺ããŠããŸãã ããŒã¿ã®å®¹éã¯14ã16ããã£ãã«1ã2ãæ倧ãµã³ããªã³ã°åšæ³¢æ°ã¯500 MHzã§ãã å¹³åSNRãšSFDRã¯ããããã70 dBFSãš90 dBcã§ãã ã·ãªã¢ã«ããŒã¿ãã¹ïŒã·ãªã¢ã«ïŒã䜿çšããäžéšã®åè·¯ã§ã¯ãç¹æ§ã¯ã»ãŒåãã§ãã JESD204BäŒéã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããã®ã¬ãããã©ã€ã³ãä»ããŠFPGAã«æ¥ç¶ããææ°ã®ADCãããã®å Žåãã¯ããã¯åšæ³¢æ°ã¯ã¯ããã«é«ããªããŸãããã¢ããã°ç¹æ§ã¯ãããã«æªããªããŸãïŒå°ãªããšãããžã¿ã«ããŒã¿å®¹éãäœãããã12ããããš14ãããã§ãïŒã ãã®èšäºã§ã¯ ãã®ã¬ãããåç·ãä»ããADCã®FPGAã¯ãªã¹ã¿ã«ãžã®æ¥ç¶ã«ã€ããŠã¯èª¬æããŸãã ã è¶ å°ååè·¯ãæ¥ç¶ããããã®ã·ã³ãã«ã§ååã«ç 究ããããªãã·ã§ã³ã«çŠç¹ãåœãŠãŸã-LVTTLãLVDSãLVCMOSãLVPECLãªã©ã®ããŒã¿è»¢éã€ã³ã¿ãŒãã§ãŒã¹ãåããã·ãªã¢ã«ããã³ãã©ã¬ã«ãã¹ã ç¹ã«ãLVDSãã¹ã§ããŒã¿ã転éããèå³æ·±ãæ¹æ³ã¯ãPCBãã¬ãŒã¹ã®åçŽããäœã³ã¹ãããã©ãŒãã³ã¹ãäœãã€ãºããã³é»åæ倱ãããã³é«éããŒã¿è»¢éé床ã«ãã£ãŠåºå¥ãããŸãã FPGAã¯ãã·ãªã¢ã©ã€ã¶/ãã·ãªã¢ã©ã€ã¶ã䜿çšããŠã·ãªã¢ã«ãã¹ããŒã¿ãåä¿¡ããŸãã ãã©ã¬ã«ãã¹ã®å Žåããã¹ãŠãã¯ããã«åçŽã§ãããããŒã¿ã¯ãã®ãŸãŸåãå ¥ããããŸãã
ã¢ããã°ããã€ã¹ãšããžã¿ã«ããã€ã¹ã®ãã¢ãªã³ã°ã®éçšã§ã次ã®ADCããããç¿åŸããå¿ èŠããããŸããã ãããã¯ãã§ã«å»æ¢ãããŠããŸããããŸã 䜿çšãããŠããŸã-AD9224ãAD6644ST-65ãAD9244ãLCT2207ãADS5474ãAD9432BST-105ãAD7475BR ãææ°ã¬ãã«ã®ãã€ã¯ãããã-AD9430BSVãADS54RFãAD9467ãADC12D1800ãAD9680ãªã© ç§ã®ä»äºã®é åã¯ã¢ããã°åè·¯ã«éšåçã«ããé¢ä¿ããŠããªããããå®æããã¢ããã°ããžã¿ã«ã¢ãžã¥ãŒã«ã®ããã©ãŒãã³ã¹ãæ¹åããæ¹æ³ã«ã€ããŠã話ãããããšã¯ã§ããŸããã ãŸããã¢ããã°ãã¹ã®å®æ§çãªæ§æããæè¯ã®ã¢ããã°æ§èœïŒSNRãSFDRïŒãéæããããã®1ã€ãŸãã¯å¥ã®åè·¯ã³ã³ããŒãã³ããéžæããããã®æ¹æ³è«ã«ã€ããŠã¢ããã€ã¹ããããšã¯ã§ããŸããã ãããããã®èšäºã®ãã¬ãŒã ã¯ãŒã¯å ã§ADCãFPGAã¯ãªã¹ã¿ã«ã«æ¥ç¶ããããã«ããŒã¿ãåŠçãããšãã質åã«çããããšããŸãã
ADCã¢ãžã¥ãŒã«ã®äŸ
次ã®å³ã¯ããã·ã¢ããã³æµ·å€ã®ã¡ãŒã«ãŒããã®ã¢ããã°ããããžã¿ã«ãžã®ããŒã¿å€æçšã®å®æããé«å質ã¢ãžã¥ãŒã«ã®ææ°ã®äŸã瀺ããŠããŸãã ãããã¯ãã¹ãŠã1ã€ãŸãã¯è€æ°ã®ã¢ããã°æ¥ç¶å ¥åãšãããŒã¿ããã»ããµãã€ã³ã¹ããŒã«ãããŠãããã£ãªã¢ããŒãïŒéåžžã¯FPGAïŒã«æ¥ç¶ããããã®FMCïŒFPGAã¡ã¶ãã³ã«ãŒãïŒã¢ããã¿ãŒã³ãã¯ã¿ãåããŠããŸãã FMCã¯ãã¢ãžã¥ãŒã«ã¢ãŒããã¯ãã£ã§è£œåãæ¥ç¶ããããã®äž»èŠãªæšæºã®1ã€ã§ãã å€ãã®å Žåãã¢ããã°éšåã¯ã¡ã¶ãã³ããŒãïŒã¡ã¶ãã³ããŒãïŒã«ã€ã³ã¹ããŒã«ãããããŒã¿åŠçãå®è¡ããäžå€®ãŠãããã¯ãã£ãªã¢ã¢ãžã¥ãŒã«ïŒãã£ãªã¢ããŒãïŒã«ã€ã³ã¹ããŒã«ãããŸããããã¯1ã€ä»¥äžã®FPGAããã³/ãŸãã¯ã·ã°ãã«ããã»ããµã§ãã ããã€ã¹ã®å€åœã¡ãŒã«ãŒã®ãã¡ã2ã€ã®äž»èŠãªè£œé äŒç€Ÿãåºå¥ããå¿ èŠããããŸã-ãããã¯4dspãšhitechglobalã§ãã æ€çŽ¢ã®æåã®è¡ã«ããGoogleã®åœå ã¡ãŒã«ãŒã®ãã¡ãCJSC Scan Engineering TelecomãCJSC Instrumental Systemsãªã©ã èšäºã®èè ã¯æ瀺ãããã¢ãžã¥ãŒã«ã«ã€ããŠè²¬ä»»ãè² ã ã ãç¹å®ã®äŒç€Ÿã®è£œåã宣äŒããããã«èšäºã䜿çšããŸãã ã
HTG-ADC16 ã 次ã®ç¹æ§ããããŸãïŒå ¬åŒãµã€ãããååŸïŒã

- 16ãããå解èœããã¥ã¢ã«ãã£ã³ãã«ã1GSPS ADC
- ãã€ãºããã¢ïŒâ159 dBFS / Hz
- ã¹ãã¯ãã«æ§èœïŒfIN = 170 MHzã-1 dBFSïŒïŒ
- SNRïŒ70 dBFS
- SFDRïŒ86 dBc
- SFDRïŒ96 dBcïŒHD2ãHD3ãããã³ã€ã³ã¿ãŒãªãŒãããŒã³ãé€ãïŒ
- ã¹ãã¯ãã«æ§èœïŒfIN = â1 dBFSã§350 MHzïŒïŒ
- SNRïŒ67.5 dBFS
- NSDïŒâ154.5 dBFS / Hz
- SFDRïŒ75 dBc
- SFDRïŒ85 dBcïŒHD2ãHD3ãããã³ã€ã³ã¿ãŒãªãŒãã³ã°ããŒã³ãé€ãïŒ
- ãã£ã³ãã«ã¢ã€ãœã¬ãŒã·ã§ã³ïŒfIN = 170 MHzã§100 dBc
- å ¥åãã«ã¹ã±ãŒã«ïŒ1.9 VPP
- å ¥å垯åå¹ ïŒ3 dBïŒïŒ700 MHz
- ãªã³ããããã£ãã
- çµ±åãããåºåž¯åDDCãããã¯
- ãµãã¯ã©ã¹1ããµããŒãããJESD204Bã€ã³ã¿ãŒãã§ã€ã¹ïŒ
- ADCããã10.0 Gbpsã§2ã¬ãŒã³
- 5.0 Gbpsã§ADCããã4ã¬ãŒã³
- ãã«ããããåæã®ãµããŒã
- æ¶è²»é»åïŒ1 GSPSã§1.35 W / ch
FMC104ïŒ4ãã£ã³ãã«250 MSPS @ 14ããã ç¹æ§ïŒæ å ±ã®åé·æ§ã®ããã«åé€ããããã®ïŒïŒ

- 4ãã£ãã«14ããã250 MSPS A / Då€æ
- 空å·ããã³äŒå°å·åŽãšããŠå©çšå¯èœ
- VITA 57.1-2010æºæ
- TI ADS62P49ã«åºã¥ã
- LVDSãŸãã¯1.8V LVCMOSåºååäœ
- ã·ã³ã°ã«ãšã³ãACãŸãã¯DCçµåã¢ããã°å ¥å
- æè»ãªã¯ããã¯ããªãŒã«ãã
- LPCïŒäœãã³æ°ïŒäºæ
ãã®ã¢ãžã¥ãŒã«ã¯ã4ã€ã®ADCãã£ãã«ãš1.8Vé»æºãåããŠããŸãïŒHP Xilinx FPGAã䜿çšãããŠããŸãïŒã
FMC120ïŒ4ãã£ã³ãã«250 MSPS @ 14ããã ç¹åŸŽïŒ
- ã¯ã¯ãã-A / D-D / Aãã£ãã«æäœ
- ã¯ã¢ãããã£ãã«16ããã1.00 GSPS A / D
- ã¯ã¢ãããã£ãã«16ããã1.25 GSPS D / A
- æ倧1 GSPSã®ãã¹ãŠã®ãã£ãã«ã§ã®åæãµã³ããªã³ã°
- VITA 57.1-2010æºæ
- äŒå°å·åŽ-æšæºãªãã·ã§ã³
- ã·ã³ã°ã«ãšã³ãDCãŸãã¯ACçµåã¢ããã°å ¥åã
- SPIéä¿¡ãã¹ãä»ããã¯ããã¯ãœãŒã¹ããµã³ããªã³ã°åšæ³¢æ°ãããã³ãã£ãªãã¬ãŒã·ã§ã³
- HPC-å€ãã³ã³ãã¯ã¿ãŒ
- I2Cãã¹çµç±ã§ãã¹ãããã¢ã¯ã»ã¹å¯èœãª2KãããEEPROMïŒ24LC02BïŒ
- JTAG-FLDæ¥ç¶ããã¢ã¯ã»ã¹å¯èœãªJTAGãã§ãŒã³ã«CPLDããã€ã¹ãå«ãŸããŠããŸã
FMC140ïŒ4ãã£ã³ãã«16ããã370MSPS A / D 次ã®ç¹æ§ããããŸãã

- 4ãã£ãã«ã16ãããA / Dãæ倧370 MSPS
- VITA 57.1-2010æºæ
- JESD204Bã·ãªã¢ã«ã€ã³ã¿ãŒãã§ã€ã¹
- ACãŸãã¯DCçµåã¢ããã°ä¿¡å·
- SPIéä¿¡ãã¹ãä»ããã¯ããã¯ãœãŒã¹ããµã³ããªã³ã°åšæ³¢æ°ãããã³ãã£ãªãã¬ãŒã·ã§ã³
- æè»ãªã¯ããã¯ããªãŒã«ãã
- ã·ã¹ãã ã®çé»åã®ããã«æªäœ¿çšã®æ©èœããªãã«ãããã¯ãŒããŠã³ã¢ãŒã
- HPC-å€ãã³ã³ãã¯ã¿ãŒ
ãã®ã¢ãžã¥ãŒã«ã¯ã4ã€ã®é«éADCãã£ãã«ã16ãããã®ããŒã¿å®¹éãããã³JESB204Béä¿¡ãåããŠããŸãã
SFM-4A1000ã¢ãžã¥ãŒã« ç¹åŸŽïŒ

- 4ã€ã®ADCãã£ãã«ïŒ14ããã1000 MHz
- æ倧2 GHzã®ãããŒããã³ããã©ã³ã¹å ¥å
- JESD204Bãã£ãªã¢ã¢ãžã¥ãŒã«ãšã®ã€ã³ã¿ãŒãã§ãŒã¹
- ADCã«çµã¿èŸŒãŸããããžã¿ã«ãã·ã¡ãŒã·ã§ã³ããã³AGCæ©èœã®ãµããŒã
- éåžžã«å®å®ããåºæºçºæ¯åšãå€éšåºæºã¯ããã¯å ¥å
- ADCèšå®ãšã¯ããã¯åè·¯ã®ãœãããŠã§ã¢å¶åŸ¡
- 空å·ãŸãã¯äŒå°å·åŽã«ããã·ã³ã°ã«å¹ FMCãã©ãŒã ãã¡ã¯ã¿ãŒ
ã¢ãžã¥ãŒã«ã®ç¹åŸŽã¯ãåœå éçºã4ã€ã®é«éADCãã£ãã«ã2 GHz垯åãããã³JESB204Bã€ã³ã¿ãŒãã§ã€ã¹äº€æã§ãã
FMC212x4GDAã¢ãžã¥ãŒã« ç¹åŸŽïŒ

- 2ã€ã®12ãããADCãã£ãã«
- å€æé »åºŠïŒ1ã4 GSPS
- ã¢ããã°å ¥å垯åïŒ5ã2000 MHz
- å ¥åã€ã³ããŒãã³ã¹ïŒ50ãªãŒã
- ADCã«çµ±åãããDDC
- æ倧DDC垯åå¹ ïŒ800 MHz
- éåŒãä¿æ°DDCïŒ4ã32
- 4ãã£ãã«DAC 16ããã2.8 GSPS
- è£éïŒx2ãx4ãx8
- DACåºååšæ³¢æ°ç¯å²ïŒ0.5ã400 MHz
- æ倧åºåæ¯å¹ ïŒÂ±0.5 V
- åºåã€ã³ããŒãã³ã¹ïŒ50ãªãŒã
- äœãã€ãºADCããã³DACçšã®ã·ã³ã»ãµã€ã¶ãŒ
- ANSI / VITA 57.1 FMCã¢ãžã¥ãŒã«69x76.5 mm
ãã®ã¢ãžã¥ãŒã«ã¯ã2ã€ã®é«éADCãã£ã³ãã«ãæ倧2 GHzã®ä¿¡å·åž¯åå¹ ãJESB204Bã€ã³ã¿ãŒãã§ã€ã¹ã§ã®äº€æããã«ãã€ã³DDCãããã4ã€ã®DACãã£ã³ãã«ãåããŠããŸãã
FMC816x250Mã¢ãžã¥ãŒã« ç¹åŸŽïŒ

- ANSI / VITA 57.1 FMCã¢ãžã¥ãŒã«ã®åå¹ 139x76.5mm
- 8 ADC 16ããã
- å€æåšæ³¢æ°ïŒ50 MHzã250 MHz
- ã¢ããã°å ¥å垯å0.1 ... 250 MHz
- å€æã¹ã±ãŒã«ïŒÂ±0.8V; ±0.65V
- å ¥åã€ã³ããŒãã³ã¹ïŒ50ãªãŒã
- å éš/å€éšã¯ãããã³ã°
- 調æŽå¯èœãªã¯ããã¯ãžã§ãã¬ãŒã¿ãŒ10 ... 250 MHz
ãã®ã¢ãžã¥ãŒã«ã¯ã8ã€ã®ADCãã£ãã«ããã¥ã¢ã«ã¢ãžã¥ãŒã«ãåããŠããŸãã
ã芧ã®ãšãããFMCèŠæ Œã®ã¢ããã°-ããžã¿ã«å€æã¢ãžã¥ãŒã«ã®å€ãã¯é¡äŒŒããŠãããã»ãšãã©åãç¹æ§ãæã£ãŠããŸãããããã®ç¹æ§ã¯ãåãä»ããããADCããã³DACãããã«ãã£ãŠæ±ºãŸããŸãã ã¢ãžã¥ãŒã«ã®æçµçãªéžæã¯ããšã³ããŠãŒã¶ãŒã解決ããå¿ èŠã®ããã¿ã¹ã¯ã«ãã£ãŠæ±ºãŸããŸãã
ADCãFPGAã«æ¥ç¶ãã
ãã®èšäºã®ã¡ã€ã³ã»ã¯ã·ã§ã³ã§ããADCããããFPGAã¯ãªã¹ã¿ã«ã«æ¥ç¶ããããšã«é²ã¿ãŸãããã ããŒã¿è»¢éã€ã³ã¿ãŒãã§ãŒã¹ïŒ LVTTLãLVCMOSãLVDSïŒã䜿çšããŠãADCããã©ã¬ã«ããã³ã·ãªã¢ã«ãã¹ã«æ¥ç¶ããããšãæ€èšããŠãã ããã ãã®èšäºã§ã¯ ã JESD204Bã€ã³ã¿ãŒãã§ãŒã¹ãä»ããADCã®æ¥ç¶ã«ã€ããŠã¯èæ ®ããŸãããããã¯ãè€æ°ã®æ¬æ Œçãªèšäºãåãäžããå¥ã®ãããã¯ã®è³æã§ããããã§ãã ããã«ãJESD204Bã¯ãADCããããæ¥ç¶ããããã®ãã¯ã©ã·ãã¯ããªãã·ã§ã³ãšå®è£ ã倧ããç°ãªãããããã詳现ãªæ€èšãå¿ èŠã§ãã
æ¢ç¥ã®ããã«ãFPGA I / Oãã³ã¯ïŒãã³ã°ã«ãŒãïŒã¯ãæ°Žæ¶ã¡ãŒã«ãŒã«ãã£ãŠå¢çã決å®ãããããŸããŸãªäŸçµŠé»å§ã«èšå®ã§ããŸãã ææ°ã®ã¶ã€ãªã³ã¯ã¹FPGAã§ã¯ãé©çšãããé»å§ç¯å²ã¯ãã³ã¯ã®ã¿ã€ãã«ãã£ãŠç°ãªããŸãã éè¡ã«ã¯2ã€ã®äž»ãªã¿ã€ãïŒã¶ã€ãªã³ã¯ã¹ïŒããããŸã-HP ïŒé«æ§èœïŒãšHR ïŒæšæºãšé£åã®éžæè¢ãè±å¯ãªéè¡ïŒã ããšãã°ãXilinx Series 7ãããã§ã¯ãHRãã³ã¯ã®é»å§ç¯å²ã¯1.2ã3.3Vã§ãããHPãã³ã¯ã®é»å§ç¯å²ã¯1.2ã1.8Vã§ãã ããã«ãããŸããŸãªæšæºããŒã¿è»¢éã€ã³ã¿ãŒãã§ã€ã¹çšã«ãã³ã¯ãã³ãããã°ã©ã ã§ããŸãããæšæºã®æçµçãªéžæã¯ãFPGAãã³ã¯ã®é»å§ãšãªã¢ãŒãããã€ã¹ãšFPGAã®æ¥ç¶æ¹æ³ãšãã2ã€ã®ã«ãŒã«ã«ãã£ãŠæ±ºãŸããŸãã äžæ¹ãFPGAãã³ã¯ã®äŸçµŠé»å§ãéžæããéã«ã¯ãæ°Žæ¶ã®ãã¡ããªãéèŠãªèŠçŽ ã§ãã ãããã£ãŠãKintex-7ã§ã¯ãLVDS 25èŠæ Œã䜿çšããŠ2.5Vã®é»å§ã§ãã³ã¯ã«é»åãäŸçµŠããããšãã§ããå€ãã®Virtex-7 FPGAã§ã¯ãæ¥ç¶èŠæ Œã¯æä»çã«LVDS 18ã§ããããã³ã¯ã¯1.8Vã®é»å§ã§é§åãããŸãã ãã®ç¹ã§ãããã€ãã®ã¢ããã°ã¢ãžã¥ãŒã«ãšãã£ãªã¢ããŒããç°ãªãFPGAãã¡ããªãšãã¢ãªã³ã°ããåé¡ããããŸãã ãã®ããããµãŒãããŒãã£ã®ã¡ãŒã«ãŒããADCã¢ãžã¥ãŒã«ããã£ãªã¢ããŒããè³Œå ¥ããå Žåã¯ãããããæšæºããã³äŸçµŠé»å§ãšäºææ§ãããããšã確èªããå¿ èŠããããŸãã ååãšããŠãããŒã¿è»¢éã€ã³ã¿ãŒãã§ã€ã¹ã¯ãããžã§ã¯ããœãŒã¹ã³ãŒãã§ã¯ãªããå¶éãã¡ã€ã«ïŒ UCFãŸãã¯XDC ïŒã«æžã蟌ãŸããŸããããã«ãããæ§æã®æè»æ§ãšä»ã®ãããžã§ã¯ãã§ã®ãœãŒã¹ã³ãŒããã¡ã€ã«ã®åå©çšãå¯èœã«ãªããŸãã
ãããžã§ã¯ãã®æäžäœãã¡ã€ã«ã®æ§é å³ïŒããã³LVTTL / LVCMOS / LVDSæšæºã«åŸã£ãŠADCãããããããŒã¿ãåä¿¡ããããã«äœ¿çšãããå éšãŠãããïŒã次ã®å³ã«ç€ºããŸãã

次ã®èŠçŽ ãå«ãŸããŸãã
- å ¥åã¬ã·ãŒããŒ
- ããŒã¿ããã«ãŒ
- ããŒã¿ã¹ããªãŒã ã·ã³ã¯ããã€ã¶ãŒïŒFIFOïŒ
- ADCãããå¶åŸ¡ãŠããã
ãããã®ããŒãã«å ããŠãäžäœã¬ãã«ã§ã¯ãMMCMã«åºã¥ãåšæ³¢æ°åæã¢ãžã¥ãŒã«ïŒæšæºFPGAãªãœãŒã¹ïŒã䜿çšãããŸãã ãŸããIDELAYCTRLã³ã³ããŒãã³ãã¯ãIODELAYããŒãã®é 延ãå¶åŸ¡ããããã«äœ¿çšãããŸãã
FPGAã®åè·¯ã®æ§æãäŸåããæäžäœãã¡ã€ã«ã®äž»ãªãã©ã¡ãŒã¿ãŒïŒ
- NCHAN-ç¬ç«ããADCãã£ãã«ã®æ°ã
- DATA_WIDTH-ADCããŒã¿å®¹éã
- FIFO_ADDR-FIFOã®æ·±ãïŒDEPTH = 2 ** ADDRã
- DATA_RATE-ããŒã¿åä¿¡ã¢ãŒãïŒSDR / DDRã
- PACK_OUT-ããã«ãŒã®åºåãã¹ïŒã·ã¹ãã ãã¹ïŒã®å¹ ã
- CLK_SEL-ãã«ããã£ãã«åè·¯ã®ã¡ã€ã³ã¯ããã¯ãœãŒã¹ã®éžæã
- USE_MMCM-BUFRã®ä»£ããã«MMCMããŒãã䜿çšããŠCLKDIVåšæ³¢æ°ãSERDESã§é€ç®ãã
- DIFF_TERM-å·®åå ¥åä¿¡å·ã®äœ¿çšïŒTRUE / FALSEïŒã
- IOSTANDARD-LVDSã©ã€ã³ã®é»å§æšæºã
- DATA_IOBDELAY_TYPE-é 延ããŒãIODELAYã®åäœã¢ãŒãã
- DATA_IOBDELAY_VALUE-ããã©ã«ãã®é 延å€ã
- DIFF_CLOCK-å·®åå ¥åä¿¡å·ã䜿çšïŒTRUE / FALSEïŒã
- OVR_PRES-ADCãªãŒããŒãããŒã©ã€ã³ã®äœ¿çšïŒãªãŒããŒãããŒïŒã
- STR_PRES-ADCå€éšéå§ä¿¡å·ç·ã®äœ¿çšïŒéå§ïŒã
- RESYNC_OUT-å ¥åãããã¡äžã®ããŒã¿ã®äžæ¬¡ååæã®ã¡ã«ããºã ãæå¹ã«ããŸãïŒYES / NOïŒã
ãã®ä»ã®ãªãã·ã§ã³ã
ADCã¬ã·ãŒããŒã®ãããã¬ãã«ãã¡ã€ã«ã®ã³ãŒãã®äžéšã¯æ¬¡ã®ããã«ãªããŸãã
xFIFO: CTRL_FIFO_CONFIG generic map ( DATA_WIDTH => PACK_OUT, ADDR_WIDTH => FIFO_ADDR ) port map ( reset => reset, wr_clk => clk_pack, rd_clk => sys_clk, data_i => do_pack, data_o => do_fifo, rd_en => cs_fifo, wr_en => dv_pack, empty => ef_fifo, full => ff_fifo );
ããã«ãããFIFOããŒããæ¥ç¶ãããããã€ã¹ã®ã·ã¹ãã ãã¹ãšããŒã¿ãåæãããŸãã ãã«ããã£ãã«ããã³ãã«ãããããããã¡åè·¯ã§ã®IODELAYã®ããã°ã©ãã³ã°é 延ã¯æ¬¡ã®ãšããã§ãã
---- Data delays ---- x_dat_dd <= x_dat_do(conv_integer(unsigned(dl_chan))) when rising_edge(dl_clk); x_dat_in(conv_integer(unsigned(dl_chan)))(conv_integer(unsigned(dl_muxs))) <= dl_dat_in when rising_edge(dl_clk); x_dat_ce(conv_integer(unsigned(dl_chan)))(conv_integer(unsigned(dl_muxs))) <= dl_dat_ce when rising_edge(dl_clk); x_dat_ld(conv_integer(unsigned(dl_chan)))(conv_integer(unsigned(dl_muxs))) <= dl_dat_ld when rising_edge(dl_clk);
dl_chanã¯éžæãããADCãã£ãã«ã§ããã dl_muxsã¯ADCã®éžæããããããã§ãã ããã¯ãããŒã¿ã®åããããåå¥ã«ããã°ã©ã ããããã«è¡ãããŸãã
åããŒãã詳现ã«æ€èšããŠãã ããã
æ³šïŒ FPGAãšDACïŒããžã¿ã«-ã¢ããã°ã³ã³ããŒã¿ãŒïŒãæ¥ç¶ããå Žåãç¶æ³ã¯åæ ãããŸãã åãããšãè¡ãå¿ èŠããããŸãããé çªã¯éã§ãã ãã®èšäºã§ã¯ãFPGAã®DACãžã®æ¥ç¶ã¯èæ ®ãããŠããŸããã
å ¥åã¬ã·ãŒããŒ
å€éšPCBä¿¡å·ãšFPGAããžãã¯éã®æ¥ç¶ã®äž»èŠãªèŠçŽ ãå«ãŸããŠããŸãã ããã¯ãFPGAãã³ããIOBUFå ¥åãããã¡ããžãã¯ãžã®IPADãããã¡ã§ãã ããŒã¿è»¢éã€ã³ã¿ãŒãã§ã€ã¹ã«å¿ããŠããããã¡ã¯å·®åïŒIBUFDSïŒããã³ãŠãããŒã©ïŒIBUFïŒã«ãªããŸãã å€ãã®ãããã¡ã§ã¯ãå¿ èŠãªæšæºãžã®å³å¯ãªãã€ã³ããå¯èœã§ãããŸãã¯ãå±æ§ãä»ããŠåºåä¿¡å·ã®ã¿ã€ããèšå®ããããšãã§ããŸãã ããšãã°ã IOBUFDå±æ§ã䜿çšããŠIBUFDSã®å Žå ããœãŒã¹ã³ãŒãã§æšæºã®ã LVDS_25 ããäºåå®çŸ©ããã³èšå®ã§ããŸãã
ãããã¡ã«ç¶ããŠã IODELAYä¿¡å·é 延é 延å¶åŸ¡ãŠããããã€ã³ã¹ããŒã«ããããã©ã¬ã«ããŒã¿ãã¹ã®ãšããžãæããæåã«ADCã®ãã«ããã£ãã«ããŒããFPGAæ¥ç¶ã«èª¿æŽããŸãã IODELAYã¯ããã°ã©ã å¯èœãªFPGAãªãœãŒã¹ã§ãããé 延å€ã¯ããã©ã«ãèšå®ã§åºå®ããŠæ±ºå®ãããã0ã31ã®åŸæ¥ã®æéå€ã®ç¯å²ã§ããã°ã©ã ã§ããŸãïŒå³ã¯FPGAãããã®ããŒã¿ã·ãŒãã«ãã£ãŠæ±ºå®ãããŸãïŒã ããã°ã©ãã³ã°ã¯ãããã€ãã®ä¿¡å·ã䜿çšããŠåºæ¬çãªæ¹æ³ã§è¡ãããŸãã ããã°ã©ãã³ã°ã¢ã«ãŽãªãºã ã®è©³çŽ°ãªåæã«ã€ããŠã¯èª¬æããŸãããã詳现ã«ã€ããŠã¯ããã®èšäºã®æåŸã«ããåç §ãªã¹ãã®ããã¥ã¡ã³ããåç §ããŠãã ããã IODELAYããŒãã®å Žå ãåFPGAã¯ããã¯é åã®é 延ããªã¢ã«ã¿ã€ã ã§èŒæ£ããç¹å¥ãªIDELAYCTRLé 延å¶åŸ¡ããŒããæ¥ç¶ããå¿ èŠããããŸã ã æ°Žæ¶ã®æž©åºŠãé»æºé»å§ãFPGAè² è·ã®åœ±é¿ãæé€ããããã«ãIDELAYCTRLããŒãã¯ç¬ç«ããREFCLKä¿¡å·ã«ãã£ãŠã¯ããã¯ãããŸãã ãã®ã¯ããã¯ä¿¡å·ã¯ãåFPGAã¯ããã¯é åã®ãã¹ãŠã®IODELAYããŒãã§åéã®é å»¶ïŒ TAP ïŒãæäŸããŸãã åã¯ããã¯é åã«ç¬èªã®ãã¥ãŒãã³ã°å€ãå¿ èŠãªå Žåãããã€ãã®IDELAYCTRLããŒããFPGAãããã§åæåãããŸãã REFCLKã¯ããã¯ä¿¡å·ã¯ãFPGAã®å€éšã«ã€ã³ã¹ããŒã«ãããå€éšãžã§ãã¬ãŒã¿ãŒããäŸçµŠãããã FPGAãããã®MMCMããŒãã§åšæ³¢æ°ãåæããããšã§ååŸã§ããŸãã

IODELAYé 延ããŒãã«ç¶ããŠãããŒã¿è»¢éã¢ãŒããDATA_RATE = " SDR "ã®å Žåã FDããªã¬ãŒãèšå®ã§ããŸãã ãã®ããªã¬ãŒã¯ããªãã·ã§ã³ã§å ¥åãããã¡ã«é 眮ãããã¢ããã°ã¢ãžã¥ãŒã«ããã®ããŒã¿ã«ä»éããADCã®åšæ³¢æ°ã«ãã£ãŠã¯ããã¯ãããŸãã DATA_RATE =â DDR âã¢ãŒãã§ã¯ãããªã¬ãŒã1ã€ã®ããŒã¿å ¥åãš2ã€ã®åºåãæã€IDDRã®æŽç·ŽãããããŒãžã§ã³ã«çœ®ãæããããŸãã åºåããããã€ãã®ã¢ãŒãã§ããŒã¿ãåºåããããšã¯å¯èœã§ãããå®éã«ã¯1ã€ã ãã䜿çšããŸãããã SAME_EDGE_PIPELINED ãã§ã¯ãåºåQ1ããã³Q2ããã®ããŒã¿ãã¯ããã¯ä¿¡å·ã®åããšããžã§åºåãããŸãã

æåŸã«ãæãèå³æ·±ããªãã·ã§ã³ã¯ãIODELAYããŒããISERDESããŒã¿éã·ãªã¢ã«åã¢ãžã¥ãŒã«ã«æ¥ç¶ããããšã§ã ã ã·ãªã¢ã©ã€ã¶ããŒãã¯ãFPGAå ¥åãããã¡ã®è€éãªèŠçŽ ã§ããã次ã®ãªãã·ã§ã³ãå«ãŸããŠããŸãã
- DATA_RATE-åºåããŒã¿ã¢ãŒãïŒ SDR / DDRïŒãå®çŸ©ããŸãã
- DATA_WIDTH-ããŒãåºåã§ã®ããŒã¿ãã¹ã®å¹ ïŒ1ã8ïŒã決å®ããŸãã
- INTERFACE_TYPE-ããŒã¿è»¢éã€ã³ã¿ãŒãã§ãŒã¹ã®ã¿ã€ãã ADCããããæ¥ç¶ããã«ã¯ã NETWORKINGã¢ãŒãã䜿çšãããŸãã
- SERDES_MODE -1ã€ã®FPGAã³ã³ã¿ã¯ãããããŒã¿ãåä¿¡ããããã«è€æ°ã®ã·ãªã¢ã©ã€ã¶ãŒã䜿çšãããå Žåã®ISERDESæ¥ç¶ã¢ãŒãã
ããŒãã¯ãããã€ãã®ä¿¡å·ã«ãã£ãŠã¯ããã¯ãããŸããããã¯ãåä¿¡ããCLKããŒã¿ã®é«ãåšæ³¢æ°ã®ä¿¡å·ãšãDATA_WIDTHãã©ã¡ãŒã¿ãŒã«ãã£ãŠæ±ºå®ãããæ°ã§å²ã£ãCLKDIVä¿¡å·ã§ãã åå²ã¯FPGAã®å€éšã§çºçããå¯èœæ§ããããŸãããå®éã«ã¯ãMMCMãšåŒã°ããFPGAãããèªäœã§åšæ³¢æ°ã·ã³ã»ãµã€ã¶ãŒã䜿çšãããŸãã ãããã£ãŠãCLKåšæ³¢æ°ã®ã·ãªã¢ã«ä¿¡å·ãISERDESããŒãã«å ¥åãããäœæžãããåšæ³¢æ°CLKDIV = CLK / DATA_WIDTHã®ãã©ã¬ã«ããŒã¿ã¹ããªãŒã ãISERDESããŒãã®åºåã§ååŸãããŸãã ã¯ããã¯åšæ³¢æ°ã¯ããªãŒãžã§ãã«ãããã¡ãŒBUFR ãååšä¿æ°BUFR_DIVIDE = 1-8ã®å€ããŸãã¯åºç¯å²ã«ããã°ã©ã ãããåšæ³¢æ°ã·ã³ã»ãµã€ã¶ãŒMMCMã®ããŒãã䜿çšããŠååšã§ããŸãã

ã¯ããã¯ãšããžãšããŒã¿ã®äžèŽã®åœ±é¿ãæé€ããã«ã¯ãMMCMã®IODELAYããŒããšåšæ³¢æ°èª¿æŽã ãã§ã¯å¿ ãããååã§ã¯ãããŸããã å€ãã®å Žåããã®åé¡ã®ä»£æ¿ãœãªã¥ãŒã·ã§ã³ãæ¢ãå¿ èŠããããŸãã 幞ããªããšã«ããã®è§£æ±ºçã¯ç§ã®ååã«ãã£ãŠçºèŠãããŸããã圌ã¯æè¿ã圌ã®èšäºïŒ Useful Properties of Jitter ïŒã§ããã«ã€ããŠè©±ããŸããã
äžèšã®ãã¹ãŠã®ããŒãïŒMMCMãé€ãïŒã¯å ¥åFPGAãããã¡ãŒã®äžéšã§ããããããã®è«çãªãœãŒã¹ãå æããŸããã FD / IDDR / ISERDESåºåãããããŒã¿ã¯æ¢ã«ããžãã¯ãšã¬ã¡ã³ãã«éãããŸããããã¯ãMMCMããŒãã§ADCãµã³ããªã³ã°åšæ³¢æ°ãééããåŸã«åŸãããåšæ³¢æ°ã«ããŒã¿ããã©ã€ããªååæããããã®å°ããªããªã¬ãŒãŸãã¯FIFOã§ãã å Žåã«ãã£ãŠã¯ãååæã¯äœ¿çšããããããŒã¿ã¯ADCã®ãµã³ããªã³ã°åšæ³¢æ°ãšçŽæ¥åæãããŸãã 次ã®å³ã¯ãISERDESããã€ã¹ã®ADCãããããã®ã·ãªã¢ã«ããŒã¿ãåŠçããã¿ã€ãã³ã°å³ã瀺ããŠããŸãã å ¥åã¯ããã¯åšæ³¢æ°ãå ¥åããŒã¿ã®ã·ãªã¢ã«åœ¢åŒãããã³ãã©ã¬ã«ã³ãŒãã«å€æãããããŒã¿ã衚瀺ãããŸãã

ãããã£ãŠãæ§æã«å¿ããŠãå³ã«ç€ºãããã«ãå ¥åãããã¡ãŒã§3ã€ã®ä¿¡å·ãã¹ãå¯èœã§ãã

AïŒ SDRã¢ãŒã-ããŒã¿ã¯ãã©ã¬ã«ãã¹ã§åä¿¡ãããåFPGAã¯ç¬èªã®FPGAãããã¡ãŒã䜿çšãã
BïŒ DDRã¢ãŒã-ããŒã¿ã¯ãã©ã¬ã«ãã¹ã§åä¿¡ãããããŒã¿ã¯2åã®åšæ³¢æ°ã§ã¯ããã¯ãããŸãã
CïŒ SERDESã¢ãŒã-ããŒã¿ã¯ã·ãªã¢ã«ãã¹ã§åä¿¡ãããŸã
ããŒã¿ããã«ãŒ
ãã®ããŒãã¯ãADCããããŒã¿ãåä¿¡ããããã®ã·ã³ã°ã«ãã£ãã«ããã³ãã«ããã£ãã«æ¹åŒã§äœ¿çšãããŸãã ãã®äž»ãªç®çã¯ãFPGAå ã§äœ¿çšãããå éšãã¹ã«é©ãã圢åŒã§ããŒã¿ãããã¯ããããšã§ãã å éšãã¹ã®å®¹éã¯ãéçºè ãŸãã¯äŒæ¥æšæºã«ãã£ãŠæ±ºå®ãããŸãã ããã«ãŒã®åºåã§ã®äžè¬çãªãããå€ã¯ã32ã64ã128ã256ã512ãããã®ããŒã¿ã§ãã å Žåã«ãã£ãŠã¯ãããã«ãŒãæ§æãããŠããªãå¯èœæ§ããããŸãã å ¥åãã£ãã«ã®æ°ãå ¥åããã³åºåããŒã¿ãã¹ããã«ãŒã®å¹ ã«ãã£ãŠç°ãªããŸãã ããšãã°ãå ¥åããã深床= 16ãããã®4ãã£ãã«ãœãŒã¹ã®å Žåãåºåãã¹ããããWOUT = WIN * NCHAN = 16 * 4 = 64ãããæªæºã®ãªããã«ãŒãç·šæããããšã¯ã§ããŸããã å ¥åãšåºåã®ããã深床ãåãåäžãã£ãã«ããŒã¿ãœãŒã¹ã®å ŽåãããŒã¿ã¯16ãããã®ããã¯ã§64ãããã®ãããã°ãªããã«é 次ããã¯ãããŸãã ã€ãŸããADCã®æåã®ãµã³ãã«ã¯ããããã£ãŒã«ã[15ïŒ0]ã2çªç®ã®ãµã³ãã«-[31:16]ã3çªç®-[47:32]ã4çªç®-[63:48]ãåããŸãã ããã«ããµã³ãã«ã¯åºåããŒã¿ã°ãªããã®æäžäœããæäžäœã«ããããã£ãŒã«ããåšæçã«å æããŸãã å¥ã®äŸã 2ã€ã®ããŒã¿ãã£ãã«ã䜿çšãããå ¥åãšåºåã®ãããå¹ ã¯åããŸãŸã§ãïŒãããã16ããããš64ãããïŒã ãªã¢ãŒãããã€ã¹ã®ããŒã¿åéã·ã¹ãã ã«å«ãŸãããã£ãã«ã1ã€ã ãã®å Žåãäžèšã®äŸã«ç€ºãããã«ãããã³ã°ãè¡ãããã©ã®ãã£ãã«ããªã³ã«ãªã£ãŠãããã¯é¢ä¿ãããŸããã éé²ã·ã¹ãã ã«äž¡æ¹ã®ãã£ãã«ãå«ãŸããŠããå ŽåãããŒã¿ã¯ãããã°ãªããã®è¥ãéšåããå€ãéšåã«ãã¢ã§ããã±ãŒãžåãããŸãã æåã®ãã£ã³ãã«ã®æåã®ã«ãŠã³ãããŠã³ã¯äœçœ®[15ïŒ0]ã«ã2çªç®ã®ãã£ã³ãã«ã®æåã®ã«ãŠã³ãããŠã³ã¯äœçœ®[31:16]ã«ãæåã®ãã£ã³ãã«ã®2çªç®ã®ã«ãŠã³ãããŠã³-[47:32]ã2çªç®ã®ãã£ã³ãã«ã®2çªç®ã®ã«ãŠã³ãããŠã³-[63:48]ã«ãªããŸãã å®è·µã瀺ããŠããããã«ãããã¯ãç¹å®ã®äŒéãã£ãã«ãåæãããå Žåã«ããã«ããã£ãã«åŠçã§ããŒã¿ãããã¯ããããã®æã䟿å©ãªãªãã·ã§ã³ã§ãã 泚ïŒãã£ãã«ã®æ°ã¯ã2ã®çŽ¯ä¹ã®åæ°-1ã2ã4ã8ãªã©ã§ãªããã°ãªããŸããã ãã®ããŒããå®è£ ããŠç解ããã®ã¯é£ããããã«æãããããããŸãããããããžã§ã¯ãã§ããã€ãã®ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããåŸãããã«ã¯è€éã§çãããã®ã¯äœããªãããšãããããŸãã
次ã®å³ã«ãã¢ãŒãã§ã®ããŒã¿ããã«ãŒããŒãã®åäœã®ã¿ã€ãã³ã°å³ã瀺ããŸããNCHAN = 1ã WIN = 8ã WOUT = 32ã

èµ€ãç·ã¯ãåºåãã¹ã«ããŒã¿ãããã¯ããããã»ã¹ã瀺ããŠããŸããããã«ã¯ã4ã€ã®ããŒã¿ãµã³ãã«ãåä¿¡ããåŸã®è§£å床信å·DVAL = 1ã䌎ããŸãã
ããŒã¿ã¹ããªãŒã ã·ã³ã¯ããã€ã¶ãŒ
ãã®ããŒãã¯ãããªããã£ãFIFOã¹ããŒã ã«åºã¥ããŠæ§ç¯ãããŠããã1ã€ã®éèŠã§åçŽãªç®çããããŸããããŒã¿ã¹ããªãŒã ããµã³ããªã³ã°åšæ³¢æ°CLK_ADCããåŠçåšæ³¢æ°ãŸãã¯SYS_CLKããã€ã¹ã®å éšãã¹ã®åäœåšæ³¢æ°ïŒã·ã¹ãã ã¯ããã¯åšæ³¢æ°ïŒã«å€æããŸãã ç°¡åã«ããããã«ã Xilinx Core Generatorã§FIFOããŒããäœæã§ããŸãããçæ³çã«ã¯ãä»»æã®ãã¹å¹ ïŒ FIFO_WIDTH ïŒããã³ã¡ã¢ãªã®æ·±ãïŒ FIFO_DEPTH ïŒã«å¯ŸããŠæè»ã«æ§æã§ããç¬èªã®ã¢ãžã¥ãŒã«ãäœæããæ¹ãè¯ãã§ãããã 次ã®å³ã¯ãFIFOããŒãã®åäœã®ã¿ã€ãã³ã°å³ãå ¥åããŒã¿ãšåºåããŒã¿ãããã³ç©ºïŒ empty ïŒããã³fullïŒ full ïŒFIFOã®ãã©ã°ã瀺ããŠããŸãã FIFO ADCã®éåžžåäœã§ã¯ãFULLãã©ã°ã¯åžžã«0ã§ããå¿ èŠããããŸããããã¯ãADCããã®ããŒã¿åä¿¡ã®æ£ç¢ºããšãªãŒããŒãããŒããªãããšã瀺ããŸãã ãã©ã°FULL = 1ã®å Žåããªã¢ãŒããã³ãã©ãŒã«ããããŒã¿åä¿¡ã®é床ãäžååã§ããããADCã®é床ãéžæããã·ã¹ãã ã«å¯ŸããŠéãããŸãã

次ã®å³ã¯ãPlan Aheadç°å¢ã®FIFOããŒãã®æŠç¥å³ã瀺ããŠããŸãã

FIFOã¯ãã¥ã¢ã«ããŒãã¡ã¢ãªã«åºã¥ããŠæ§ç¯ãããŠããããšãããããŸãã ã°ã¬ãŒã³ãŒãã®ããŒã¿ã¯ã¡ã¢ãªã¢ãã¬ã¹ãã¹ã«éä¿¡ãããŸããå³ã§ã¯ããããã¯èªã¿åããšæžã蟌ã¿ã®2ã€ã®ããŒãã§ãã ããã«ãããé«åšæ³¢ã§ã®ããããšã©ãŒãæžããããšãã§ããŸãã ã°ã¬ã€ã³ãŒãå ã®é£æ¥ããå€ã¯ã1ãããäœçœ®ã®ã¿ãç°ãªããŸãã FIFOãã©ã°ã®ããžãã¯ã¯ãã°ã¬ãŒã«ãŠã³ã¿ãŒã®ã¢ãžã¥ãŒã«ã®å€ã«ãã£ãŠæ±ºå®ãããã¬ãžã¹ã¿ãŒã¯åºåã§ã®ããŒãã®ã¯ããã¯åšæ³¢æ°ãäžããããã«äœ¿çšãããŸãã
ã€ã³ããŒã¿ã€ã€
質åãçºçããŸã- åéããã³ããã±ãŒãžåãããããŒã¿ã¯æ¬¡ã«ã©ãã«è¡ããŸããïŒ çãã¯ç°¡åã§ããPCI/ PCIeãUSBãã€ãŒãµããããSRIOãSATAã€ã³ã¿ãŒãã§ãŒã¹ã®å©ããåããŠãããŒã¿ã¯æçµç®æšã«å°éããããã§åŠçããããã¹ãŠã®æ å ±ãåéãããŸãã ãã®ãªã³ã¯ã®åã«ãFPGAå ã«ããžã¿ã«ä¿¡å·åŠçãŠãããïŒDSPïŒãããšãã°DDCãDUCãFFT / IFFTãªã©ããããŸããããã«ãããŒã¿ã¯DDR3 / DDR4ãªã©ã®å€§ããªå€éšã¡ã¢ãªã«ãããã¡ãªã³ã°ã§ããŸãã ããã¯ã倧éã®æ å ±ãããŒãé«éã§åŠçããããã«äœ¿çšãããé »ç¹ãªææ³ã§ãã ãã®å Žåãå€éšã¡ã¢ãªã¯å€§ããªFIFOãã·ãã¥ã¬ãŒãããŸãã å€éšã¡ã¢ãªã䜿çšããŠFPGAãå¶åŸ¡ããã«ã¯ãç¹å¥ãªã³ã³ãããŒã©ãŒã䜿çšããŸãããããã®ã³ã³ãããŒã©ãŒã¯ãååãšããŠã¢ã¯ã»ã¹å¯èœã§ã䜿çšããããã«éããŠããŸãã ã¶ã€ãªã³ã¯ã¹ã®å Žåããããã¯IPã³ã¢ãžã§ãã¬ãŒã¿ãŒã«ãããŸãã
ç¹ã«ãéçºè ã¯ADCã¬ã·ãŒããŒã®ãã¹ãŠã®ãªãœãŒã¹ã管çããããã®ç¬èªã®æéç¶æ ãã·ã³ãäœæããå¿ èŠããããŸãïŒããã¯IODELAYã®é 延æ§æãMMCMåšæ³¢æ°ã·ã³ã»ãµã€ã¶ãŒã®ããã°ã©ãã³ã°ãADCããã³DACã¢ãžã¥ãŒã«ãžã®SPIã³ãã³ãã®éä¿¡ãADCããã®ããŒã¿åéã®éå§ãšçµäºã®å¶åŸ¡ãã¢ã¯ãã£ããã£ãã«ã®æ°ã®å¶åŸ¡ãå€éšDDRã¡ã¢ãªãªã©ã®äœ¿çšã 誰ããç¬èªã®ã¢ãŒããã¯ãã£ãæã£ãŠããŸãããåºæ¬çãªååã¯å€ãããŸããã ç§ãåããŠããäŒç€Ÿã§ã¯ã ããŒãããã¯ãšåŒã°ããã³ã³ãããŒã«ããŒãã䜿çšããŠããŸãã ãããã®è©³çŽ°ã¯ç§ã®ååãããã§è©±ããŸãã ã
ADCã¢ãžã¥ãŒã«å¶åŸ¡
ååãšããŠãã¢ããã°ã¢ãžã¥ãŒã«ã¯SPIã®ãããªã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠå¶åŸ¡ãããŸãã ããã°ã©ã ã«ããã°ã©ããã«ããžãã¯ãšFPGAã®åŠç¿ãå«ãŸããäžçŽçã«SPIã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŸãã SPIããŒãã«ã¯çŠç¹ãåãããŸããã èšäºã®æåŸã«ã MIL-STD-1553圢åŒã®ã¡ãã»ãŒãžãåŠçãããªã¢ãŒããã€ã¯ããµãŒãããHI-6131ãå¶åŸ¡ããããã®ãœãŒã¹ã³ãŒãã®äŸã瀺ããŸãã ã³ãŒãã¯ãã©ã¡ãŒã¿åã§ãããéžæãããããã«åãããŠç¹å¥ã«èª¿æŽãããŠããŸãã ãŠã©ãŒã ã¢ããããããã«ãSPIãã©ã¡ãŒã¿ãŒãäœæããŠãããŸããŸãªãã©ã¡ãŒã¿ãŒçšã«æ§æã§ããŸãã SPIå¶åŸ¡ã®ã¿ã€ãã³ã°å³ã¯æ¬¡ã®ãšããã§ãã

ãœãŒã¹ã³ãŒã
ãã¹ãŠã®ã³ã³ããŒãã³ãããã³ã¢ã»ã³ããªã®ãœãŒã¹ã³ãŒãã¯VHDLèšèªã§è¡šç€ºãããã¶ã€ãªã³ã¯ã¹7ã·ãªãŒãºFPGAãããïŒããã³ãã以éïŒçšã§ãã ãœãŒã¹ã³ãŒãã¯å ¬éãããŠããã githubã®ãªã³ã¯ããå ¥æã§ããŸã ã ãã¡ããã芧ãã ãã ã ãã¹ãŠã®ã³ã³ããŒãã³ãã¯ãæ§æã§å¯èœãªéãæè»ã«äœãããŠããããœãŒã¹ã³ãŒããžã®å€§å¹ ãªä»å ¥ãå¿ èŠãšããŸããïŒSPIããŒããé€ãã
ããšãã°ãFIFOã§ã®èªã¿åãããã³æžã蟌ã¿æäœãããã³ãã€ããªã³ãŒããã°ã¬ã€ã³ãŒãã«å€æããããã®ããŒãã®æ¥ç¶ã¯æ¬¡ã®ãšããã§ãã
FIFO R / W
---- Read data ---- pr_rd: process(rd_clk) begin if (rising_edge(rd_clk)) then if (rd_en = '1' and xempty = '0') then data_o <= Mem(conv_integer(pNextWordToRead)); end if; end if; end process; ---- Write data ---- pr_wr: process (wr_clk) begin if (rising_edge(wr_clk)) then if (wr_en = '1' and xfull = '0') then Mem(conv_integer(pNextWordToWrite)) <= data_i; end if; end if; end process; ---- Gray counters ---- xGray_WR : rtl_gray_count generic map ( COUNTER_WIDTH => ADDR_WIDTH ) port map ( cnt => pNextWordToWrite, ena => NextWriteAddressEn, rst => reset, clk => wr_clk ); xGray_RD : rtl_gray_count generic map ( COUNTER_WIDTH => ADDR_WIDTH ) port map ( cnt => pNextWordToRead, ena => NextReadAddressEn, rst => reset, clk => rd_clk );
åç §è³æ
- 7ã·ãªãŒãºFPGAã®æŠèŠïŒDS180ïŒïŒxilinx.comïŒ
- åè·¯å³ãã¶ã€ã³åãã¶ã€ãªã³ã¯ã¹7ã·ãªãŒãºã©ã€ãã©ãªã¬ã€ãïŒxilinx.comïŒ
- 7ã·ãªãŒãºFPGA SelectIOãªãœãŒã¹ãŠãŒã¶ãŒã¬ã€ãïŒUG471ïŒïŒxilinx.comïŒ
- 7ã·ãªãŒãºFPGAã¯ããã¯ãªãœãŒã¹ãŠãŒã¶ãŒã¬ã€ãïŒUG472ïŒïŒxilinx.comïŒ
- ã·ãªã¢ã«LVDSé«éADCã€ã³ã¿ãŒãã§ã€ã¹ïŒxilinx.comïŒ
- Analog for Xilinx®FPGAéžæã¬ã€ãïŒti.comïŒ
- HSC-ADC-FPGAé«éãã·ãªã¢ã©ã€ãŒãŒã·ã§ã³ïŒanalog.comïŒ
- ã¢ããã°ããããžã¿ã«ãžã®ã³ã³ããŒã¿ãŒãšFPGAã®ã€ã³ã¿ãŒãã§ã€ã¹ïŒlatticesemi.comïŒ
ç¶ç¶ããã«ã¯...