ãµã€ã³ãåŸ ã£ãŠããŸãããïŒ åœŒãããïŒ
é·å¹Žãç§ã¯FPGAã®ããã°ã©ãã³ã°ãå§ããããšãæ¢ããŠããŸããã§ããããªããªããããã¯é£ãããé«äŸ¡ã§ãèŠçã ããã§ãïŒç§ã«ãšã£ãŠã¯ïŒã ããããããªããæåã®äžæ©ãèžã¿åºãã®ãå©ããŠãããå人ãããã®ã¯è¯ãããšã§ãã ãããŠä»ãç§ã¯äžã€ã®ããšãç解ããŠããŸãã-ãªãç§ã¯ãšãŠãé·ãåŸ ã£ãŠããŸãããïŒ
ä»ãç§ã¯ããªããæåã®äžæ©ãèžã¿åºãã®ãæäŒããŸãïŒ
ãªãå¿ èŠãªã®ã§ããïŒ
MKã®ããã¯ãåžžã«èªãã ãã倧éã®æ å ±ãé ã«å ¥ãããããã®ã«ããããããŠããŸãããã asmã§ãã¹ãŠãæžãçŽããŸããããé床ã¯ãŸã ååã§ã¯ãããŸããã 2ã€ã®å€éšããã€ã¹ãMKã«æ¥ç¶ãã3çªç®ã®ããã€ã¹ãæ¥ç¶ããŸããããäžæãçºçããæ¢ã«åäœããŠããã¢ãžã¥ãŒã«ãåäœããªããªããŸããã åãè¡ãããã匷åãªå¥ã®MKã䜿çšããŸãããåã³ããã¥ã¢ã«ããã©ã°ã¬ãžã¹ã¿ãããã...å°çã ãã©ãããã©ãŒã ãå€æŽããŸããå¥ã®MKã«åãæ¿ããŠã以åã®ãã©ãããã©ãŒã ã«é¢ããç¥èããŽãç®±ã«æšãŠãŸãã ããªããäœãããã«ããŠããããã¯é£ããã§ãã ã³ã³ããŒãã³ããããããžã§ã¯ããç°¡åã«æ§ç¯ã§ãã人æ°ã®ãããã©ãããã©ãŒã ãèŠã€ããŸãããããã®MKã®ããŒããŠã§ã¢ã®å¶éãè¶ ããããšã¯ã§ããŸãã... ãããã¯ãŸãã«ãã©ãããã©ãŒã äžã§è§£æ±ºããå¿ èŠã®ããåé¡ã§ãããšã¯ãããç§ã¯ãããè¡ãããšãã§ãã/å§ããããã«å€ã/æããª/å¿ãã/ãªã©ã§ãã
æçµçã«èªç±ã«åŒåžãããã§ããïŒ ç¶ããŸãããïŒ
FPGAéçºã®åã³
倧å€ãªäžæ¥ã§ããã 1ã€ã®ä»äºãã2çªç®ã®ä»äºã«è¡ãã次ã«å€ã®å¥èãå€æ¹ã®éçšã宿é¡ããããŠå®¶æãæ ç»ãèŠãŠã23æã ãå®å šã«èªç±ã«ãªããŸããïŒ ç§ãç²ãããšèšãããšã¯äœãèšããªãããšã§ãã ãããããã®ç¶æ ã§ã¯ã440 Hzã§èè¡çºçåšãäœããšãã確åºããç®æšãæã£ãŠã©ãããããã«åº§ã£ãŠããŸããã 20åãçµéãããã§ã«ããããã©ã³ã§èããããšããããŸãã ç§ã¯èªåã®è³ãä¿¡ããŠããŸããã§ããïŒ PWMãå®è¡ããŠé³éãå€æŽããã«ã¯ãããã«15åããããŸããã ãã®æãŸã§ã«ãç§ã¯FPGAããŒãã1é±éããæã£ãŠããŸããã§ãããããã®åã«Verilogã«ã€ããŠã®æ¬ãããã€ãèªãã ã ãã§ããã
ãã®å€ãç§ã¯æ°ã¥ããïŒ ããã«ïŒ ããã«ãèªåã®èããæ¬åœã«ç°¡åã«å®éã®ããŒããŠã§ã¢ã«å€ããããšãã§ãããã©ãããã©ãŒã ããããŸãïŒ
ãªããã
FPGAã®ç 究ãšå¿çšã«ãããå©ç¹ã«ã€ããŠèª¬æããŸããããããã«ããŠãFPGAãç¥ã£ãŠããŸãã
- ç¥èã®æ®éæ§-MKã¢ãã«ãå€æŽãããšãã¯ãããã¯ãèªãå¿ èŠããããŸãã ã¡ãŒã«ãŒMKãå€æŽããå Žåã¯ãããã¯ãèªãå¿ èŠããããŸãã ããªãã¯åžžã«ããã¯ãèªã¿ãåžžã«é ã®äžã«ããããã®æ å ±ãä¿æããå¿ èŠããããŸãã FPGAåãã«éçºããå ŽåãVerilogãŸãã¯VHDLãç¥ã£ãŠããã°ãããã¡ãŒã«ãŒã®ã©ã€ã³ã®FPGAãããã°ã©ã ã§ããã ãã§ãªããå¥ã®ã¡ãŒã«ãŒïŒAlteraãXilinxïŒã«åãæ¿ããããšãã§ããŸãã ç°ãªãéçºç°å¢ã®éçºã®ç¬éãããããªããŒããŠã§ã¢ã®ç¬éããããŸãããHDLã§ããã€ã¹ãèšèšããã¢ãããŒãã®æ¬è³ªã¯ããããå€ãããŸããã
- ã¢ã€ãã¢ããããŒããŠã§ã¢ãŸã§ -ãããžã§ã¯ãã®éçºæã«ã1ãã¯ãã³äžè¶³ããŠããå Žåã¯ãå¥ã®ãã¯ãã³ãéžæããå¿ èŠããããŸãã ååãšããŠããã®MKããããžã§ã¯ãã«å¯ŸåŠãããã©ãããæšæž¬ã§ããŸãã ãŸãã¯ãç¹å®ã®MKããããããã«ãããžã§ã¯ããåããããšããŠããŸãã ãããŠãã®å Žåã ç¥ç¶ã®ã¢ãããŒããæãåºãããŸããããã¯ãå°å±ã«ãããã®ããé段ãäœããŸãã ã¯ãããèšèšããããšã¯ã§ããŸãããé©åãªããŒããè³Œå ¥ããŠãã ãã...ã¢ã€ãã¢ããéãžããããŠãã®éã§ã¯ãããŸããã
- ä»ã®äººã®ãã¶ã€ã³ã®äœ¿ãããã -ä»ã®äººã®ã¢ãžã¥ãŒã«ã䜿çšããŠãããžã§ã¯ãã«é©çšã§ããŸãã ã³ãŒãã«ãã£ãŠããã®ä»çµã¿ãç解ã§ããŸãã ããšãã¶ã€ãªã³ã¯ã¹çšã§ãããããªããã¢ã«ãã©ã®äžã§è¡ã£ããšããŠãã ããŸããããªãå ŽåããããŸãããããšãã°ããã€ããªã©ã€ãã©ãªãc ++ / Qtãããžã§ã¯ãã«è¿œå ãããããç°¡åã§ã
- ãããã¯ã®ç¬ç«ã HDLã®ãããã¯ã¯ãPLã®çŽç²ãªé¢æ°ã®ãããªãã®ã§ãã å ¥åä¿¡å·ã®ã¿ã«äŸåããŸãã éçºããã³ãããã°ãããã¢ãžã¥ãŒã«ã¯ããããžã§ã¯ããã©ã®ããã«æé·ããŠããæ£åžžã«æ©èœãç¶ããŸãã å€éšããã¯ãå éšããã®äœæ¥ã®æ£ç¢ºãã«åœ±é¿ããŸããã ãšã«ãããããªãã¯ãããã©ã®ããã«æ©èœããããå¿ããããšãã§ããŸã-ããã¯ãã©ãã¯ããã¯ã¹ã§ãã ããã«ããããã¯ã¯äžŠè¡ããŠåäœããŸã ã
éžæã®åé¡
äœãéžæããããšãã質åã¯ãã¢ã«ãã©/ã¶ã€ãªã³ã¯ã¹ãVerilog / VHDLããšãããããã°ããŒããæ¡çšããããšã§åŒ·ãåæ¢ããŸãã ãããããŸãæåã«ã
ã¡ãŒã«ãŒ
ã¢ã«ãã©ãéžã³ãŸããã ãªãã§ïŒ ã¶ã€ãªã³ã¯ã¹ãšããååã¯ç§ã«ãšã£ãŠãããããã§ãããç§ãã¡ã¯å人ãšãã®ããã«æ±ºããŸããã ãããã ããªããä»éžæã§ããªãå Žåãç§ã¯ããªãã®ããã«ãããè¡ããŸãã ã¢ã«ãã©ãå¿ èŠã§ãïŒ ãªãã§ïŒ ç¥ããŸãã ããã§ãéžæãè¡ããšããã¹ããããèžãããšãããéèŠã§ãã ã¢ã«ãã©ãéžæããŸãããããŸã åŸæããŠããŸããã
èšèª
ç§ãã¡ã¯Verilogãæ¡çšããŠããŸã- ãªããªã ... ãããš ãããªãã¯ç解ããŠããŸãã
ãããã°ããŒã
ãããã°ããŒãã®éžæã«ã¯æãæéãããããŸããã æèŒãããŠããFPGAãããã§ããŒããç°ãªãããšã¯æããã§ãã ãŸããFPGAãããã¯èŠçŽ æ°ãäºãã«ç°ãªããŸãã ãããããã¹ããããžã§ã¯ãã«å¿ èŠãªæ°ã¯å®å šã«ã¯æããã§ã¯ãããŸããã ãã®ãããã»ãšãã©ã®æéãè²»ãããŠãããããçš®é¡ã®FPGAãããžã§ã¯ããæ€çŽ¢ããããããæ¶è²»ããFPGAãªãœãŒã¹ã®éã調ã¹ãŸããã
ã¢ã«ãã©ãã¡ããªã§ã¯ããªãŒãºããã«ãªäŸ¡æ Œã§ã240ã570ãããã³1270èŠçŽ ã®CPLD MAX IIãæèŒãããã¶ãŒããŒãããŸãã¯æ倧10,000å以äžã®ã»ã«ãåããCyclone 1ã2ã3ã4ãæèŒããå€ãFPGAããããè³Œå ¥ã§ããŸãã éžææ¹æ³
240åã®ã»ã«ã«åºã¥ããŠãã ç«ææ¢æ»æ©ãããžã§ã¯ãã¯èšå€§ãªæ°ã®ãããžã§ã¯ããå®è¡ããŸãã 240ã»ã«ã«åãŸãããšãã§ãããããžã§ã¯ãã®è€éãã®å€§ãŸããªæŠå¿µãç解ããããšã匷ããå§ãããŸãã äžæ¹ãããã»ããµãšãã®åšèŸºã®ãã¹ãŠã®ããžãã¯ïŒ NES ã Speccy ã Orion ã UT-88ãªã©ïŒãå«ãç¹å®ã®PCã®ããŒããŠã§ã¢ã³ããŒçšã«å®å šã«ããã°ã©ã å¯èœãªãããžã§ã¯ãããããŸãã ãã®ããã«ã¯ã5ã10ããŸãã¯ãã以äžã®ã»ã«ããã§ã«å¿ èŠã§ãã ããã«ããããã®ããŒãã«ã¯è¿œå ã®å€éšããã€ã¹ãå«ãŸããŠããŸãã
ãããã£ãŠãå©çšå¯èœãªæ段ã«å¿ããŠäžåããåªå ããŠã240ãã10,000ã»ã«ã®éã«äœããå ¥ããããšããå§ãããŸãã ãããã°ããŒãã§ã¯ãäœåãªã»ã«ã¯æããããŸãããååã§ãªãå Žåã¯ãäœãããå¿ èŠã¯ãããŸããã 次ã«ãããã€ã¹ããããã°ãããšãå¿ èŠãªã»ã«ã®æ°ãæããã«ãªããŸããäžå¿ èŠãªãããã£ããããã䜿çšããã«é©åãªéã§è³Œå ¥ããå®æããããã€ã¹ã«æ®ããŠããæ¹ãå®ããªããŸãã
ã»ã«ã®æ°ã«å ããŠMAXãCycloneãšå®éã«ç°ãªãã®ã¯æ¬¡ã®ãšããã§ãã
1ïŒMAXã·ãªãŒãºã«ã¯å éšã«PLLããããŸããã åãããã°ããŒãã«ã¯ãéåžž50 MHzã®ãžã§ãã¬ãŒã¿ããããŸãã ãããžã§ã¯ãã®å€§éšåã§ååã§ãã ãã¹ãŠã®åæã¯ã50 MHzãããå€ã§é€ç®ããããšã«ããçºçããŸãã ãŸãã¯ãå€éšãžã§ãã¬ãŒã¿ãŒã䜿çšããŠãå¥ã®FPGAå ¥åã«é©çšããããšãã§ããŸãã ãããã50 MHzãè¶ ããåšæ³¢æ°ãå¿ èŠãªå Žåã¯ã©ãã§ããããïŒ 50 MHz以äžã®ãžã§ãã¬ãŒã¿ãŒãããã«èŠã€ããããšãã§ããŸããã§ããã ãããããã§ã¯ãCycloneã«çµã¿èŸŒãŸããŠããPLLã圹ã«ç«ã¡ãŸãã ãã®äžã§ãããšãã°100 MHzãŸã§ã®åšæ³¢æ°ãä¹ç®ã§ããŸãã
2ïŒCycloneã·ãªãŒãºã«ã¯ãããŒããŠã§ã¢ä¹ç®ãããã¯ãçµã¿èŸŒãŸããŠããŸãã ãã®æ°ã¯ç¹å®ã®ã¢ãã«ã«äŸåããŸã-ããã§ã¯ããæ瀺ãäžç®èŠãã°ãã©ãã ãããããããŸãã äœããã®DSPãå®è¡ããå Žåã¯ã䟿å©ã§ããã»ã«ãä¿åããé床ãäžããŸãã äžæ¹ãä¹ç®åšããªãå Žåã¯ä¹ç®ã§ããŸãããå°ããªFPGAã«ã¯ããã«ååãªãªãœãŒã¹ããªãå ŽåããããŸãã
ä»ã®ãã¹ãŠã®ç¹ã§ãç§ã®ãé©å/äžé©åãåºæºã ãããã°ã¯æããã«ããŒããå¿ èŠãšãã以äžã®ãã®ã§ãããããã«å¿ èŠãªæå°å€ãåããŸãã
ã©ã®ãããã®ãéãå¿ èŠã§ããïŒ
ããã°ã©ããŒ
ç§ã¯ããã°ã©ããŒãèªç±ã«ã¯ãã ä»ãããæéããªããšä¿¡ããŠããŸãã
300ã«ãŒãã«ã ç§ã¯ebeeã§ç§ã®ãã®ãåããŸãã ãããã¯ãã®ããã«èŠããŸãïŒ
ãããã°ããŒã
éé¡ã«å¿ããŠãéžæã®å¹ ãåºãããŸãã
350-550ã«ãŒãã«ã®åæã¬ãã« ã ãããã¯MAX IIã®ããŒãã§ãïŒ 240ãŸãã¯570ã»ã«ïŒã æåã®æ £ããšããšã³ãããã€ã¹ãžã®ãããªãçµ±åã«é©ããŠããå ŽåããããŸãã ããŒãã«ã¯ãžã§ãã¬ãŒã¿ãŒã1çµã®ãã¿ã³ã1çµã®LEDããããæ®ãã®80åã®ãã³ã¯èªç±ã«æ±ºå®ã§ããŸãã
é»æº
å«ãŸããŠããå¿ èŠããããŸãããåžžã«å«ãŸããŠããããã§ã¯ãããŸããã 5ãã«ãã®PSUãš2Aã®é»æµãå¿ èŠã§ãã
å¹³åã¬ãã«ã¯ 900ãã1500ã«ãŒãã«ã§ãã ãããã¯ãäž»ã«ã»ã«ã®æ°ãç°ãªãCyclone 1ã2ã3ã4ããŒãã§ãã
ãã®ãããªãã®ã«ã©ãã«ãä»ããŸããïŒ
EP 2 C 5 T144-ãµã€ã¯ãã³2çŽ5kã»ã«
EP 4 CE 6 E22C8N-ãµã€ã¯ãã³4çŽ6kã»ã«
EP 2 C 8 Q208C8N-ãµã€ã¯ãã³2çŽ8kã»ã«
ãµã€ã¯ãã³3ã«ã¯ããµã€ã¯ãã³4ãããå€ãã®ã»ã«ãããå ŽåããããŸãã
以äžã«ããã€ãã®ãªãã·ã§ã³ã瀺ããŸãã
835ã«ãŒãã«ã
ALTERA FPGA CycloneII EP2C5T144åŠç¿ã«æé©ãªã·ã¹ãã ããŒã
880ã«ãŒãã«
ã¢ã«ãã©CycloneII EP2C5T144 FPGAããéçºã©ãŒãã³ã°ã³ã¢ããŒãE081
1265ã«ãŒãã«
EP2C8 EP2C8Q208C8N ALTERA Cyclone II FPGAè©äŸ¡éçºã³ã¢ããŒã
é«åºŠãªæ©èœãåããããŒã ã ãããã¯ãè¿œå ã®ã¢ãžã¥ãŒã«ïŒUTPãUSBãAUDIOïŒãã³ãã¯ã¿ãŒïŒSDãVGAïŒããã¿ã³ãã¹ã€ãããLEDã7ã»ã°ã¡ã³ãã€ã³ãžã±ãŒã¿ãŒãªã©ãåãä»ããããŠããããŒãã§ãã ãŸãã¯ãããŒã¹ããŒããåãä»ããŠãæ¡åŒµã«ãŒããåå¥ã«åãä»ããããšãã§ããŸãã
ç§ã¯ãã®ãããªããããæã£ãŠããŸã-ããŒã+æ¡åŒµããŒãïŒ
Altrea EP4CE10E22 FPGA CORE Board + Device Board USB /ãµãŠã³ã/ã€ãŒãµããã/ SDã«ãŒã/ VGA
2760ã«ãŒãã«
ãããã¡ã€ã³ããŒãã§ãã 2ã€ã®LEDã2ã€ã®ãã¿ã³ã4ã€ã®ã¹ã€ããã7ã»ã°ã¡ã³ãã€ã³ãžã±ãŒã¿ãããã³RAMãããããããŸãã
æ¡åŒµããŒãã SDãVGAãUSBã³ã³ãããŒã©ãŒïŒé«éUSB2.0ãããïŒCY7C68013AïŒããªãŒãã£ãªïŒæ倧96kHz / 32ãããADC / DACã®ãµãŠã³ãã«ãŒãïŒWM8731SïŒãUTPïŒ100Mã€ãŒãµãããã€ã³ã¿ãŒãã§ã€ã¹ïŒDM9000AïŒãã¯ãã ä»ããããŠããŸãïŒ
ãããã®ããŒãã¯ãäžæ¹ãä»æ¹ã«æ¿å ¥ããã ãã§ãããåŒãåºãã«ã¯ãŸã ãããŸãã ç§ã®å·¥èžåã«ã¯ããããã«ä»å±ã®ã±ãŒãã«ãšæ¥ç¶ãããã¬ããããŒãããããŸãã 5ãã«ãã®é»æºãå«ãŸããŠããŸãã
ãã®ä»ã®ãªãã·ã§ã³ïŒ
ã¢ã«ãã©Cyclone NIOS II SOPC FPGAéçºåŠç¿ããŒãEP2C8Q208C8N + LCD1602-2670ã«ãŒãã«
Terasic Altera FPGA DE0-Nano Cyclone IVéçºããã³æè²å§å¡äŒ-4,600ã«ãŒãã«
AlterããŒãã®å¹ åºãéžæè¢ãšãããã®æ¡åŒµ
ç«ææ¢æ»æ©ãããžã§ã¯ã
ããããäžè¬çã«ã倧ãããŠé«äŸ¡ãªãããã°ããŒãã®è³Œå ¥ã¯ãå§ãããŸããã é«äŸ¡ãªè³Œå ¥ãæ£åœåããå¿ èŠããããŸãããçŸæç¹ã§ã¯äœãæé©ãã¯æ確ã§ã¯ãããŸããã ç·Žç¿ãå§ãŸããšæããã«ãªããŸãã
泚æããŸãããåŸ ã£ãŠããŸã
ããŒããè¡ãéãããªãã¯ç²Ÿç¥çããã³æè¡çã«èªåèªèº«ã®æºåãå§ããããšãã§ããŸãïŒ
-Quartus II v.11.1ãã€ã³ã¹ããŒã«ããŸã
èªãïŒ
-æ¬ïŒA.K. ããžã¿ã«æ©åšã®èšèšã«ãããPolyakov Languages VHDLããã³Verilog 2003
-www.kit-e.ru/articles/circuit/2008_3_161.php-çæã³ãŒã¹HDL
-ããŒããŒã§ã®ã¬ãã¹ã³ã ãŽã§ã ã å»ºç¯ ã ã·ã³ãã«ãªã¹ã¿ã€ã«ã®ãã³ã ã
- çãæ¹ãšããŠã®VERILOG
- è¯ãäŸ
-FPGAã®éå§æ¹æ³ïŒã¶ã€ãªã³ã¯ã¹ïŒ
ãã¹ãŠïŒ
FPGAã«é¢ããèå³æ·±ããããžã§ã¯ãããåŸ ã¡ããŠããŸãïŒ
PSã ãããªããã«ã€ããŠããªãã«ç®ãåãããšãç§ã¯å¹³çã«äººã«åãã矀è¡ã®äžéšã§ã¯ãªãã ãããªãããžã®èšŽããæ°åã害ããå Žåã¯ããã¿ãŸããã
泚æïŒ VerilogãšFPGAã¯ãåé¡ã解決ããããã®ç¹å¹è¬ã§ã¯ãªãã ãã¹ãŠã®ãããžã§ã¯ãã®ãã€ã¯ãã³ã³ãããŒã©ãŒã眮ãæããããšã¯ã§ããŸããã FPGAã䜿çšããã«ã¯ãäžå®ã¬ãã«ã®æè¡ãã¬ãŒãã³ã°ãå¿ èŠã§ãã ããªãèªèº«ãããªãã®äººçã®ãã¹ãŠã®æ±ºå®ã«è²¬ä»»ããããŸãã èè ã¯ãFPGAããã³Verilogã®åéã§ã®ç 究ããçããå¯èœæ§ã®ããééçããã³äžæçãªæ倱ã«å¯Ÿãããã¹ãŠã®è²¬ä»»ãæŸæ£ããŸãã