ãã¥ã¼ãã³ãã¼ã¿ https://www.hdl.co.jp/home.htmlã®ãã¦ã³ãã¼ãã±ã¼ãã«èªä½ããã(BLKIT) ãè³¼å ¥ãã¦çµã¿ç«ã¦ããã¦ã³ãã¼ãã±ã¼ãã«ã®åä½ç¢ºèªã®ãã 1chipMSX ã®FPGAãæ¸ãæãã¦ã¿ã¾ããã1chipMSXã®ã³ãã¯ã¿ã¨ã±ã¼ãã«ã®æ¥ç¶ã®åããåãããªãã£ãã®ã§ãããä¸ã®åçã®åãã«æ¥ç¶ãã¦æ£è§£ã§ããã
ãã¦ã³ãã¼ãã±ã¼ãã«ã®åä½ç¢ºèªã®ããVHDLã®ã½ã¼ã¹ãæ¸ãæãã¦åä½ãå¤ããã確èªããå¿ è¦ãããã¾ããåè·¯å³ã¨VHDLã®ã½ã¼ã¹ãè¦æ¯ã¹ã¦LEDããããã®ãç°¡åã§å®å ¨ãããªã®ã§ãLEDã®ç¹æ» ãï¼ã¨ããåãããXã®ãããªLEDã®ç¹æ» ã交差ããããã«å¤æ´ãã¾ããã
ESEMSX3\pld\src\emsx_top.vhd ã®810è¡ç®ãã次ã®ããã«å¤æ´ãã¦ãQuartusII 6.0sp1 ã§ã³ã³ãã¤ã«ãã¾ããã( ã³ã³ãã¤ã«æé )
if (cnt = "000000000000000000000") then -- 21.48MHz / 2^21(approx:2M) => 10Hz case seq is when "0010" => pLed <= "1Z0000Z1"; iDipLed(2) <= not pDip(2); when "0011" => pLed <= "Z100001Z"; iDipLed(1) <= not pDip(1); when "0100" => pLed <= "0Z1001Z0"; iDipLed(0) <= not pDip(0); when "0101" => pLed <= "00Z11Z00"; iDipLed(1) <= not pDip(1); when "0110" => pLed <= "00011000"; iDipLed(2) <= not pDip(2); when "0111" => pLed <= "001ZZ100"; iDipLed(3) <= not pDip(3); when "1000" => pLed <= "01Z00Z10"; iDipLed(4) <= not pDip(4); when "1001" => pLed <= "1Z0000Z1"; iDipLed(5) <= not pDip(5); when "1010" => pLed <= "Z100001Z"; iDipLed(6) <= not pDip(6); when "1011" => pLed <= "0Z1001Z0"; iDipLed(7) <= not pDip(7); when "1100" => pLed <= "00Z11Z00"; iDipLed(6) <= not pDip(6); when "1101" => pLed <= "00011000"; iDipLed(5) <= not pDip(5); when "1110" => pLed <= "001ZZ100"; iDipLed(4) <= not pDip(4); when "1111" => pLed <= "01Z00Z10"; iDipLed(3) <= not pDip(3); when others => pLed <= "ZZZZZZZZ"; iDipLed <= not pDip ; end case; end if;
+------------------------------------------------------------------------+ ; Flow Summary ; +-------------------------+----------------------------------------------+ ; Flow Status ; Successful - Wed Dec 13 22:10:17 2006 ; ; Quartus II Version ; 6.0 Build 202 06/20/2006 SP 1 SJ Web Edition ; ; Revision Name ; emsx_top ; ; Top-level Entity Name ; emsx_top ; ; Family ; Cyclone ; ; Device ; EP1C12Q240C8 ; ; Timing Models ; Final ; ; Met timing requirements ; No ; ; Total logic elements ; 10,029 / 12,060 ( 83 % ) ; ; Total pins ; 171 / 173 ( 99 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 73,966 / 239,616 ( 31 % ) ; ; Total PLLs ; 1 / 2 ( 50 % ) ; +-------------------------+----------------------------------------------+ +-------------------------------------+ ; Flow Elapsed Time ; +----------------------+--------------+ ; Module Name ; Elapsed Time ; +----------------------+--------------+ ; Analysis & Synthesis ; 00:16:07 ; ; Fitter ; 00:09:07 ; ; Assembler ; 00:00:14 ; ; Timing Analyzer ; 00:01:35 ; ; Total ; 00:27:03 ; +----------------------+--------------+
Total logic elements ã10026ãã10029ã«å¢ãã¦ãã¾ããã³ã³ãã¤ã«æéãå以ä¸ãããã¾ãããä¸æã
1chipMSXã«ãã¦ã³ãã¼ãã±ã¼ãã«çµç±ã§æ¸ãæãã¦ãç¡äºã«å¤æ´ããéãã«LEDãç¹æ» ãã¡ããã¨ãã³ãä»ãã§ãã¦ããããã§ããããã§å®å¿ãã¦FPGAã®æ¸ãæããã§ãã¾ããVHDLã¯ããããåå¼·ãã¾ãã
ã¨æã£ããããããªåºåã表示ãããªããªã£ã¦ãã¾ãã¾ããããã¦ã³ãã¼ãã±ã¼ãã«ã§CD-ROM ã® emsx_top.pof ãæ¸ãæ»ãã¦å¾©æ´»ããã¯ããããåãããªãã¾ã¾VHDLã触ãã«ã¯ãã¦ã³ãã¼ãã±ã¼ãã«å¿ é ã§ããã
ã¨æã£ãããBIOSãæ¸ãè¾¼ãã§ããªããã¨ã«æ°ã¥ãã¾ãããBIOSãæ¸ãããåé¡ãªãåä½ãã¾ããã
if (cnt = "000000000000000000000") then -- 21.48MHz / 2^21(approx:2M) => 10Hz case seq is when "0010" => pLed <= "000000Z1"; iDipLed(2) <= not pDip(2); when "0011" => pLed <= "0000001Z"; iDipLed(1) <= not pDip(1); when "0100" => pLed <= "000001Z0"; iDipLed(0) <= not pDip(0); when "0101" => pLed <= "00001Z00"; iDipLed(1) <= not pDip(1); when "0110" => pLed <= "0001Z000"; iDipLed(2) <= not pDip(2); when "0111" => pLed <= "001Z0000"; iDipLed(3) <= not pDip(3); when "1000" => pLed <= "01Z00000"; iDipLed(4) <= not pDip(4); when "1001" => pLed <= "1Z000000"; iDipLed(5) <= not pDip(5); when "1010" => pLed <= "Z1000000"; iDipLed(6) <= not pDip(6); when "1011" => pLed <= "0Z100000"; iDipLed(7) <= not pDip(7); when "1100" => pLed <= "00Z10000"; iDipLed(6) <= not pDip(6); when "1101" => pLed <= "000Z1000"; iDipLed(5) <= not pDip(5); when "1110" => pLed <= "0000Z100"; iDipLed(4) <= not pDip(4); when "1111" => pLed <= "00000Z10"; iDipLed(3) <= not pDip(3); when others => pLed <= "ZZZZZZZZ"; iDipLed <= not pDip ; end case; end if;
+------------------------------------------------------------------------+ ; Flow Summary ; +-------------------------+----------------------------------------------+ ; Flow Status ; Successful - Sun Dec 10 16:42:00 2006 ; ; Quartus II Version ; 6.0 Build 202 06/20/2006 SP 1 SJ Web Edition ; ; Revision Name ; emsx_top ; ; Top-level Entity Name ; emsx_top ; ; Family ; Cyclone ; ; Device ; EP1C12Q240C8 ; ; Timing Models ; Final ; ; Met timing requirements ; No ; ; Total logic elements ; 10,026 / 12,060 ( 83 % ) ; ; Total pins ; 171 / 173 ( 99 % ) ; ; Total virtual pins ; 0 ; ; Total memory bits ; 74,014 / 239,616 ( 31 % ) ; ; Total PLLs ; 1 / 2 ( 50 % ) ; +-------------------------+----------------------------------------------+ +-------------------------------------+ ; Flow Elapsed Time ; +----------------------+--------------+ ; Module Name ; Elapsed Time ; +----------------------+--------------+ ; Analysis & Synthesis ; 00:06:50 ; ; Fitter ; 00:03:53 ; ; Assembler ; 00:00:06 ; ; Timing Analyzer ; 00:00:40 ; ; Total ; 00:11:29 ; +----------------------+--------------+