{"id":120,"date":"2021-04-03T21:46:10","date_gmt":"2021-04-04T02:46:10","guid":{"rendered":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/?p=120"},"modified":"2021-04-03T21:46:10","modified_gmt":"2021-04-04T02:46:10","slug":"andys-status-report-for-04-03-2021","status":"publish","type":"post","link":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/2021\/04\/03\/andys-status-report-for-04-03-2021\/","title":{"rendered":"Andy&#8217;s Status Report for 04\/03\/2021"},"content":{"rendered":"<p>This week, I finished up the controller module (which now fully works) and made significant progress toward a finished audio implementation. Work on the sprite engine hasn\u2019t begun yet, so we are still behind (arguably more so), but we\u2019ve both increased the amount of time we\u2019re spending on this project. All things considered, I\u2019d still say this week went well and I\u2019m optimistic that we\u2019ll be able to catch up.<\/p>\n<p>As I projected in my previous report, I was able to finish the controller kernel module over that weekend. The changes necessary to get the controller module were largely uninteresting, I simply had to build a new linux kernel and change the one the provided linux image used. Then, there were some bug fixes for the kernel module and the user space library functions. All of this was completed over the weekend, and the controller library works as intended.<\/p>\n<p>For audio, so far the actual device is fully described in verilog and has undergone a reasonable amount of testing. I was successfully able to play a 1KHz sine wave using the APU. With the hardware itself working, my main focus now is on bringing up the software side of the apu. The communication between the CPU and the APU is setup, but untested. Around half the kernel module is done, and the user space portion of the APU library is specified but unwritten. All told, I\u2019ve got ~400 lines of C code to look forward to, but I\u2019m no stranger to that :). Hopefully, I can get most of it done over the weekend and dedicate some real time to bringing up the sprite engine next week. I\u2019ve got some grading work to do for OS over the weekend, though, so that will probably eat up quite a bit of my time, unfortunately.<\/p>\n<p>Don\u2019t have anything super interesting to share this week. Next week, I should have a video of a working audio demo (that isn\u2019t just a test sine wave). For now, here are the verilog files for the APU. Note that I wound up not using their premade I2S module because it was trash. I threw together something with a much nicer interface, instead.<\/p>\n<p>APU + I2S files: https:\/\/drive.google.com\/file\/d\/14EN3CveBKY3m0okfWgywr5-sRoCuts16\/view?usp=sharing<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week, I finished up the controller module (which now fully works) and made significant progress toward a finished audio implementation. Work on the sprite engine hasn\u2019t begun yet, so we are still behind (arguably more so), but we\u2019ve both increased the amount of time we\u2019re spending on this project. All things considered, I\u2019d still &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/2021\/04\/03\/andys-status-report-for-04-03-2021\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Andy&#8217;s Status Report for 04\/03\/2021&#8221;<\/span><\/a><\/p>\n","protected":false},"author":411,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[4],"_links":{"self":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/posts\/120"}],"collection":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/users\/411"}],"replies":[{"embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/comments?post=120"}],"version-history":[{"count":1,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/posts\/120\/revisions"}],"predecessor-version":[{"id":121,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/posts\/120\/revisions\/121"}],"wp:attachment":[{"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/media?parent=120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/categories?post=120"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/course.ece.cmu.edu\/~ece500\/projects\/s21-teamc1\/wp-json\/wp\/v2\/tags?post=120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}