Design of a Microprocessor and its Software as a Seven
Week Class Project
Lars Philipson, Anders Ard?o, and Kenny Ranerup
Dept of Computer Engineering, Lund University
P.O. Box 118, S-221 00 Lund, Sweden
Phone: +46-46-107518, Email: [email protected]
Using only high-level design and verification tools a group of 25 students designed a complete system ranging from an optimizing Pascal compiler and a real-time kernel to a high performance, pipelined datapath and the layout of an entire microprocessor. The project also included a detailed verification of the entire system consisting of cooperating hardware and software. After fabrication the system not only worked as specified, but was also sucessfully used in a demanding real-time application. The use of silicon compilation tools has shown that hardware can be designed very much the same way as software. By providing a united design environment for hardware and software, system level tradeoffs can be part of the design process. The project reported here gave the students a unique insight into how the different parts of a computer system interact.
During seven weeks in April-May 1987 a group of 25 undergraduate students at Lund University completed a design ranging from an optimizing Pascal compiler and a real-time kernel to a pipelined datapath and the layout of an entire microprocessor, including a detailed verification of the working system consisting of cooperating hardware and software.
The project was the result of a new undergraduate course with the purpose of giving the students an integrated understanding of how a computer system works. Of course the education in Electrical Engineering and Computer Science already contained a range of computer related courses. However, we noticed that the students often failed to answer questions that require a good understanding of the interaction between different parts and levels of a computer system. This was particularly true for questions that involved interaction between hardware and software, and other such issues that are crucial to system performance.
A decision was made to develop a project course in which the students could design an entire computer system from scratch and then be forced to experience many of the interactions and tradeoffs involved. A key idea was to let all the students in the course cooperate on the same project and to organize the work in a way that would encourage and facilitate interaction among them.
The course is called Computer Sytem Design Project and is normally taken just before the students get their engineering degree, at the end of the nominally 4.5 year curriculum. It runs over one quarter, containing exactly seven weeks. The course was an immediate success when it started