EEC 181 A/B: Digital Systems Design Project
The course involves the design, analysis, implementation, and testing of an application specific processor (ASP) using a modern, large-scale field programmable gate array (FPGA). The team is given a computationally intensive problem (e.g., real-time object tracking, factoring the product of two large prime numbers, or N-body gravity simulation) and is required to investigate algorithms for solving the problem that can be efficiently implemented on an FPGA. The ASP will typically be implemented in part as software running a soft processor with application-specific instructions built on the FPGA, and in part as an application-specific digital system to accelerate the main computation. Designs are done using commercial-grade FPGA computer-aided design tools. The team will implement a software-only reference design that runs on a standard PC or workstation and will compare and analyze the performance difference between the reference design and the ASP design. Projects will be evaluated in part based on the completeness and correctness of the ASP and the reference design, the performance of each design, and possibly other design attributes (e.g., ASP power consumption). A team project report will be submitted that describes the architecture, design, implementation, and testing of the ASP design and the reference design. The report will include a Future Work section. This section will describe the additional work that would be necessary to move the ASP from the current prototype to a commercial product. This section will also consider various real-world design constraints that would be imposed on the commercial product, including economic and manufacturability issues. This project involves the multiple disciplines of algorithms, software engineering, computer architecture, digital system design and digital system testing.