- Why Register?
- Download development tools
- Create and track support tickets
- Subscribe to resource updates
- Access latest developer news
XMOS in Education
We are actively involved in education and offer support for students and lecturers alike. Our hardware, software, and/or architecture may be useful in your teaching programme or for your project.
You can freely use the XS-1 architecture, compilers, and simulators in your teaching programme. In addition, we offer volume discount on development boards. If you need inspiration on choosing a project, then visit the XCore.com community website which hosts pages suggesting interesting projects.
The advantage of using an XCore over a traditional system, is that it offers bare hardware where you can experience the processor without the magic of an operating system, device drivers, and graphics user interface; but with full tool support to make development and painless. When using the web-tools, no software needs to be installed on the machines used for development, simplifying the roll-out in an institution.
Subjects
XMOS processors can be used to support teaching in a variety of subjects at all levels: from secondary school programming up to master's programmes teaching control theory. Example subjects where XMOS processors may be useful include:
The cards offer a bare-bones programming environments: what you write is what you will see. There are no libraries that hide any complexity. If one chooses XC as a language to teach programming, you will notice that it enforces some good software engineering practices: side effects are constrained.
Assembly programming is not taught in many institutions, partly because it is no longer required, partly because of the practical difficulty in getting data into and out of assembly programs on modern machines. The XCore assembly language is relatively simple, and the IN/OUT instruction offers a simple way to produce I/O from an assembly program.
A single G4 can run 32 concurrent threads, and enables you to teach concurrency form both a practical perspective (writing and executing real concurrent software) and a theoretical perspective. One choice is teach people the use of a concurrent language, such as XC, and subsequently teach them the theoretical foundation (CSP). But other programming models are supported equally well on the G4.
A single G4 has four cores, and the board with 16-G4s offer a 64- core platform to experience true multi core-programming, at low cost and low power consumption (A 64-core XMP-64 board draws ~25 Watts).
The XS1 architecture instruction set is designed to be friendly to compilers - it is simple, supports a good number of registers (12), and has support for most programming languages built-in - whether the languages are flat or scoped, whether they do exception handling or not, whether concurrent or sequential. You can either use the free architecture simulator or real hardware as a target platform.
The XS-1 has features that make it suitable as a case study for classes in (advanced) computer architecture. Examples of novel aspects are: the instruction set coding is compact, and enables the use of many common 3-register operations using only 16 bits; the instruction set is designed to be pipelined efficiently; the network is designed to be scalable and route traffic dead-lock free; the instruction set is designed to support many different forms of concurrent programs; the instruction set can be used as a target for different types of programming languages.
Many operating system aspects can be implemented on a G4 - whether they be device drivers, schedulers, or memory management.
Embedded Systems, Real-time Systems
The XS-1 is designed to be Embedded in real-time systems, and a tool-chain is provided for real-time programming. No real-time operating system is required, and people can experience the difference between events and interrupts, the latency of dealing with real-time operations, and the concept of predictability.
Group projects are at the heart of many engineering disciplines. In many cases they will need a processor and/or micro-controller. The development cards are eminently suitable to be used as the core of projects that aim to develop a complete system. They can be the glue that holds together sensors and actuators, or be used to program the user interfaces. Example group projects could be semi autonomous robots, a weather station, or music-players.
The break-out area of the XC-1 can be used to add components, for example an accelerometer, A/D controller, or OLED screen. It enables students to design, build, and measure the interface between a microprocessor and bespoke digital electronics, and can also be used to learn practical engineering skills such as the use of scopes and logic analysers, and soldering skills.
An XMOS processor has built-in DSP instructions for executing filtering and/or control algorithms. The I/O instructions can be used to measure and control real hardware. A few FETs on the end of a processor allows it to drive an electric motor, and digital input is easily read for feedback.

