Over the course of five weeks, I coded a CPU along with one other partner in Verilog. This process required basic knowledge of Verilog, intricate knowledge of CPUs and computer architecture, organization, and meticulous attention to detail. I began this process by first ensuring I understood every detail of the computer architecture -- every input and output and calculation in between, as well as the reasons for certain optimizations or calculations. Then I split the task of coding certain modules between my partner and me. As we coded a module in the architecture, we also coded its corresponding test unit. Before module integration, I drew a diagram of the architecture and connected each input and output to its module and carefully labeled each. This allowed me to keep track of each wire and bus as I linked modules together. As I linked modules, my partner and I performed tests at each buffer, then one final test after all modules were linked. This process followed agile design methods on a small scale, ensuring requirements were accrued, weekly meetings were held, tasks were drawn from a backlog, and testing began with units and finished with integration. This project demonstrates an acute understanding of computer architecture, careful attention to detail, communication, teamwork, and project management. In addition, this project highlighted the importance of following code from surface level to bare bones to understand why certain methods may be preferable. This principle follows me in all the work I perform, understanding decisions from a big picture and top-level down to fine-grain details and bottom-levels to ensure that I am making a well-informed decision to create the best possible outcome.
Comments are closed.
|
AuthorPersonal projects from the last four years. Archives
November 2020
Categories
All
|