The general topics that I am happy to consider for supervision include
I also have the following specific projects that I would like to offer.
To develop an assembler, with symbol table, assembler directives etc. and a complier for a subset of the C programming language, for John Carpinelli's Relatively Simple CPU.
The Assembler/Compiler should be written in a way that allows for the extension of the instruction set.
Requires programming skills, an interest in scanners/parsers (flex/bison?)and embedded development.
Page Top
Back to Project list
Using the concept of the 'xsch' schematic viewer in reverse. To develop a graphical program that will parse a directory for VHDL files, create a symbol for each, based on the entity, and allow the user to build up a schematic diagram by connecting instances of the available symbols. The result would be written out as a hierarchical vhdl (.vst) file.
This will require some understanding of VHDL file structures and good programming skills in C or C++ with an X library such as openmotif or Xview, or any other portable (in X) graphical library.
Page Top
Back to Project list
To develop an interface to control an HP 54645 16 channel Digital 'scope. This involves writing code to send and receive serial commands to the scope, development of a graphical user interface for remote (network) control and tools to display the captured results. This requires low level C programming skills and use of a language such as TCL/TK for the GUI. The intended platform will be GNU/Linux
The intent is to provide a simplified menu driven interface to the 'scope and the inclusion of a range of 'presets' to configure the 'scope for commonly used lab functions. These would include capture of bar-code wand output, keyboard codes etc.
Page Top
Back to Project list
To develop an interface between the parallel port on a PC running GNU/Linux and the Lattice ispLSI development boards used in the lab. The intention is to enable the driving of the device from the Alliance pattern files via the parallel port and to also capture the output via the parallel port. This will require low level C programming skills, familiarity with GNU/Linux development tools and a modicum of hardware skills/knowledge/willingness.
An understanding of the development environment used with the isp-board would be beneficial, as would be a knowledge of vhdl, although not essential.
This project could have an emphasis on the design of the software and the protocols to be used between the parallel port on the PC and the lattice board.
Page Top
Back to Project list
The Marco2 is an autonomous 2-wheeled buggy. This one has an Altera Excalibur FPGA board built onto it. This provides an opportunity to develop a subsumption or behaviour based control architecture using a mixture of hardware and software.
Page Top
Back to Project list
Interface a Silicon Labs evaluation board with a chip similar to this one to an embedded system on an FPGA. You would need to understand the control protocol used by the device for tuning, volume and interrogating the RDS. This could be extended by capturing the audio stream, compressing and storing it for later replay. Another possible extension is to monitor the the RDS and speculatively save items that match the users listening habits.
Provides an opportunity for extending hardware and software skills. The device uses an SPI interface. Will require C, electronics, VHDL.
Page Top
Back to Project list
To develop a custom version of Knoppix or Slax for distribution to local Secondary Schools. It is to support PIC development and programming within a Linux environment. It will include Wine, the Microsoft support environment. This project could include some electronics as a PIC programmer will need to be built and tested.
Requires knowledge of Linux systems and administration, programming development environments, toolchains and libraries, PIC development and soldering.
Page Top
Back to Project list
The TS7300 is an embedded board used in module UFEEMY-20-3. Implement an open-source processor, uart, ethernet, mmc, etc. on the Cyclone II FPGA fitted to the board. An extended challenge to integrate components from Opencores.org into a complete system with bus arbitration between the ARM9 and the FPGA.
Requires patience, VHDL, Verilog, hardware debug skills
Page Top
Back to Project list