Qsys¤È¤¤¤¦¤Î¤Ï¡¢Altera¤Î¥·¥¹¥Æ¥àÅý¹ç¥Ä¡¼¥ë¤Î̾Á°¤Ç¤¹(Altera¤ÎQsys¤Î¥Ú¡¼¥¸)¡£°ÊÁ°¤¢¤Ã¤¿SOPC Builder¤Î¸å·Ñ¤È¤Ê¤ë³«È¯¥Ä¡¼¥ë¤Ç¤¹¡£CPU¤äRAM¤ò´Þ¤ó¤À¥·¥¹¥Æ¥à¤òFPGA¾å¤Ë´Êñ¤Ë¹½ÃۤǤ¤Þ¤¹¡£Eclipse¤ÈC¥³¥ó¥Ñ¥¤¥é¤â¤¢¤Ã¤Æ¥½¥Õ¥È³«È¯¤â´Êñ¤Ë¤Ç¤¤Þ¤¹¡£
Qsys¤ò»È¤Ã¤Æ¤ß¤¿¤Î¤Ç»È¤¤Êý¤ò´Êñ¤Ë¾Ò²ð¤·¤Þ¤¹¡£»È¤Ã¤¿³«È¯¥Ä¡¼¥ë¤ÏQuartus II 11.0sp1¤Îweb edition¤Ç¤¹¡£FPGA¥Ü¡¼¥É¤ÏDE0 nano¤ò»È¤¤¤Þ¤·¤¿¡£
¤ª¤ª¤Þ¤«¤Êή¤ì¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹
1. ¥¤¥ó¥¹¥È¡¼¥ë
Quartus II ver11.0 sp1 web edition¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Þ¤¹¡£°ÊÁ°¤Ïsp1¤Ê¤·¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Ê¤¤¤Èsp1¤ò¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¤¬¡¢11.0¤«¤é¤Ïsp1¤À¤±¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ì¤Ð¤¤¤¤¤Ç¤¹¡£¤Þ¤¿¡¢°ÊÁ°¤ÏNios II¤Î¥½¥Õ¥È¥¦¥§¥¢³«È¯¥Ä¡¼¥ë¤òÊÌÅÓ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤·¤¿¤¬¡¢¤³¤ì¤âɬÍפʤ¯¤Ê¤ê¤Þ¤·¤¿¡£¥é¥¤¥»¥ó¥¹Ç§¾Ú¤â¤¢¤ê¤Þ¤»¤ó¡£
2. Qsys¤ò»È¤¦Á°¤Ë¤ä¤Ã¤Æ¤ª¤¯¤³¤È
Quartus II¤ò»È¤Ã¤¿ÉáÄ̤ÎFPGA³«È¯¤ÈƱ¤¸¤è¤¦¤Ë°Ê²¼¤ò¹Ô¤¤¤Þ¤¹¡£
- ¥×¥í¥¸¥§¥¯¥È¤ÎºîÀ®
- ¥Ç¥Ð¥¤¥¹¤ÎÀßÄê
- ¥Ô¥óÇÛÃÖ¤ÎÀßÄê
- SDC¥Õ¥¡¥¤¥ë¤ÎºîÀ®
º£²ó¤Ï¼êÈ´¤¤Ç¡¢DE0 nano¤ÎCD-ROM¤ËÆþ¤Ã¤Æ¤¤¤ëDE0_Nano_GOLDEN_TOP¤È¤¤¤¦¥×¥í¥¸¥§¥¯¥È¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿¡£Å¬Åö¤Ê¥Õ¥©¥ë¥À¤òºî¤Ã¤ÆDE0_Nano_GOLDEN_TOP¤È¤¤¤¦¥Õ¥©¥ë¥À¤ÎÃæ¿È¤ò¥³¥Ô¡¼¤¹¤ë¤À¤±¤Ç¤¹¡£DE0_Nano.qpf¤È¤¤¤¦¥×¥í¥¸¥§¥¯¥È¤Î¥Õ¥¡¥¤¥ë¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤ÇQuartus II¤¬µ¯Æ°¤·¤Þ¤¹¡£
3. Qsys¤Ç¥·¥¹¥Æ¥à¤òºî¤ë
¤³¤ì¤Ï¸å½Ò¤·¤Þ¤¹¡£
4. ÏÀÍý¹çÀ®¤ÎÁ°¤Ë¤ä¤Ã¤Æ¤ª¤¯¤³¤È
- ¤Ç¤¤¢¤¬¤Ã¤¿Qsys¤Î¥Õ¥¡¥¤¥ë¤ò¥×¥í¥¸¥§¥¯¥È¤ËÄɲä·¤Þ¤¹¡£
- Qsys¤Î¥â¥¸¥å¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¥á¥¤¥ó¤ÎDE0_Nano.v¤ò½¤Àµ¤·¤Þ¤¹¡£
5. ÏÀÍý¹çÀ®
Quartus II¤ÎÉáÄ̤ÎÏÀÍý¹çÀ®¤ò¹Ô¤¤¤Þ¤¹¡£
6. FPGA¥Ü¡¼¥É¤Ø¤Î½ñ¤¹þ¤ß
¤Ç¤¤¢¤¬¤Ã¤¿DE0_Nano.sof¥Õ¥¡¥¤¥ë¤òDE0_Nano¤Ë½ñ¤¹þ¤ß¤Þ¤¹¡£
7. ¥½¥Õ¥È³«È¯
Nios II 11.0sp1 Software Build Tools for Eclipse¤òΩ¤Á¾å¤²¤Æ¥½¥Õ¥È³«È¯¤·¤Þ¤¹¡£
8. ¥×¥í¥°¥é¥à¤Î¼Â¹Ô
EclipseÆâ¤«¤é¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Þ¤¹¡£
°Ê¾å¤Ë¤Ê¤ê¤Þ¤¹¡£º£²ó¤Ï3.¤òÃæ¿´¤Ë½ñ¤¤Þ¤¹¡£
°ì±þ¡¢º£²ó¤ÎÏäϤä¤Ã¤Æ¤ß¤¿¤é¡¢¤Ê¤ó¤È¤Ê¤¯¤Ç¤¤¿¤È¤¤¤¦¥ì¥Ù¥ë¤Ê¤Î¤Ç´Ö°ã¤Ã¤¿¾ðÊó¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë´í¸±À¤¬¤¿¤Ö¤ó¤Ë¤¢¤ê¤Þ¤¹¡£¤³¤³¤Ï°ã¤¦¤ß¤¿¤¤¤Ê¤È¤³¤í¤Ï¤¼¤Ò¤È¤â¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£
3. Qsys¤Ç¥·¥¹¥Æ¥à¤òºî¤ë
(1) Qsys¤Îµ¯Æ°
¤È¤¤¤¦¤ï¤±¤Ç¡¢¤Þ¤º¤ÏQsys¤Îµ¯Æ°¤Ç¤¹¡£Quartus II¤Î¥Ä¡¼¥ë¥Ü¥¿¥ó¤«¤éµ¯Æ°¤Ç¤¤Þ¤¹¡£![]()
(²èÁü¤Ï¥¯¥ê¥Ã¥¯¤¹¤ë¤ÈÂ礤¯¤Ê¤ê¤Þ¤¹¡£¸µ¤Îµ»ö¤ËÌá¤ë¤È¤¤Ï¥Ö¥é¥¦¥¶¤ÎÌá¤ë¥Ü¥¿¥ó¤ÇÌá¤Ã¤Æ¤¯¤À¤µ¤¤)
(2) ¥×¥í¥¸¥§¥¯¥È̾¤ò·è¤á¤ë
Qsysµ¯Æ°Ä¾¸å¤Î²èÌ̤Ǥ¹¡£SOPC Builder¤Ï¥×¥í¥¸¥§¥¯¥È̾¤òʹ¤¤¤Æ¤¯¤ë¥À¥¤¥¢¥í¥°¤¬ºÇ½é¤Ë½Ð¤Þ¤·¤¿¤¬¡¢Qsys¤Ç¤Ïʹ¤¤¤Æ¤¤Þ¤»¤ó¡£¥×¥í¥¸¥§¥¯¥È̾¤Ï¥â¥¸¥å¡¼¥ë̾¤Ë¤â¤Ê¤ë¤Î¤Ç¡¢¸å¤ÇɬÍפˤʤê¤Þ¤¹¡£¤É¤¦¤ä¤Ã¤Æ·è¤á¤ë¤Î¤«¤È¤¤¤¦¤È¡¢¥»¡¼¥Ö¤¹¤ë¤È¤¤Î¥Õ¥¡¥¤¥ë̾¤¬¤½¤Î¤Þ¤Þ¥×¥í¥¸¥§¥¯¥È̾(= ¥â¥¸¥å¡¼¥ë̾)¤Ë¤Ê¤ê¤Þ¤¹¡£ctrl+S¤â¤·¤¯¤ÏFile¥á¥Ë¥å¡¼¤«¤éSave¤Ç¥»¡¼¥Ö¤·¤Æ¤ä¤ë¤È²¿¤â¥»¡¼¥Ö¤µ¤ì¤Æ¤¤¤Ê¤¤°ìÈֺǽé¤Ï¥Õ¥¡¥¤¥ë̾¤òʹ¤¤¤Æ¤¤Þ¤¹¡£¤È¤ê¤¢¤¨¤ºNiosSystem¤È¤¤¤¦Ì¾Á°¤Ç¥»¡¼¥Ö¤·¤Þ¤·¤¿¡£³ÈÄ¥»Ò¤Ïqsys¤Ë¤Ê¤ë¤Î¤ÇNiosSystem.qsys¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤Ç¤¤Þ¤¹¡£
(3) ¥·¥¹¥Æ¥à¤Î³µÍ×
º£²óºî¤ë¤Î¤Ï¡¢¥³¥ó¥½¡¼¥ë¤ËHello, world¤òɽ¼¨¤·¤ÆLED¥Á¥«¥Á¥«¤¹¤ë¤À¤±¤Î¥·¥¹¥Æ¥à¤Ë¤·¤Þ¤¹¡£RAM¤ÏDE0 Nano¤ËÅëºÜ¤µ¤ì¤Æ¤¤¤ëSDRAM¤Ë¤·¤Æ100MHz¤Çưºî¤µ¤»¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£Äɲ乤륳¥ó¥Ý¡¼¥Í¥ó¥È°Ê²¼¤Î6¤Ä¤Ë¤Ê¤ê¤Þ¤¹¡£
- Avalon ALTPLL (PLL) ... ÇÜ®¥¯¥í¥Ã¥¯¤È¥á¥â¥êÍÑ¥¯¥í¥Ã¥¯
- Nios II Processor (Processors) ... CPU
- System ID Peripheral (Peripherals → Debug and Performance) ... ɬ¿Ü
- JTAG UART (Interface Protocols → Serial) ... ¥Ç¥Ð¥Ã¥°ÄÌ¿®ÍÑ¡¢É¬¿Ü
- PIO (Peripherals → Microcontroller Peripherals) ... LEDÍѤÎPIO
- SDRAM Controller (Memories and Memory Controllers → SDRAM) ... RAM
¥¯¥í¥Ã¥¯¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÏºÇ½é¤«¤éÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ç·×7¤Ä¤Ë¤Ê¤ê¤Þ¤¹¡£¤«¤Ã¤³¤ÎÃæ¤ÏComponent Library¤Î¥Ä¥ê¡¼¥Ó¥å¡¼¤ÎÃæ¤Ç¤Î°ÌÃ֤ˤʤê¤Þ¤¹¡£
(4) Qsys¤Ç¤Îºî¶È¤Î³µÍ×
´ðËܤϲèÌ̺¸Â¦¤ÎComponent Library¤«¤éÄɲä·¤¿¤¤¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤Æ¥·¥¹¥Æ¥à¤ËÄɲä·¡¢¥Ñ¥é¥á¡¼¥¿¤ò·è¤á¤Æ¤¤¤¤Þ¤¹¡£¥Ñ¥é¥á¡¼¥¿¤Ï¥³¥ó¥Ý¡¼¥Í¥ó¥È¤½¤Î¤â¤Î¤Î¥À¥¤¥¢¥í¥°¤Ç·è¤á¤ë¤â¤Î¤Î¾¤Ë°Ê²¼¤¬É¬Íפˤʤê¤Þ¤¹¡£
- Connection ¥¯¥í¥Ã¥¯¤ä¥ê¥»¥Ã¥È¡¢¥Ð¥¹¤È¤ÎÀܳ¤ò·è¤á¤Þ¤¹
- Name ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î̾Á°¤ò·è¤á¤Þ¤¹¡£
- Export ³°Éô¿®¹æ¤Î̾Á°¤ò·è¤á¤Þ¤¹¡£¤³¤ì¤ÏQsys¤Î¥â¥¸¥å¡¼¥ë(º£²ó¤ÏNiosSystem)¤Î¥Ñ¥é¥á¡¼¥¿¤ËÈ¿±Ç¤µ¤ì¤Þ¤¹¡£
- Base cpu¤«¤éÀ©¸æ¤¹¤ë¤¿¤á¤Î¥á¥â¥ê¥Þ¥Ã¥×¥ÉI/O¤Î¥¢¥É¥ì¥¹¤ò·è¤á¤Þ¤¹¡£
SOPC Builder¤À¤È¡¢Connection¤äBase¤Ï¥Ç¥Õ¥©¥ë¥È¤Îưºî¤Ç¤¢¤ëÄøÅÙ¼«Æ°ÆþÎϤ·¤Æ¤¯¤ì¤Æ¤¤¤Þ¤·¤¿¤¬¡¢Qsys¤ÏÁ´Éô¼êư¤ÇÆþÎϤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
(5) ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÄɲà ALTPLL
Component Library¤Î¥Ä¥ê¡¼¥Ó¥å¡¼¤«¤éPLL→Avalon ALTPLL¤òÄɲä·¤Þ¤¹(¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤â¤·¤¯¤Ï+Add...¥Ü¥¿¥ó)¡£
ALTPLL¤Î¥À¥¤¥¢¥í¥°¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
page 1/11¤Ç¤Ï¡¢speed grade¤ò6¤Ë¡¢ÆþÎÏ¥¯¥í¥Ã¥¯¤ò50MHz¤Ë¤·¤Þ¤¹¡£![]()
page 6/11¤Ç¤ÏPLL¤Î½ÐÎÏ¥¯¥í¥Ã¥¯c0¤ÎÇÜΨ¤ò2Çܤˤ·¤Þ¤¹(ÆþÎϤÏ50MHz¤Ê¤Î¤Ç100MHz)![]()
page 7/11¤Ç¤Ï¡¢Use this clock¤Î¥é¥¸¥ª¥Ü¥¿¥ó¤ò¥Á¥§¥Ã¥¯¤·¤Æ½ÐÎÏ¥¯¥í¥Ã¥¯c1¤ò͸ú¤Ë¤·¤Þ¤¹¡£¤½¤ì¤«¤éc1¤ÎÇÜΨ¤ò2Çܤˤ·¤Æ°ÌÁê(Clock phase shift)¤ò-60Å٤ˤ·¤Þ¤¹¡£![]()
¤³¤Î-60Å٤Ȥ¤¤¦¤Î¤Ï¡¢DE0¤Î¥µ¥ó¥×¥ë¥×¥í¥¸¥§¥¯¥È¤¬-60ÅÙ¤À¤Ã¤¿¤Î¤Ç¡¢¤½¤ì¤Ë¤¢¤ï¤»¤Þ¤·¤¿¡£Á´¤¯º¬µò¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤¿¤Þ¤¿¤Þư¤¤¤Æ¤¤¤ë¤Î¤Ç¤³¤ÎÃͤˤ·¤Æ¤¤¤Þ¤¹¤¬¡¢ËÜÅö¤Ï¤Á¤ã¤ó¤È·è¤á¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤Ï¤º¤Ç¤¹¡£»Äǰ¤Ê¤³¤È¤Ë·è¤áÊý¤Ï¤µ¤Ã¤Ñ¤êʬ¤«¤ê¤Þ¤»¤ó¡£
¥À¥¤¥¢¥í¥°Æâ¤ÎÀßÄê¤Ï°Ê¾å¤Ê¤Î¤ÇFinish¥Ü¥¿¥ó¤ò²¡¤·¤Æ´°Î»¤·¤Þ¤¹¡£
c0¤Ï¥·¥¹¥Æ¥àÁ´ÂΤΥ¯¥í¥Ã¥¯¡¢c1¤ÏSDRAMÀìÍѤΥ¯¥í¥Ã¥¯¤Ç¤¹¡£
ALTPLL¤òÅÐÏ¿¤·¤¿Ä¾¸å¤ÎQsys¤Î²èÌ̤Ǥ¹¡£![]()
Error¤¬2¤Ä¤ÈWarning¤¬4¤Ä½Ð¤Æ¤¤¤Þ¤¹¡£Connections¤ÈExport¤ò·è¤á¤ÆError¤ÈWarning¤ò¸º¤é¤·¤Þ¤¹¡£Base¤Ï¤Þ¤ÀCPU¤¬¤¤¤Ê¤¤¤Î¤ÇÆþÎϤǤ¤Þ¤»¤ó¡£¸å¤ÇÆþÎϤ·¤Þ¤¹(¤È¤¤¤¦¤«¡¢ºÇ½é¤ËCPU¤òÄɲ乤ì¤Ð¤è¤«¤Ã¤¿¤È¾¯¤·È¿¾Ê)
- clk_0¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îclk½ÐÎϤòinclk_interface¤ËÀܳ(Connections¤Î¤¢¤¿¤ê¤Ë¥Þ¥¦¥¹¤ò»ý¤Ã¤Æ¤¤¤¯¤ÈÀܳ¤Î³¨¤¬½Ð¤ë¤Î¤ÇÇò´Ý¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¹õ´Ý¤ËÊѤ¨¤Þ¤¹)
- clk_0¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îclk_reset½ÐÎϤòinclk_interface_reset¤ËÀܳ
- altpll_0_c1¤ÎExport̾¤ò·èÄê(¥·¥ó¥°¥ë¥¯¥ê¥Ã¥¯¤Ç¸õÊä̾¤¬½Ð¤ë¤Î¤ÇɬÍפʤ齤Àµ¤·¤ÆEnter¤ò²¡¤·¤Þ¤¹¡£º£²ó¤Ï½¤Àµ¤·¤Æ¤¤¤Þ¤»¤ó)
- Ʊ¤¸¤¯areset_conduit¤ÎExport̾¤ò·èÄê
- Ʊ¤¸¤¯locked_conduit¤ÎExport̾¤ò·èÄê
- Ʊ¤¸¤¯phasedone_conduint¤ÎExport̾¤ò·èÄê
ÊÔ½¸Ãæ¤Î²èÌ̤Ǥ¹¡£Connections¤Î¤¢¤¿¤ê¤Ë¥Þ¥¦¥¹¥«¡¼¥½¥ë¤ò»ý¤Ã¤Æ¤¤¤¯¤Èɽ¼¨¤µ¤ì¤ëÀܳ¤Î¿Þ¤Ç¤¹¡£Çò´Ý¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¹õ´Ý¤ËÊѤ¨¤Þ¤¹¡£¤Þ¤¿¡¢Export̾¤â·è¤á¤Æ¤¤¤Þ¤¹¡£![]()
°Ê¾å¤¬´°Î»¤·¤¿¤È¤¤ÎQsys¤Î²èÌ̤Ǥ¹¡£![]()
·Ù¹ð¤¬1¤Ä¤Ë¸º¤Ã¤Æ¤¤¤Þ¤¹¡£ALTPLL¤ÎAvalon-Slave¤òAvalon-MM master¤Ë¤Ä¤Ê¤¤¤Ç¤¤¤Ê¤¤¤È¤¤¤¦·Ù¹ð¤¬½Ð¤Æ¤¤¤Þ¤¹¡£CPU(¥Þ¥¹¥¿¡¼)¤¬¤Þ¤À¤¤¤Ê¤¤¤Î¤Ç¡¢¤³¤Î·Ù¹ð¤Ï¸å¤Ç¾Ã¤·¤Þ¤¹¡£
¢¨Qsys¤Ï¤¹¤Ù¤Æ¤Î¥¨¥é¡¼¤È·Ù¹ð¤ò¾Ã¤¹¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£¾Ã¤µ¤Ê¤¤¤ÈÂçÄñưºî¤·¤Þ¤»¤ó¡£
(6) ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÄɲà Nios II Processor
Component Library¤ÎProcessors¤Ë¤¢¤ëNios II¤òÄɲä·¤Þ¤¹¡£
¥³¥ó¥Ý¡¼¥Í¥ó¥ÈÀìÍÑ¥À¥¤¥¢¥í¥°¤Ç¤Ï¡¢Nios II Core¤òNioss II/e¤òÁªÂò¤·¤Þ¤¹¡£¤³¤³¤Ç´Ö°ã¤Ã¤ÆNios II/s¤äNios II/f¤òÁª¤Ö¤È¡¢»þ´ÖÀ©¸ÂÉÕ¤¤Î¥³¥¢¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¸å¤¬ÌÌÅݤǤ¹¡£¤Þ¤¿¡¢¸å¤ÇNios II/e¤ËÌᤷ¤Æ¤â»þ´ÖÀ©¸ÂÉÕ¤¤Î¤Þ¤Þ¸µ¤ËÌ᤻¤Ê¤¯¤Ê¤ë¤Î¤ÇÃí°Õ¤¬É¬ÍפǤ¹¡£![]()
¥¨¥é¡¼¤¬½Ð¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤³¤Ç¤Ï¾Ã¤»¤Ê¤¤¤Î¤ÇFinish¤ò²¡¤·¤Æ¥À¥¤¥¢¥í¥°¤ò½ªÎ»¤·¤Þ¤¹¡£
Qsys¤Î²èÌ̤Ç(5)¤ÈƱ¤¸¤è¤¦¤ËConnections¤ò¤Ä¤Ê¤®¤Þ¤¹¡£
- nios2_qsys_0¤Îclk¤òalt_pll_0¤Îc0¤ËÀܳ¤·¤Þ¤¹
- nios2_qsys_0¤Îreset_n¤òclk_0¤Îclk_reset¤ËÀܳ¤·¤Þ¤¹
- altpll_0¤Îpll_slave¤ònios2_qsys_0¤Îdata_master¤ËÀܳ¤·¤Þ¤¹((5)¤Ç¤Ä¤Ê¤²¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¤³¤³¤ÇÀܳ)¡£
6¸Ä¤Î¥¨¥é¡¼¤È1¤Ä¤Î·Ù¹ð¤¬4¸Ä¤Î¥¨¥é¡¼¤È·Ù¹ð¤Ê¤·¤Ë¤Ê¤ê¤Þ¤¹¡£¥ê¥»¥Ã¥È¥Ù¥¯¥¿¡¼¤ÈÎã³°¥Ù¥¯¥¿¡¼¤òÀßÄꤷ¤Æ¤¤¤Ê¤¤¤È¤¤¤¦¥¨¥é¡¼¤Ï¡¢¤Þ¤À¥á¥â¥ê¤¬¤Ê¤¤¤Î¤Ç¾Ã¤»¤Þ¤»¤ó¡£
³Æ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¤Û¤Ë¤ã_slave(¤¿¤È¤¨¤Ðpll_slave)¤Ïnios2¤Îdata_master¤Ë¤Ä¤Ê¤®¤Þ¤¹¡£reset¤Ïclk0¤Îclk_reset¤Ë¤Ä¤Ê¤®¤Þ¤¹¡£clk¤Ïaltpll_0¤Îc0¤Ë¤Ä¤Ê¤®¤Þ¤¹¡£
(7) ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÄɲà System ID Peripheral
Componet Library¤ÎPeripherals → Debug and Performance¤«¤éSystem ID Peripheral¤òÄɲä·¤Þ¤¹¡£
Connections¤Ï°Ê²¼¤Î3¤Ä¤Ç¤¹¡£
- clk¤òalt_pll_0¤Îc0¤ËÀܳ¤·¤Þ¤¹
- reset¤òclk_0¤Îclk_reset¤ËÀܳ¤·¤Þ¤¹
- control_slave¤ònios2_qsys_0¤Îdata_master¤ËÀܳ¤·¤Þ¤¹
º£²ó¤Ï¡¢Connections¤Î¾¤ËBase¤â·è¤á¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£¥á¥â¥ê¥Þ¥Ã¥×¥ÉI/O¤ÎÈÖÃϤ¬altpll_0¤È½Å¤Ê¤Ã¤Æ¤¤¤ë¤«¤é¤Ç¤¹¡£altpll_0¤¬0x00000000¡Á0x0000000f¤òÀêͤ·¤Æ¤¤¤ë¤Î¤Ç0x00000010¤È¤¤¤¦¤³¤È¤Ë¤·¤Þ¤·¤¿¡£Êѹ¹¤ÏBase¤Î0x00000000¤Î½ê¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·¤ÆÊÔ½¸¤·¤Þ¤¹¡£
ÊÔ½¸¸å¤Î²èÌ̤Ǥ¹¡£![]()
(8) ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÄɲà JTAG UART
Componet Library¤ÎInterface Protocols → Serial¤«¤éJTAG UART¤òÄɲä·¤Þ¤¹¡£
Connections¤Ï°Ê²¼¤Î3¤Ä¤Ç¤¹(System ID¤È°ì½ï¤Ç¤¹)¡£
- clk¤òalt_pll_0¤Îc0¤ËÀܳ¤·¤Þ¤¹
- reset¤òclk_0¤Îclk_reset¤ËÀܳ¤·¤Þ¤¹
- control_slave¤ònios2_qsys_0¤Îdata_master¤ËÀܳ¤·¤Þ¤¹
Base¤Ï½Å¤Ê¤é¤Ê¤¤¤è¤¦¤Ë0x00000020¤Ë¤·¤Þ¤·¤¿¡£
ÊÔ½¸¸å¤Î²èÌ̤Ǥ¹¡£![]()
(9) ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÄɲà PIO
ÀìÍÑ¥À¥¤¥¢¥í¥°¤Ç¤Ï¥Ó¥Ã¥ÈŤäÆþ½ÐÎϤòÁªÂò¤Ç¤¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï8¥Ó¥Ã¥È½ÐÎϤʤΤǤ½¤Î¤Þ¤ÞFinish¤·¤Þ¤¹¡£
Componet Library¤ÎPeripherals → Microcontroller Peripherals¤«¤éPIO (Parallel I/O)¤òÄɲä·¤Þ¤¹¡£
Connections¤Ï°Ê²¼¤Î3¤Ä¤Ç¤¹¡£
- clk¤òalt_pll_0¤Îc0¤ËÀܳ¤·¤Þ¤¹
- reset¤òclk_0¤Îclk_reset¤ËÀܳ¤·¤Þ¤¹
- s1¤ònios2_qsys_0¤Îdata_master¤ËÀܳ¤·¤Þ¤¹
Base¤Ï½Å¤Ê¤é¤Ê¤¤¤è¤¦¤Ë0x00000030¤Ë¤·¤Þ¤·¤¿¡£
Export¤Ç½ÐÎϥݡ¼¥È¤ò»ØÄꤷ¤Æ¤ä¤ê¤Þ¤¹¡£
ÊÔ½¸¸å¤Î²èÌ̤Ǥ¹¡£![]()
(10) ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÄɲà SDRAM Controller
Componet Library¤ÎMemories and Memory Controllers → SDRAM¤«¤éSRAM Controller¤òÄɲä·¤Þ¤¹¡£
ÀìÍÑ¥À¥¤¥¢¥í¥°¤Ç¤Ï¡¢SDRAM¤Î¥Ñ¥é¥á¡¼¥¿¤òÀßÄꤷ¤Þ¤¹¡£
- Presets¤ÏCustom
- ¥Ç¡¼¥¿Éý¤Ï16bit
- Row¥¢¥É¥ì¥¹¥Ó¥Ã¥È¤Ï13bit
- Column¥¢¥É¥ì¥¹¥Ó¥Ã¥È¤Ï9bit![]()
2¥Ú¡¼¥¸ÌܤǤϥ¿¥¤¥ß¥ó¥°¤ÎÀßÄê¤ò¤·¤Þ¤¹¤¬¡¢º£²ó¤Ï²¿¤â¤·¤Ê¤¯¤Æ¤â¤½¤Î¤Þ¤Þư¤¤Þ¤·¤¿¡£ËÜÅö¤Ï¥Ç¡¼¥¿¥·¡¼¥È¤ò¤Á¤ã¤ó¤È¸«¤ÆÀßÄꤷ¤Ê¤±¤ì¤Ð¤¤¤±¤Þ¤»¤ó¡£
Connections¤Ï°Ê²¼¤Î4¤Ä¤Ç¤¹¡£
- clk¤òalt_pll_0¤Îc0¤ËÀܳ¤·¤Þ¤¹
- reset¤òclk_0¤Îclk_reset¤ËÀܳ¤·¤Þ¤¹
- s1¤ònios2_qsys_0¤Îdata_master¤ËÀܳ¤·¤Þ¤¹
- s1¤ònios2_qsys_0¤Îinstruction_master¤ËÀܳ¤·¤Þ¤¹(¾¤È°ã¤¦ÅÀ¤Ç¤¹)¡£
Nios II¤ÏÌ¿Îá(instruction)¤òSDRAM¤«¤éfetch¤¹¤ë¤Î¤Ç¡¢instruction_master¤Ë¤âÀܳ¤·¤Æ¤ä¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£Â¾¤Î¥Ú¥ê¥Õ¥§¥é¥ë¤«¤é¤ÏÌ¿Îá¤òÆÉ¤ß¹þ¤Þ¤Ê¤¤¤Î¤Çinstruction_master¤ËÀܳ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
Base¤Ï0x02000000¤Ë¤·¤Þ¤·¤¿¡£
Export¤Ç½ÐÎϥݡ¼¥È¤ò»ØÄꤷ¤Æ¤ä¤ê¤Þ¤¹¡£
¤è¤¦¤ä¤Ã¤È¥á¥â¥ê¤¬¤Ç¤¤¿¤Î¤Ç¡¢Nios II¤Î¥ê¥»¥Ã¥È¥Ù¥¯¥¿¤ÈÎã³°¥Ù¥¯¥¿¤òÀßÄꤹ¤ë¤³¤È¤Ç¥¨¥é¡¼¤ò¾Ã¤·¤Æ¤ä¤ê¤Þ¤¹¡£![]()
ÊÔ½¸¸å¤Î²èÌ̤Ǥ¹¡£![]()
¥¨¥é¡¼¤â¾Ã¤¨¤Æ¤¤¤Þ¤¹¡£
°Ê¾å¤Ç¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎÄɲäϤª¤·¤Þ¤¤¤Ç¤¹¡£
(11) ¥·¥¹¥Æ¥à¤ÎÀ¸À®
¤Þ¤º¤Ïº£¤Þ¤Ç¤Î·ë²Ì¤ò¥»¡¼¥Ö¤·¤Æ¤ª¤¤Þ¤¹(ctrl+SÅù)¡£
¥·¥¹¥Æ¥à¤ÎÀ¸À®¤ÏGeneration¥¿¥Ö¤ÇGenerate¥Ü¥¿¥ó¤ò²¡¤·¤Þ¤¹¡£![]()
¥·¥¹¥Æ¥àÀ¸À®Ãæ¤Ï¥À¥¤¥¢¥í¥°¤¬½Ð¤Þ¤¹¡£
ÌäÂ꤬¤Ê¤±¤ì¤Ð°Ê²¼¤Î¤è¤¦¤Ê²èÌ̤ˤʤë¤Ï¤º¤Ç¤¹¡£![]()
Warning¤¬2¤Ä¤Ç¤Æ¤¤¤Þ¤¹¡£¤³¤ÎWarning¤Î¾Ã¤·Êý¤Ï¤Þ¤Àʬ¤«¤Ã¤Æ¤¤¤Þ¤»¤ó¡£¤´Â¸ÃΤÎÊý¤Ï¶µ¤¨¤Æ¤¤¤¿¤À¤±¤ë¤È¤¢¤ê¤¬¤¿¤¤¤Ç¤¹¡£
Warning: system: "No matching role found for jtag_uart_0:avalon_jtag_slave:dataavailable (dataavailable)"
Warning: system: "No matching role found for jtag_uart_0:avalon_jtag_slave:readyfordata (readyfordata)"
°Ê¾å¤ÇQsys¤Ç¥·¥¹¥Æ¥à¤òºî¤ë¤³¤È¤¬¤Ç¤¤Þ¤·¤¿¡£
¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î̾Á°¤ÎÊѹ¹¤Ç¤¹¤¬¡¢Ì¾Á°¤Î¾ì½ê¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤«¤éF2¥¡¼¤ò²¡¤·¤ÆÊÔ½¸¤·¤Þ¤¹¡£
4. ÏÀÍý¹çÀ®¤ÎÁ°¤Ë¤ä¤Ã¤Æ¤ª¤¯¤³¤È
¤Þ¤º¤Ï¡¢¤Ç¤¤¢¤¬¤Ã¤¿Qsys¤Î¥Õ¥¡¥¤¥ë¤ò¥×¥í¥¸¥§¥¯¥È¤ËÄɲä·¤Þ¤¹¡£Settings(Assignment¥á¥Ë¥å¡¼→Settings¤â¤·¤¯¤Ï¥Ä¡¼¥ë¥Ð¡¼¤ÎSettings¥Ü¥¿¥ó)¤ÎFiles Category(º¸Â¦¤Î¥Ú¥¤¥ó¤Î¾å¤«¤é2ÈÖÌÜ)¤ÇNiosSystem.qsys¤òÄɲä·¤Þ¤¹(º£²ó¤ÏNiosSystem.qsys¤È¤¤¤¦¥Õ¥¡¥¤¥ë̾¤Ç¥»¡¼¥Ö¤·¤Þ¤·¤¿)¡£¤Ä¤¤¤Ç¤ËDE0_Nano.v¤âÄɲ䷤Ƥª¤¤Þ¤¹¡£![]()
¼¡¤ËQsys¤Î¥â¥¸¥å¡¼¥ë¤ò¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¥á¥¤¥ó¤ÎDE0_Nano.v¤ò½¤Àµ¤·¤Þ¤¹¡£Qsys¤ÎHDL Example¤È¤¤¤¦¥¿¥Ö¤ËQsys¤Î¥â¥¸¥å¡¼¥ë¤Î¸Æ¤Ó½Ð¤·Î㤬¤Ç¤¤Æ¤¤¤Þ¤¹¡£![]()
Copy¥Ü¥¿¥ó¤Ç¥¯¥ê¥Ã¥×¥Ü¡¼¥É¤Ë¥³¥Ô¡¼¤·¤ÆDE0_Nano.v¤ËޤêÉÕ¤±¤Æ¤«¤é½¤Àµ¤·¤Þ¤¹¡£°Ê²¼¤¬½¤Àµ·ë²Ì¤Ç¤¹¡£
//=======================================================
// Structural coding
//=======================================================
NiosSystem u0 (
.clk_clk (CLOCK_50), // clk.clk
.reset_reset_n (KEY[0]), // reset.reset_n
.altpll_0_areset_conduit_export (1'b0), // altpll_0_areset_conduit.export
.altpll_0_locked_conduit_export (), // altpll_0_locked_conduit.export
.altpll_0_phasedone_conduit_export (), // altpll_0_phasedone_conduit.export
.altpll_0_c1_clk (DRAM_CLK), // altpll_0_c1.clk
.pio_0_external_connection_export (LED), // pio_0_external_connection.export
.sdram_0_wire_addr (DRAM_ADDR), // sdram_0_wire.addr
.sdram_0_wire_ba (DRAM_BA), // .ba
.sdram_0_wire_cas_n (DRAM_CAS_N), // .cas_n
.sdram_0_wire_cke (DRAM_CKE), // .cke
.sdram_0_wire_cs_n (DRAM_CS_N), // .cs_n
.sdram_0_wire_dq (DRAM_DQ), // .dq
.sdram_0_wire_dqm (DRAM_DQM), // .dqm
.sdram_0_wire_ras_n (DRAM_RAS_N), // .ras_n
.sdram_0_wire_we_n (DRAM_WE_N) // .we_n
);
°Ê¾å¤ÇÏÀÍý¹çÀ®Á°¤Ë¤ä¤Ã¤Æ¤ª¤¯¤³¤È¤Ï´°Î»¤Ç¤¹¡£¸å¤ÏÏÀÍý¹çÀ®¤·¤Æ¤«¤é¡¢¤Ç¤¤¢¤¬¤Ã¤¿DE0_Nano.sof¤òDE0 Nano¤Ë½ñ¤¹þ¤ó¤Ç¤ä¤ê¤Þ¤¹¡£
°ì¤ÄÃí°ÕÅÀ¤È¤·¤Æ¤Ïsof¥Õ¥¡¥¤¥ë¤ò½ñ¤¹þ¤ó¤À¸å¤Çprogrammer¤ò½ªÎ»¤·¤Æ¤ª¤«¤Ê¤¤¤È¡¢programmer¤¬USB Blaster¤ò¤Ä¤«¤ó¤À¤Þ¤Þ¤Ë¤Ê¤Ã¤Æ¡¢Nios II Software Build Tools for Eclipse¤¬USB Blaster¤ò¸«¤Ä¤±¤é¤ì¤Ê¤¯¤Ê¤ë¤³¤È¤Ç¤¹¡£programmer¤Ï½ñ¤¹þ¤ß¤¬½ª¤ï¤Ã¤¿¤é½ªÎ»¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
7. ¥½¥Õ¥È³«È¯
Nios II Software Build Tools for Eclipse¤òΩ¤Á¾å¤²¤Þ¤¹¡£µ¯Æ°¤Ï¤¤¤¯¤Ä¤«¤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£windows¤Î¥¹¥¿¡¼¥È¥á¥Ë¥å¡¼¡¢¥¤¥ó¥¹¥È¡¼¥ë»þ¤Ëºî¤é¤ì¤ë¥Æ¥¹¥¯¥È¥Ã¥×¤Î¥·¥ç¡¼¥È¥«¥Ã¥È¡¢Quartus II¤ÎTools¥á¥Ë¥å¡¼¡¢Qsys¤ÎTools¥á¥Ë¥å¡¼Åù¤«¤éµ¯Æ°¤Ç¤¤Þ¤¹¡£
Eclipse¤Ê¤Î¤ÇºÇ½é¤Ïworkspace¤Î¾ì½ê¤òʹ¤¤¤Æ¤¤Þ¤¹¡£¾ì½ê¤Ï¡¢º£²ó¤Î¥×¥í¥¸¥§¥¯¥È¤Î°ì³¬Áز¼¤Ëworkspace¤È¤¤¤¦¥Õ¥©¥ë¥À¤ò·¡¤Ã¤Æ¡¢¤½¤³¤Ë¤·¤Þ¤·¤¿¡£9.0¤Îº¢¤Ï¥×¥í¥¸¥§¥¯¥È¤Î¥Õ¥©¥ë¥À¤½¤Î¤â¤Î¤Ë¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤·¤¿¤¬¡¢10.0°Ê¹ß¤Ï°ì³¬Áز¼¤Ë¥Õ¥©¥ë¥À¤òºî¤é¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
File¥á¥Ë¥å¡¼ → New → Nios II Application and BSP from Template¤òÁª¤Ö¤È¼¡¤Î¥À¥¤¥¢¥í¥°¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£![]()
- SOPC Information File NameÍó¡£¼«Ê¬¤Î¥×¥í¥¸¥§¥¯¥È¥Õ¥©¥ë¥À¤Ë¤Ç¤¤Æ¤¤¤ëNiosSystem.sopicinfo¤òÁª¤Ó¤Þ¤¹
- CPU name¤Ïsopcinfo¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß¼è¤é¤ì¤Æ¼«Æ°¤ÇÆþÎϤµ¤ì¤Þ¤¹¡£
- Project name¤Ïº£²ó¤ÏHelloSmall¤Ë¤·¤Þ¤·¤¿¡£
- Template¤ÏHello World Small¤Ë¤·¤Þ¤·¤¿¡£
¤³¤Î¤Þ¤Þ¼Â¹Ô¤¹¤ì¤ÐHello from Nios II!¤È¤¤¤¦¥á¥Ã¥»¡¼¥¸¤¬¸«¤ì¤Þ¤¹¡£º£²ó¤ÏLED¥Á¥«¥Á¥«¤â¤¹¤ë¤Î¤Ç¥½¡¼¥¹(hello_world_small.c¤ò½¤Àµ¤·¤Þ¤¹¡£
#include <stdint.h>
#include "sys/alt_stdio.h"
#include "system.h"
#define led (*(uint8_t *)PIO_0_BASE)
int main()
{
volatile uint32_t t;
alt_putstr("Hello from Nios II!\n");
led = 0x00;
while (1){
for(t = 0; t < 20000; t++) ;
led++;
}
return 0;
}
½¤Àµ¤·¤¿¤éctrl+S¤Ç¥Õ¥¡¥¤¥ë¤ò¥»¡¼¥Ö¤·¤Æ¤ª¤¤Þ¤¹¡£
pio_0¤ÎI/O¥¢¥É¥ì¥¹¤ÏQsys¤Ç¤Ï0x30ÈÖÃϤˤ·¤Þ¤·¤¿¡£system.h¤ÎÃæ¤Ç¤ÏPIO_0_BASE¤¬0x30¤Ç#define¤µ¤ì¤Æ¤¤¤Þ¤¹¡£Qsys¤ÎÃæ¤Ç¥â¥¸¥å¡¼¥ë̾¤òpio_0¤Ç¤Ê¤¯¤¿¤È¤¨¤ÐLED¤È¤«¤Ë¤·¤Æ¤ª¤¯¤Èsystem.h¤ÎÄêµÁ¤âPIO_0_BASE¤Ç¤Ê¤¯LED_BASE¤È¤¤¤¦Ì¾Á°¤Ë¤Ê¤ê¤Þ¤¹¡£PIO´ØÏ¢¤Ï¥½¥Õ¥È»ÈÍÑ»þ¤Ë¤â±Æ¶Á¤¬¤¢¤ë¤Î¤Ç¡¢¤Á¤ã¤ó¤È̾Á°¤òÄêµÁ¤·¤Æ¤ª¤¯Êý¤¬¤¤¤¤¤Ç¤¹¡£
8. ¥×¥í¥°¥é¥à¤Î¼Â¹Ô
Eclipse¤ÎProject Explorer¤Ç¥×¥í¥¸¥§¥¯¥È̾(º£²ó¤ÏHelloSmall)¤ò¥¯¥ê¥Ã¥¯¤·¤Æ³¥¿§¤Ë¤·¤Æ¤«¤é¡¢Run¥Ü¥¿¥ó¤ò²¡¤¹¤ÈRun As¥À¥¤¥¢¥í¥°¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£![]()
Nios II Hardware¤òÁª¤ó¤Ç¤«¤éOK¤ò²¡¤¹¤È¼Â¹Ô³«»Ï¤Ç¤¹¡£![]()
½é¤á¤Æ¤Î¼Â¹Ô¤Î¤È¤¤ä²¿¤«¥¨¥é¡¼¤¬¤¢¤ë¤È¤¤ÏRun Configuration¤Î²èÌ̤¬½Ð¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£Target Connection¤Î¥¿¥Ö¤ÇRefresh Connections¤Î¥Ü¥¿¥ó¤ò²¡¤¹¤È¥¨¥é¡¼¤¬¼è¤ì¤ÆÄÌ¿®²Äǽ¤Ë¤Ê¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£Refresh Connections¥Ü¥¿¥ó¤Ï¡¢FPGA¥Ü¡¼¥É¤Ë½ñ¤¹þ¤Þ¤ì¤Æ¤¤¤ëNios II¤Î¥·¥¹¥Æ¥à¤ÈÄÌ¿®¤·¤ÆSystem ID¤Î¾È¹ç¤ò¹Ô¤¤¤Þ¤¹¡£
²¿¤é¤«¤ÎÍýͳ¤Ç¥·¥¹¥Æ¥à¤¬»à¤ó¤Ç¤¤¤¿¤ê¡¢programmer¤¬JTAG¤ò¤Ä¤«¤ó¤Ç¤¤¤ÆÄÌ¿®¤Ç¤¤Ê¤«¤Ã¤¿¤ê¤È¤¤¤Ã¤¿¤È¤¤ÏRefresh Connections¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤âÉü³è¤·¤Þ¤»¤ó¡£
¤Þ¤¿¡¢Qsys¤Ç¥·¥¹¥Æ¥à¤Î½¤Àµ¤ò¹Ô¤Ã¤ÆGenerate¤ò¤ä¤êľ¤¹¤È¥¿¥¤¥à¥¹¥¿¥ó¥×¤¬°ìÃפ·¤Ê¤¯¤Ê¤ë¤Î¤ÇRefresh Connections¤Ç¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£¤³¤Î¾ì¹ç¤ÏGenerate BSP¤ò¹Ô¤Ã¤ÆBSP¤òºî¤êľ¤·¤Æ¤ä¤ë¤Èľ¤ê¤Þ¤¹¡£Generate BSP¤ÏBSP Editor¤ÎÃæ¤ä¡¢Project Explorer¤Îbsp¥×¥í¥¸¥§¥¯¥È̾¤ò±¦¥¯¥ê¥Ã¥¯¤·¤Æ½Ð¤ë¥á¥Ë¥å¡¼¤ÎNios II¤Ë¤¢¤ê¤Þ¤¹¡£BSP Editor¤ÏNios II¥á¥Ë¥å¡¼Åù¤Ë¤¢¤ê¤Þ¤¹¡£
¤È¤¤¤¦¤ï¤±¤Ç¡¢¤ä¤¿¤éŤ¤µ»ö¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£´Ö°ã¤¤¤ä¡¢¤³¤³¤Ï¤³¤¦¤·¤¿Êý¤¬¤¤¤¤Åù¥³¥á¥ó¥È¤ò失¤ë¤È¤¢¤ê¤¬¤¿¤¤¤Ç¤¹¡£ÆÃ¤ËSDRAM¤Ë´Ø¤·¤Æ¤Ï¥Ç¡¼¥¿¥·¡¼¥È¤â¤í¤¯¤Ë¸«¤º¤Ë¤ä¤Ã¤Æ¤ß¤¿¤é¤¿¤Þ¤¿¤Þư¤¤¤Æ¤¤¤ë¤È¤¤¤¦¾õ¶·¤Ê¤Î¤Ç¡¢¤Á¤ã¤ó¤È¤·¤¿¥Ñ¥é¥á¡¼¥¿¤Ï¤³¤¦¤À¡¢¤È¤¤¤¦¤Î¤ò¶µ¤¨¤Æ¤¤¤¿¤À¤±¤ë¤È¤¢¤ê¤¬¤¿¤¤¤Ç¤¹¡£











Altera¤ÎAppNote
http://www.altera.co.jp/literature/an/an632.pdf
¤ò¸«¤ë¤È¡¢°ÊÁ°¤ÎAvalon-MM¤Ë¤Ï¤¢¤Ã¤¿¥Õ¥í¡¼À©¸æ´ØÏ¢¤Î¿®¹æ¡¢readyfordata¤Èdataavailable¤¬Ìµ¤¯¤Ê¤Ã¤¿¤ß¤¿¤¤¤Ç¤¹¡£Âå¤ï¤ê¤ËAvalon-ST¤ò»È¤¦¤è¤¦¤Ë¡¢¤È¤¤¤¦´¶¤¸¤Ç¤¹¤Í¡£
IP¤Ë¤è¤Ã¤Æ¤Ï¤³¤ÎÊѹ¹¤¬Äɤ¤¤Ä¤¤¤Æ¤¤¤Ê¤¤¤Î¤Ç¤·¤ç¤¦¡£»È¤Ã¤Æ¤¤¤Ê¤¯¤Æ¤â¿®¹æ¤À¤±¤ÏÀë¸À¤·¤Æ¤ë¤È¤«¡¢¤è¤¯¸«¤«¤±¤Þ¤¹¡£
º£¤Î¤È¤³¤í̵»ë¤ÇÎɤµ¤½¤¦¤Ç¤¹¡£
ÃúÇ«¤Ê²òÀâ¤Èµ®½Å¤Ê¾ðÊ󤢤꤬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£º£¸å¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë´üÂԤǤ¹¤Í¡£SOPC builder¤Îº¢¤Ï¤È¤Ë¤«¤¯warning¤ò¾Ã¤µ¤Ê¤¤¤È¤Ò¤É¤¤Ìܤˤ¢¤Ã¤Æ¤¤¤¿¤Î¤Ç¶²ÉݾɤˤʤäƤ¤¤Þ¤¹^^
£²ÅÀ¶µ¤¨¤Æ²¼¤µ¤¤¡£
£±¡¥assign led=switch;¤ÇSW0¤ÇLED60¤òON/OFF¡¡½ÐÍè¤ë»öȽ¤ê¤Þ¤·¤¿¤¬¡¢
A.LED60¤ò100ms¤ÇON/OFF¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢¤É¤Î¡¡ÍͤËCodeing¤¹¤ë¤Î¤Ç¤·¤ç¤¦¤«¡©
¡¡¡Êsoft¤ÎWait¤òLogic¤ÇºîÀ®¤¹¤ëɬÍפ¬Í¤ë¤È
¡¡¡¡»×¤¦¤Î¤Ç¤¹¤¬¡©¡Ë
B.module¡¡endmodule´Ö¤Ï¥ë¡Ý¥×¤·¤Þ¤¹¤«¡©
£²¡¥ÌÜɸ¤Ï16£ø2¤ÎCharctorLCDɽ¼¨¤Ç¤¹¤¬
¡¡²¼µ»²¹ÍURL¤ò¸«¤Ä¤±¤Þ¤·¤¿¡£
¡¡¤³¤ì¤Ï¡¢VerilogHDLµ½Ò¤Ê¤Î¤Ç¤·¤ç¤¦¤«¡©
http://www.fpga4fun.com/TextLCDmodule.html
1.¤ÎÊý¤Ï´ðËÜÃæ¤Î´ðËܤǤ¹¡£¤¿¤Ö¤óõ¤»¤Ð¸«¤Ä¤«¤ë¤È»×¤¤¤Þ¤¹¡£¥Ò¥ó¥È¤Ï¾õÂÖ¤òµ²±¤¹¤ë¤¿¤á¤Ë¤Ï¥Õ¥ê¥Ã¥×¥Õ¥í¥Ã¥×¤ò»È¤¦¤¬¡¢verilog¤Ç¥Õ¥ê¥Ã¥×¥Õ¥í¥Ã¥×¤òµ½Ò¤¹¤ë¤Ë¤Ï¤É¤¦½ñ¤±¤Ð¤è¤¤¤«¡¢¤È¤¤¤Ã¤¿¤¢¤¿¤ê¤Ë¤Ê¤ê¤Þ¤¹¡£
2.¤Ï¤Á¤é¤Ã¤È¸«¤Æ¤ß¤Þ¤·¤¿¤¬¡¢verilog¤Ïverilog¤Ê¤Î¤Ç¤¹¤¬¡¢PC¤«¤é¼õ¤±¼è¤Ã¤¿¥Ç¡¼¥¿¤òLCD¤Ë¿â¤ìή¤·¤Æ¤¤¤ë¤À¤±¤Ç¤¹¡£¥¿¥¤¥ß¥ó¥°¤ò¼è¤Ã¤Æ½é´ü²½¤·¤¿¤ê¤È¤«¤ÏÁ´ÉôPC¦¤¬¤ä¤Ã¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¤·¤¿¡£
¤ªÊÖ»ö¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
verilog¾¯¤·²ò¤«¤ê¤«¤±¤Æ¤¤Þ¤·¤¿¡£
º£¤Á¤ç¤¦¤É¡¢FlipFlop¤¬Æ°ºî¤·¤Þ¤·¤¿¡£Timer
¡ÊÈ󯱴ü²óÏ©¡¢Æ±´ü²óÏ©¡Ë¤ÎProgram¤òÆþÎϤ·¤Þ¤·¤¿¤¬¡¢Æ°ºî¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£»ä¤Ï¡¢Quartus¶
11.0sp1¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¤¬¡¢Ãø¼Ô¤Ï10.0¤ò»ÈÍѤ·¤Æ¤¤¤ë¡©¤Î¤«¡¢Error¤¬½Ð¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
ÊÙ¶¯¤·¤¿¤Ð¤«¤ê¤Ê¤Î¤ÇError¤Î³°¤·Êý¤Î¸¡Æ¤¤¬ÉÕ¤¤Þ¤»¤ó¡£±Ñ¸ì¤ÎÊÙ¶¯¤è¤ê¤â¡¢µ½Ò¤Î´ðËܤò³Ø¤ÖɬÍפ¬Í¤ë¤È¹Í¤¨¤Æ¤¤¤Þ¤¹¡£
optimize¤µ¤ó¤«¤éEPM570T100C6¤ò¹ØÆþ¤·¤Æ¤¢¤ê
Sample¤ÇLED¤ÎON/OFF¤¬ÎãÂ꤬ÁȤó¤Çͤê¤Þ¤·¤¿
FlipFlop¤«Counter¤¬ÁȤó¤Çͤë¤ß¤¿¤¤¤Ç¤·¤¿¡£¤¸¤Ã¤¯¤êÊÙ¶¯¤·¤Æ¤ß¤ë¤Ä¤â¤ê¤Ç¤¹¡£
¤´ÊÖ»ö¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
DE0-Nano¤ÈQsys¤ò»È¤¤»Ï¤á¤¿¤Ð¤«¤ê¤Ç¡¤ÃúÇ«¤Ê²òÀ⤬¤È¤Æ¤â»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡¥
¼ê½çÄ̤ê¤Ë¿Ê¤á¤Æ¤¤¤Ã¤¿ºÝ¤Ëµ¤¤Å¤¤¤¿¤³¤È¤¬2ÅÀ¤Û¤É¤¢¤ê¤Þ¤¹¡¥
¥Í¥Ã¥È¤ÇÄ´¤Ù¤Æ²ò·è¤·¤Þ¤·¤¿¤¬¡¤º£¸å»²¾È¤µ¤ì¤ëÊý¤Î¤¿¤á¤Ë¡¤¾ðÊó¤ò»Ä¤·¤Æ¤ª¤¤Þ¤¹¡¥
£±¡¥(8)¤ÎJTAG UARTÄɲäκݤˡ¤IRQ¤Î¥³¥é¥à¤Ç¡¤Nios II¤ÈÀܳ¤·¡¤IRQ¤ÎÃͤòÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¤«¤È»×¤¤¤Þ¤¹¡¥
£²¡¥(10)¤ÎSDRAM¤ÎÀâÌÀ¤Ç¡¤Nios II¤Î¥ê¥»¥Ã¥È¥Ù¥¯¥¿¤ÈÎã³°¥Ù¥¯¥¿¤òÀßÄꤹ¤ë²èÁü¤¬¡¤SDRAM¥Ñ¥é¥á¡¼¥¿ÀßÄê¤Î¤â¤Î¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥
¼ÂºÝ¤Ë¤Ï¡¤nios2_qsys_0¤ò³«¤¡¤vector memory¤ËSDRAM¤òÁª¤Ö¤³¤È¤Ë¤Ê¤ë¤«¤È»×¤¤¤Þ¤¹¡¥
¤ª¤«¤²¤µ¤Þ¤Ç¡¤Ìµ»ö¤ËLED¤ÎÅÀÌǤޤǤ¿¤É¤ê¤Ä¤±¤Þ¤·¤¿¡¥
¼¡¤Ï¡¤¼«Ê¬¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ø¤Î¥¢¥¯¥»¥¹¤Ë¥Á¥ã¥ì¥ó¥¸¤·¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡¥
¥Õ¥©¥í¡¼¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£¤È¤Æ¤â½õ¤«¤ê¤Þ¤¹¡£ÆÃ¤ËJTAG UART¤Î·ï¤ÏÁ´¤¯µ¤¤Å¤¤¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£
µ»½ÑɾÏÀ¼Ò¤Î¡ÖFPGA¥Ü¡¼¥É¤Ç³Ø¤ÖÁȹþ¤ß¥·¥¹¥Æ¥à³«È¯ÆþÌç¡¡¡ÁAlteraÊÔ¡Á¡×¤È¤¤¤¦ËܤËQsys¤ÎÏ䬤Á¤é¤Ã¤ÈºÜ¤Ã¤Æ¤¤¤¿¤ê¤·¤Þ¤¹¡£
http://gihyo.jp/book/2011/978-4-7741-4839-7
º£¸å¤È¤â¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£