ã¿ãªããããã«ã¡ã¯ïŒ
æè¿ãFPGAã®èªã¿èŸŒã¿ãé«éåãããšãã課é¡ãçããŸããã é»åã®åºçŸããåäœç¶æ ãŸã§ã100ããªç§ä»¥äžã§ãã ãã®ãããã¯ææ°ã®ãã®ã§ã¯ãªãããïŒAltera Cyclone IV GXïŒãEPCQãªã©ã®é«éãã©ãã·ã¥ãã©ã€ããæ¥ç¶ããŠãæ©èœããŸããã ãããŠãFPPïŒé«é䞊å䞊åïŒã¢ãŒãã䜿çšããCPLD Intel MAXVãå€éšããFPLïŒãã©ãã·ã¥äžŠåããŒããŒïŒã§äœ¿çšããããšã«ããŸããã èµ·åæã«ãCPLDã¯USBãã©ãã·ã¥ãã©ã€ãããããŒã¿ãããŠã³ããŒãããåºåã§FPPä¿¡å·ãçæããŸãã
ããããèšç»ãå®äºããåã«ã圌ãã¯æå ã«ãããã®ã®DIYã¢ãã¯ã¢ãããçµã¿ç«ãŠããç«ã§ãã®å®éšãéå§ããŸããã æ®å¿µãªããšã«ãããŒãäžã®ç¯ã®ããã«ãåäœåšæ³¢æ°ãäžããå¿ èŠããããŸããããFPPã®æ¬è³ªã¯å€ãããŸããã§ãããããããã°ã¯ç°¡çŽ åãããŸããã äœãèµ·ãã£ãã®ãããããŠFPGAãã©ã®ããã«æ§æãããŠããã®ãã«ã€ããŠãç§ã¯ãã®èšäºãæžãããšã«ããŸããã 誰ãæ°ã«ããªããç«ãžããããã
ç§ã話ãããããšïŒ
- FPGAã®æ§æã«ã€ããŠç°¡åã«èª¬æããŸãã å žåçãªã¿ã€ãã³ã°ãã£ãŒããã¢ãŒãã¯äœã§ãã
- FPGAãããŒãããæé ã¯äœã§ãã
- FPPãšã¯
- FPLã«ã€ããŠãã®åœ¹å²ã¯äœã§ãã
- EPCQããã³FPLã®ãµããŒãã«ã€ããŠ
- åçä»ãã®å®éšçµæã«ã€ããŠ
FPGAã¯ã©ã®ããã«æ§æãããŸããïŒ
FPGAããŠã³ããŒãã«ã¯ãã¢ã¯ãã£ããšããã·ãã®2ã€ã®ã¿ã€ãããããŸãã ã¢ã¯ãã£ãã¯ãFPGAãå€éšãã©ãã·ã¥ãã¯ããã¯ãããããããã¡ãŒã ãŠã§ã¢ãèªã¿åãããšãæå³ããŸãã ããã·ã-ãã¡ãŒã ãŠã§ã¢ãFPGAã«ããŒãããç¹å®ã®ãã¹ãïŒããã»ããµãŒãFPGAãã³ã³ãããŒã©ãŒïŒãããããšã
ã¢ã¯ãã£ãã¯èª°ã«ã§ãããç¥ãããŠããŸãããããããEPCS / EPCQãã©ãã·ã¥ãã©ã€ããæ¥ç¶ããJTAGãä»ããŠãã¡ãŒã ãŠã§ã¢ãã¢ããããŒãããé»æºãå ¥ãããšFPGAãæ®ãã®ããŒã¿èªã¿åããè¡ãããã人çã楜ãã¿ãŸãã
ããã·ãã¯è¿œå ã®ããžãã¯ã®å®è£ ãå¿ èŠãšãããããããå°ãé¢åã§ããããã»ããµã¯ã©ãããããã¡ãŒã ãŠã§ã¢ãããŒãããå¿ èŠãããã誰ãããã®ãã¡ãŒã ãŠã§ã¢ãããã«é 眮ããå¿ èŠããããªã©ã§ãã ãã ããå€ãã®å Žåãããã·ãã¢ãŒãã®æ¹ãé«éã§ãã ããšãã°ãã¢ã¯ãã£ãã·ãªã¢ã«ã¢ãŒãã®Cyclone IVã§ã¯ãDCLK 40 MHzãš1ããŒã¿ãããããµããŒããããFPPïŒé«éããã·ããã©ã¬ã«ïŒã¢ãŒãã§ã¯100 MHzãš8ããŒã¿ãããã§ã20åé«éã§ãã
FPGAãæ§æããäž»ãªä¿¡å·ã¯ãnCONFIGãnSTATUSãCONF_DONEã§ãã
- nCONFIGå ¥åã䜿çšãããšãFPGAããªã»ãããïŒ1ãã0ã«å·®åïŒããã¡ãŒã ãŠã§ã¢ã®ããŠã³ããŒããéå§ã§ããŸãïŒ0ãã1ã«å·®åïŒ
- nSTATUSåºåã«ãããFPGAãããŒã¿ãåä¿¡ããæºåãã§ããŠãããïŒã¬ãã«1ïŒãæ§æãŸãã¯FPGAã®åäœäžã«ãšã©ãŒãçºçãããïŒãŒãã®å·®ïŒã確èªã§ããŸãã
- CONF_DONEåºåã«ãããFPGAãæ§æãããŠããããšãç解ã§ããŸãã æ£ç¢ºã«ã¯-FPGAããã¹ãŠã®æ§æããŒã¿ãåä¿¡ããããš
ãããã®ã¢ãŒãã®ã¿ã€ãã³ã°å³ã¯ããã»ã©å€ãããŸããã ããã«ç§ãã¡ã®å Žåã®å žåçãªååçãªäžŠåããããŸãïŒ
ãã®äžã§æ¬¡ã®ããšãèµ·ãããŸãã
- å€éšãã¹ããFPGAããªã»ããããŸãïŒnCONFIGïŒ1-> 0ïŒ
- FPGAã¯ãnSTATUSãæåã«ãŒãã«èšå®ããŠãã1ã«ãªãªãŒã¹ããããšã«ãããæºåãã§ããŠããããšã確èªããŸãããŸããCONF_DONEä¿¡å·ã¯0ã«ãªã»ãããããŸãã
- å€éšãã¹ããFPGAã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ãéå§ããŸãïŒnCONFIGïŒ0-> 1ïŒ
- CONF_DONEä¿¡å·ã衚瀺ããããŸã§ãå€éšãã¹ãã¯ããŒã¿ïŒãã¡ãŒã ãŠã§ã¢ïŒãæžã蟌ã¿ãŸãïŒCONF_DONEã®åŸããŸã 2ã3ã®ãããŒãµã€ã¯ã«ãå¿ èŠã§ãïŒ
èšå®ã®è©³çŽ°ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
ã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ã¢ãŒãã®éžæã¯ãç¹å¥ãªã¬ãã°FPGA-MSELã«ãã£ãŠè¡ãããŸãã ç°ãªããã¡ããªã§ã¯ãã¢ãŒãã®æ°ãç°ãªããŸãã ããšãã°ãCyclone Vã§ã¯ãã¢ã¯ãã£ã/ããã·ãã«å ããŠããã¡ãŒã ãŠã§ã¢ã®å§çž®ã¢ãŒããšæå·åã¢ãŒããéžæãããŸã ã Cyclone IVã§ã¯ãã¢ã¯ãã£ã/ããã·ãããã³PORé«é/æšæºã®ã¿
FPPã®ä»çµã¿
FPPïŒé«éããã·ãã·ãªã¢ã«ïŒã¯ãDCLKä¿¡å·ã®ã¯ããã¯ãµã€ã¯ã«ã«åŸã£ãŠãã³ã³ãã£ã®ã¥ã¬ãŒã·ã§ã³ãã¯ãŒãïŒ1ãã€ã以äžïŒã§åæçã«FPGAã«ããŒããããããã·ãã¢ãŒãã§ãã
ãã®ã¢ãŒãã®ãã©ã€ãããŒãžã§ã³ãã¯ããã·ãã·ãªã¢ã«ã§ããããã¡ãŒã ãŠã§ã¢ã¯ãããããšã«ããŠã³ããŒããããŸãã
ãã®ã¢ãŒãã§ã¯ãå°çšãã³ã䜿çšããããã®ãã¡ã®ããã€ãïŒããŒã¿ã®é«ãããïŒã¯éåžžã®I / Oã«ãªããŸãã
- DCLK
- ããŒã¿[7ïŒ0]
å€ããããïŒStratix Vãªã©ïŒã§ã¯ã1ã¯ããã¯ããã2ïŒFPPx16ïŒããã³4ïŒFPPx32ïŒãã€ãã§ãã¡ãŒã ãŠã§ã¢ãããŠã³ããŒãã§ããŸãã
FPGAããŠã³ããŒãæé
ããã·ãã¢ãŒãã§FPGAã®ããŒãæéãèšç®ããŠã¿ãŸãããã å§ãŸãã¯ãããäžã®é»å§ã®åºçŸïŒç¹å®ã®å€ã«éãããšãïŒã§ãããçµããã¯CONF_DONEä¿¡å·ã®åºçŸã§ãã
æ¡å€§æéã¯ã次ã®æ®µéã§æ§æãããŸãã
- tPORïŒãã¯ãŒãªã³ãªã»ããã é«éã¢ãŒãã§ã¯æ°ããªç§ããããæšæºã¢ãŒãã§ã¯æ°çŸããªç§ïŒïŒïŒããããŸãã ãã ããèµ·åã«ã¯ããå€ãã®ãšãã«ã®ãŒãå¿ èŠãªãããFastã«ã¯é»åã·ã¹ãã ã«å¯Ÿããããå³ããèŠä»¶ããããŸã
- æ§æãã³ãã·ã§ã€ã¯ïŒãã¹ãã¯nSTATUS = 1ãåŸ æ©ããFPGAããªã»ãããïŒnCONFIGïŒ1-> 0ïŒãéå§ããŸãïŒnCONFIGïŒ0-> 1ïŒã ãã®æ®µéã¯1ããªç§ã®äœåã®1ããèŠããå®å šã«ç¡èŠã§ããŸãã
- tCFGïŒFPGAã«ããŒã¿ãéä¿¡ããCONF_DONEãç£èŠããŸãã ãã®éšåã«ã¯ããã¡ãŒã ãŠã§ã¢ã®ãµã€ãºã«æ¯äŸããããŒã¿ãèšé²ãããDCLKã®åšæ³¢æ°ã«åæ¯äŸããã¡ã€ã³æéãããããŸã
- tINITïŒããŒã¿ãããŒãããŠããããåæåããŸãã ãã®æ®µéãå®äºãããšãFPGAã¯å®å šã«åäœã§ããç¶æ ã«ãªããŸãïŒãŠãŒã¶ãŒã¢ãŒãã«ãããŸãïŒã æèŠæéã1ããªç§æªæºãªã®ã§ãç¡èŠãã
tPORã¯MSELèšå®ã®ã¿ã«äŸåããŸãã åœç¶ãèµ·åæéãéèŠã§ãããé»æºèšå®ãèš±å¯ãããŠããå Žåã¯ãé«éã¢ãŒããèšå®ããå¿ èŠããããŸãïŒäžèšã®MSELã®è¡šãåç §ïŒã
æéã®çµéãšãšãã«ãtCFGã¯æ¬¡ã®èŠçŽ ã«äŸåãããããå°ãè€éã«ãªããŸãã
- DCLKåšæ³¢æ°ã ããã¯ãFPGAãšå€éšãã¹ãã®æ©èœã«ãã£ãŠæ±ºãŸããŸãã ãµã€ã¯ãã³IVã®å ŽåãFmaxã¯100 MHz
- ãã¡ãŒã ãŠã§ã¢ãµã€ãºã FPGAãã¡ããªãšç¹å®ã®ãããã®ããžãã¯ã»ã«ã®æ°ã«ãã£ãŠæ±ºãŸããŸãã åãã¡ããªã«ã¯ãåžžã«åãããã®æ倧ãã¡ãŒã ãŠã§ã¢ãµã€ãºã®ããŒãã«ããããŸãã ããšãã°ãCyclone IVã«ã€ããŠã¯ããªã³ã¯ãåç §ããŠãã ããã
- ãã¡ãŒã ãŠã§ã¢å§çž®ã äžéšã®ãããïŒCyclone VïŒã§ã¯MSELèšå®ã«ãã£ãŠæ±ºå®ãããäžéšã®ãããïŒCyclone IVïŒã§ã¯ãã¡ãŒã ãŠã§ã¢ã³ã³ããŒã¿ãŒã®èšå®ã®ã¿ã«ãã£ãŠæ±ºå®ãããŸãã å§çž®ã«ããå žåçãªå©çã¯50ã70ïŒ ã§ãããèšèšã§100ïŒ ä¿èšŒãããããšãä¿èšŒããä¿èšŒã¯ãããŸããã ãããã£ãŠããã®çªå·ãã眮ããã®ã¯å±éºã§ã
Cyclone IVã®ãã¡ãŒã ãŠã§ã¢ãµã€ãºã«é¢ããããã¥ã¡ã³ãã®è¡š8-2ã¯æ¬¡ã®ãšããã§ãã
ããšãã°ãEP4CGX75ãããã®å Žåãå§çž®ãªãã®æ倧ãã¡ãŒã ãŠã§ã¢ãµã€ãºã¯22.010.888ããã= 2.751.361ãã€ãã§ãã å€éšãã¹ãã100 MHzã®åšæ³¢æ°ã§åäœããæºåãã§ããŠãããšä»®å®ãããšãæ倧ãã¡ãŒã ãŠã§ã¢ã®ããŠã³ããŒãã«ã¯2.7e6 / 100e6 = 0.027ç§= 27ããªç§ãå¿ èŠã§ãã ãŸããå§çž®ã䜿çšããå Žåãåä¿¡æéã¯15ããªç§æªæºã§ããããããã®æéãçŽååã«ççž®ã§ããŸãã
ãã ããåšæ³¢æ°DCLK = 100 MHzãååŸããã«ã¯ãå°ãªããšãåãåšæ³¢æ°ã§ãã¡ãŒã ãŠã§ã¢ãèªã¿åãããšãã§ããå¿ èŠããããŸãã Intel / AlteraãæäŸãããªãã·ã§ã³ã®1ã€ã¯ããã®ç®çã§CPLD MAX II / Vã䜿çšããããšã§ãã äžæ¹ã§ã¯CPLDããã©ãã·ã¥ãèªã¿åããä»æ¹ã§ã¯FPGAã«æžã蟌ã¿ãŸãã
Fpl
ãã®ã¿ã¹ã¯ã®ããã«ãæ¢è£œã®IPã³ã¢ã®ã³ã¬ã¯ã·ã§ã³ã«ã¯Flash Parallel LoaderããããŸãã ãã®ã«ãŒãã«ã¯ãããŸããŸãªã€ã³ã¿ãŒãã§ã€ã¹ïŒQSPIãNxQSPIãCFIãªã©ïŒãåãããã©ãã·ã¥ãããã®ã»ããããµããŒãããŠããããããã¡ãŒã ãŠã§ã¢ãèªã¿åãã ãã§ãªããJTAGãä»ããŠæ¥ç¶ããããšã§æžã蟌ãããšãã§ããŸãã
ãŸãã1ã€ã®ãã¡ãŒã ãŠã§ã¢ã§ã¯ãªãè€æ°ã®ãã¡ãŒã ãŠã§ã¢ã«Flashãæžã蟌ãããšãã§ãããããæŽæ°ã§åé¡ãçºçããå Žåã«å®å®ããã€ã¡ãŒãžã«ãããŒã«ããã¯ããç·šæã§ããŸãã
詳现ã«ã€ããŠã¯ã ããŒã¿ã·ãŒããåç §ããŠãã ããã
Flash ProgrammingïŒFPGA Configurationã¢ãŒããšEPCQãFlashãšããŠéžæããŸããã ããã«ãããå¿ èŠãªããŒãæéãæºãããåæã«ç°ãªããã¹ãã䜿çšããŠJTAGãšEPCQã®äž¡æ¹ããã©ãã·ã¥ã§ããŸãã
䜿çšããèšå®ã®ã¹ã¯ãªãŒã³ã·ã§ããïŒ
ãã¡ãŒã ãŠã§ã¢CPLDã«ã¯1267 LEãå¿ èŠã§ãã»ãŒ100ïŒ ã«EPM1270F256C5ïŒMAX IIïŒãŸãã¯5M1270ZT144C5ïŒMAX VïŒãå¿ èŠã§ãã Flashãã¡ãŒã ãŠã§ã¢ãªãã·ã§ã³ã䜿çšããªãå ŽåïŒä»ã®ãã¹ãããããå®è¡ã§ããå Žåãªã©ïŒããªãœãŒã¹ã®äœ¿çšéã¯å€§å¹ ã«å°ãªããªãã754 LEã®ããŒãžã³ããããŸãã
CPLDã®æå¹åã¹ããŒã ã¯æ¬¡ã®ãšããã§ãã
FPLïŒäŸç€ºçãªã¢ã«ãŽãªãºã ïŒã®ä»çµã¿ïŒ
- FPGAããã®ã¬ãã£ä¿¡å·ïŒnSTATUS = 1ïŒã«ãããäžã®å³ã«åŸã£ãŠnCONFIGãã¢ã¯ãã£ãã«ããŸãã
- FPGAãããŒã¿ãåä¿¡ããæºåãã§ãããïŒnSTATUSã0ãã1ã«å€åããïŒãFPLã¯ãã©ãã·ã¥ãããµãŒãã¹ããŒã¿ãããã¯ãèªã¿åããŸãã ãã¡ãŒã ãŠã§ã¢ïŒãŸãã¯è€æ°ããå Žåã¯ãã¡ãŒã ãŠã§ã¢ïŒã®ã¢ãã¬ã¹ã¯ããã®ãããã¯ã«ç»é²ãããŸã
- FPLã¯ãã¡ãŒã ãŠã§ã¢ã®ããŠã³ããŒããéå§ããå ¥åããŒãfpga_pgm [2ïŒ0]ããã¡ãŒã ãŠã§ã¢ã瀺ããŸãã 2ã€ã®ãã¡ãŒã ãŠã§ã¢ã䜿çšããããã1
- ããŠã³ããŒãäžã«ãšã©ãŒãçºçããå ŽåïŒããã¯ãã€ã¡ãŒãžãå®å šã«ã¢ããããŒããããŠããªãããå£ããŠãããããŸãã¯å¥ã®ããã/ãã¡ããªã§çºçããå¯èœæ§ããããŸãïŒãFPLã¯å·¥å Žåºè·æã®ããã©ã«ãã®ãã¡ãŒã ãŠã§ã¢ã«ãåãæ¿ããããŸãã
- FPLã¯ãã«ã€ã¡ãŒãžãFPGAã«ã¢ããããŒãããŸãã 圌ãšã®ãã¹ãŠãããŸããããªãå Žåã圌ã¯ããã«ããã€ãã®è©Šã¿ãããŠåæ¢ããŸã
1ã€ã®EPCQã䜿çšããŠã説æããæ§æããã©ã®ããã©ãŒãã³ã¹ãçµãåºãããšãã§ããããèŠãŠã¿ãŸãããã ãããè¡ãã«ã¯ãEPCQãã©ã®ããã«æ©èœãããã«ã€ããŠã®å°ãã®ã¢ã€ãã¢ãå¿ èŠã§ãã
EPCQã®ä»çµã¿
EPCQïŒã¢ããã³ã¹ãEPCSïŒã¯ãã»ãšãã©ã®ããŒã ãšäžéšã®ããŒã ïŒQuadSPIïŒçšã®SPIã€ã³ã¿ãŒãã§ã€ã¹ãåããNORãã©ãã·ã¥ã§ãã éåžžã«é«éã§èªã¿åãããéåžžã«ãã£ãããšæžã蟌ãŸããæ¶å»ãããŸãã
ã³ãã³ãïŒæ¶å»ãèªã¿åããæžã蟌ã¿ïŒã¯åžžã«éåžžã®SPIã䜿çšããŠãã©ãã·ã¥ã«å°çãããã©ãã·ã¥ãã©ã€ãã®åäœã¯ã³ãã³ãã«äŸåããŸãã äŸïŒ
- READ / FAST_READã³ãã³ããèšè¿°ãããšãèªã¿åãã¯ã·ã³ã°ã«ãããã¢ãŒãã§å®è¡ãããŸãã
- FASTDTRDã®å ŽåãDDRã䜿çšããã·ã³ã°ã«ãããã¢ãŒã
- 4READã®å Žåã4ãããã¢ãŒã
- ãªã©
ãã©ãã·ã¥ãã¯ããã¯ã¹ã®èª¬æã®äŸãåç §ããŠãã ãã
æ倧ã®EPCQèªã¿åãããã©ãŒãã³ã¹ã¯ãDDRã§æ倧åšæ³¢æ°ã§4ããããã¹ãŠã䜿çšããããšã§éæãããŸãã ãã ãããã®å Žåãæéçç¹æ§ã¯éç·åœ¢ã«å€åããŸãã
ã€ãŸããäžèšã®äŸã§ã¯ãã¹ã«ãŒãããã¯æ¬¡ã®å Žåã«ãªããŸãã
- èªã¿åã-104 Mbps
- FASTDTRD-100 Mbps
- 4READ-280 Mbps
- 4DTREAD-400 Mbps
S25FL064Lãªã©ã®ãã©ãã·ã¥ãã©ã€ããšããããé«éãªãã©ã€ããããããããã¯èªã¿åã容éãå¢ãããŠãåšæ³¢æ°ã¯äœäžããŸããã ãããã£ãŠããæ倧é床ãçµããããã«ã¯ããããã«çŠç¹ãåãããããšããå§ãããŸãã
Cyclone IVã®ãã¡ãŒã ãŠã§ã¢ã®èªã¿åãã«å¿ èŠãªæéã«4READ / 4DTREADã¢ãŒããåèšç®ãããšã78ããªç§/ 55ããªç§ã«ãªããŸãã FPPã«ãè¿œãã€ããããã«ã¯ã27ããªç§ä»¥å ã«ç¶æããå¿ èŠãããããšãæãåºãããŠãã ããïŒäžèšåç §ïŒã
ã¿ã¹ã¯ã®ããã«ããã¯ã¯ãã¡ãŒã ãŠã§ã¢èªã¿åãã€ã³ã¿ãŒãã§ã€ã¹ã§ãããFPPèªäœã§ã¯ãªãããšãããããŸããã ãŸãã100ããªç§ã§ã¯ãªããã¯ããã«çãæéãååŸããå¿ èŠãããå Žåã¯ã2ã€ã®EPCQãã©ãã·ã¥ãã©ã€ãã䜿çšããå¿ èŠããããŸãã ããããç§ãã¡ã®å Žåãéåžžã®4READã¢ãŒãã§ååã§ãã
ãµããŒããããŠããEPCQã®ãªã¹ãã«ã€ããŠã¯ã PFLããã¥ã¡ã³ãã®ã»ã¯ã·ã§ã³1.2.1ãåç §ããŠãã ããã
Intel / AlteraãEPCQã®ãªãªãŒã¹ãæåŠããã®ã¯ä»ããã§ãããçŸåšã§ã¯ç¬èªã®ãã®ã§ã¯ãªãMicronãå ¬åŒã«ãµããŒãããŠããŸãã
DIYã®æéã¯ä»ïŒ
çè«ãšå®è·µãçµã¿åãããããã«ã次ã®ãã®ãåãäžããŸããã
- Cyclone V SoCïŒ5CSEBA4U19C8SNïŒä»ããããEthond
- MAXII EPM2210f324ãæèŒããå€ä»£ã®ãã©ã·ãã¯ããã
- EPCQ Micron N25Q256A13EF840
- ã¯ãã ããŠãã¯ã€ã€ãŒãã¢ã°ã©ããºã
- é»éã®æãã¯ãã ããã©ãã¯ã¹ãæã€ç·
ãããã¯æ¬¡ã®ããã«æ¥ç¶ãããŸãã
ã¢ã°ã©ããºãã§ã¯ãããŠã³ããããã€ã³ã¹ããŒã«ãQSPIãã©ãã·ã¥ãã©ã€ããã¯ãã ä»ãããã¬ã€ã¢ãŠããååŸããŸããã
PFLïŒãªã³ã¯ïŒãä»ããŠEPCSã«ã¢ããããŒãããããã«äœ¿çšããããã¡ãŒã ãŠã§ã¢ãäœæããããã®çãã¯ãšã¹ãïŒ ããã¯ã®ã»ã¯ã·ã§ã³1.4.1ãåç §ïŒãééããåŸããã¿ã€ã ã¢ãŠããã®æž¬å®ãéå§ããŸããã ãã¡ãŒã ãŠã§ã¢ãäœæããå ŽåãEPCQã䜿çšãããŠããå Žåã§ããCFI-flashãã¿ãŒã²ãããšããŠæå®ããå¿ èŠãããããšã«æ³šæããŠãã ããã
æ®å¿µãªãããåãä»ããããèšçœ®ãšãã²ããã®ããã«ãFPLã®åäœåšæ³¢æ°ã¯6.25 MHzã§ãããEPCSã§ã¯25 MHzã®ãŸãŸã§ãã ãå ¥åã¯ããã¯ãšDCLKã®æ¯çããªãã·ã§ã³ã䜿çšããŠãã®ã¯ããã¯ã調æŽããå€ã8ã«èšå®ããŸããïŒå ¥åã¯ããã¯= 50 MHzïŒã FPPïŒéïŒãšEPCQïŒé»è²ïŒã®ãããã¯å³ã®å³ã次ã«ç€ºããŸããFPP容éã¯EPCQã®2åïŒ8察4ïŒã§ãããããåFPPãµã€ã¯ã«ã«ã¯2ã€ã®EPCQ DCLKãµã€ã¯ã«ããããŸãã
ããã¯ãæšæºPORã¢ãŒãã§å§çž®ãªãã®äŸçµŠé»å§ïŒé»è²ïŒãšCONF_DONEä¿¡å·ïŒéïŒã®å³ã§ãïŒåèšè² è·æéã¯780 msã§ãã
é»æºã®åºçŸãšnSTATUSä¿¡å·ã®éã§çŽ100ããªç§ãçµéããŸããããã¯ãããããæ§æããŒã¿ãåä¿¡ããæºåãã§ããŠããããšã瀺ããŸãã
ãŸããé«éã¢ãŒããæå¹ã«ãããšïŒMSELãå€æŽããã ãã§ãäžèšã®è¡šãåç §ïŒãPORãæ°ããªç§ã§çºçããããŠã³ããŒãã«ã¯ãã§ã«çŽ680ããªç§ããããŸãã
ãããŠæåŸã®ã¹ãããã¯ãå§çž®ãæå¹ã«ããããšã§ãã ãããè¡ãã«ã¯ããã¡ãŒã ãŠã§ã¢ãã¡ã€ã«ãPFLã«è¿œå ãããšãã«Quartusããã¯ã¹ããªã³ã«ããMSELãåãæ¿ããŸãïŒCyclone IVã§MSELã«è§Šããªãã§ãã ããïŒã ãããŠãç§ãã¡ã¯å®å šã«ç°ãªãçµµãååŸããŸã
å§çž®ããã³é«éPORãªãã®å ã®ããŒãžã§ã³ãšæ¯èŒããŠã2åã®ã²ã€ã³ïŒçŽ400ããªç§ïŒããããŸãã
çè«ãšå®è·µã®çµã¿åãã
ãªã·ãã¹ã³ãŒãã§è¡ã£ã枬å®å€ãèšç®ãšäžèŽãããã©ãããèšç®ããŸãããã æétPORã¯ãŒãã§ãããšæ³å®ãããŸãã Fast PORã䜿çšããŸãã ãããã£ãŠãããŠã³ããŒãæé680ããªç§ããã¡ãŒã ãŠã§ã¢ã®ãµã€ãºãšFPP DCLKã®åšæ³¢æ°ã«ã©ã®çšåºŠåæããããèšç®ããããšããã§ããŸããã
Cyclone Vã®ãã¡ãŒã ãŠã§ã¢ã®ãµã€ãºã¯ãçŽ4ã¡ã¬ãã€ãïŒ32ã¡ã¬ãã€ãïŒã§ãã FPP DCLKã¯ããã¯åšæ³¢æ°ã¯6.25 MHzã§ãã ã¯ããã¯ãµã€ã¯ã«ããšã«8ããããã€ãŸã1ãã€ããéä¿¡ãããŸãã ãããã£ãŠãæšå®æéã¯4 / 6.25 = 0.64ç§ã§ãã ãããïŒ
ããšãã°ãFPP DCLKã®åšæ³¢æ°ã8åïŒæ倧50 MHzïŒã«æ¯äŸçã«å¢å ããããšã80ããªç§ã®æéãåŸãããŸãã å§çž®ãå«ãããšãããã«å°ãªããªããŸãã
çµè«
çè«çã«ã¯ãCyclone IVã®èšç®ã«ãããšãFPGAã¯æ°åããªç§ã§ãçŽ30ããªç§ã§ããŒãã§ããŸãã ãã ãããã®ããã«ã¯ãããŒã¿ã®ããŒãå ã§ãããã©ãã·ã¥ãªã©ã®FPGAã«ããŒã¿ãããŒããããã¹ãã垯åå¹ ãšäžèŽããå¿ èŠãããããšã«çæããå¿ èŠããããŸãã
æè¿ã®FPGAãããã§ã¯ãEPCQãã©ãã·ã¥ãã©ã€ããçŽæ¥æ¥ç¶ããŠã¢ã¯ãã£ãã¢ãŒãã䜿çšã§ããŸãããã¶ã€ã³ã«æ°ãããã¡ããªã«åãæ¿ããæ©äŒããªãå Žåã¯ãå€éšããŒããŒãã€ã³ã¹ããŒã«ããŠããã·ãã¢ãŒãã䜿çšããããšãã§ããŸãã ãã®ããã«ãã¬ã€ã¢ãŠãã§äœ¿çšããFlash Parallel Loaderã䜿çšãããŸãã
FPLãš1ã€ã®EPCQã§èª¬æããã¢ãããŒãã䜿çšãããšãFPGAã®ããŒãæéã50ããªç§ã«è¿ã¥ããããšãã§ããŸãã
æåŸãŸã§èªãã§ãããçããã«æè¬ããŸãïŒ