{"id":313,"date":"2025-04-26T21:46:53","date_gmt":"2025-04-27T01:46:53","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/?p=313"},"modified":"2025-04-26T23:38:52","modified_gmt":"2025-04-27T03:38:52","slug":"team-status-report-for-4-26-25","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/2025\/04\/26\/team-status-report-for-4-26-25\/","title":{"rendered":"Team Status Report for 4\/26\/25"},"content":{"rendered":"<p><b>Progress:<\/b><\/p>\n<ul>\n<li>Tetris is playable, with fully working controller inputs, but runs at ~4* speed<\/li>\n<li>Found a timer initialization and incrementation bug.<\/li>\n<\/ul>\n<p><b>Risks and Risk Management:<\/b><\/p>\n<div>\n<ul>\n<li>FPGA debugging is a very &#8220;guess and hope for the best&#8221; process, even with signal-tap.<\/li>\n<\/ul>\n<p><b>Tests:<\/b><\/p>\n<ul>\n<li>CPU\n<ul>\n<li>Handmade test for every Gameboy instruction<\/li>\n<li>Blarrg cpu-instrs tests run on CPU.\n<ul>\n<li>Fixed some misunderstandings of Gameboy specification details.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>PPU\n<ul>\n<li>Basic static frames from Tetris\/Dr. Mario with fixed tile\/sprite preloaded memory<\/li>\n<li>Dmg-Acid tests on Simulation<\/li>\n<li>Basic static frames from MMU\/CPU\/PPU integration<\/li>\n<\/ul>\n<\/li>\n<li>MMU\n<ul>\n<li>Basic testbench checks on synchronous cycle BRAM accesses (R\/W)<\/li>\n<li>Synchronous cycle I\/O registers (PPU\/APU\/Interrupt) (R\/W)<\/li>\n<li>Basic timer register checks<\/li>\n<\/ul>\n<\/li>\n<li>Simulation\n<ul>\n<li>Blarg\u00a0cpu-instrs tests.\n<ul>\n<li>Many MMU bugs fixed<\/li>\n<\/ul>\n<\/li>\n<li>1st pre-loaded frame of Tetris test.<\/li>\n<li>1st Tetris frame generation test.\n<ul>\n<li>3 clocks were added to the design<\/li>\n<li>CPU IME (interrupt enable) register misunderstanding fixed.<\/li>\n<li>Many MMU bugs fixed<\/li>\n<\/ul>\n<\/li>\n<li>1st, 2nd, 3rd frame + controller input test on Dr. Mario.\n<ul>\n<li>Fixed PPU palette issue<\/li>\n<li>Joycon register spec misunderstanding fixed.<\/li>\n<li>Many MMU bugs fixed<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Physical\n<ul>\n<li>Basic controller button to LED test<\/li>\n<li>DMG-Acid test rendering\n<ul>\n<li>Fixed jagged clock issues (ensured that clocks were derived off of others for adequate timing)<\/li>\n<\/ul>\n<\/li>\n<li>&#8220;Play&#8221; Dr. Mario.\n<ul>\n<li>Synthesis results in non-deterministic behavior.<\/li>\n<\/ul>\n<\/li>\n<li>Play Tetris\n<ul>\n<li>Joycon issue determined via patterns and fixed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Progress: Tetris is playable, with fully working controller inputs, but runs at ~4* speed Found a timer initialization and incrementation bug. Risks and Risk Management: FPGA debugging is a very &#8220;guess and hope for the best&#8221; process, even with signal-tap. Tests: CPU Handmade test for every Gameboy instruction Blarrg cpu-instrs tests run on CPU. Fixed &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/2025\/04\/26\/team-status-report-for-4-26-25\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Team Status Report for 4\/26\/25&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1004,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8],"tags":[13],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/posts\/313"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/users\/1004"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/comments?post=313"}],"version-history":[{"count":7,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/posts\/313\/revisions"}],"predecessor-version":[{"id":326,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/posts\/313\/revisions\/326"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/media?parent=313"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/categories?post=313"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s25-teamb6\/wp-json\/wp\/v2\/tags?post=313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}