On The Use Of A Soft Processor Core In Computer Engineering Education
2006 Annual Conference & Exposition Proceedings
The microprocessor course at most universities has traditionally been taught using a discrete microprocessor such as the Motorola 6800 series, Intel x86 series, or IBM PowerPC series. With the continued increase of usable field-programmable gate arrays (FPGA) gates and improvement of off-theshelf soft processor core computer-aided design (CAD) tools, this practice is beginning to change. It is now possible to teach a microprocessor course using a soft processor core such as Xilinx Microblaze or
... ilinx Microblaze or Altera Nios. Such tools provide the user a graphical user interface to configure a 32-bit processor with the desired peripherals. This type of tool provides flexibility that was previously non existent. In the traditional method, interface devices need to be built into the microprocessor prototyping printedcircuit board. Otherwise, the additional interface devices will need to be built and wired to the main board. With the use of a soft processor core and an FPGA board with a sizable FPGA, all of the required interface logic can be built into the FPGA. Such hardware logic can be described using hardware description languages (Verilog or VHDL) or schematic capture. The FPGA functionality can be changed easily by downloading a new bit file (or configuration file) to the FPGA after re-running the synthesis tools. These off-the-shelf tools have also been packaged with software development tools such as compilers, debuggers, and instruction set simulators, which are usually GCC-based. The encapsulation of hardware and software components into one FPGA design process also allows the hardware and software designs to be simulated -together -using a hardware description language simulator. However, the use of such tools doesn't come free (remember, there is no such thing as a free lunch!). There are many pitfalls when using a soft processor core in teaching. These off-the-shelf CAD tools usually have steep learning curves. In some cases, a non-working design can have problems in the hardware or software portion, which can be difficult to track. This paper describes teaching microprocessor design using a soft processor core, our experiences, our methodology, and the pitfalls in depth.