SCX project - Software


NB. Italics show where there should have been links to other pages, but those pages don't exist.

System level description

Component list

SCX1 (DSP) software

SCX1 - Host interface

Host software

SCX-1 board test software

Software development tools


System level description

The software in the SCX project divides into two major areas.

  1. The SCX1 software that runs on the TMS320C50 DSP on the SCX-1 board that
  2. The host software that runs on the host computer system that

In addition there is a board test program for the SCX-1 board and there are various utilities used in the build process etc.

Development / host environment

Until recently, all of the software has been developed in a DOS/Windows environment, and the host software only exists as a DOS application. The choice of DOS/Windows as the development platform was originally constrained by the availability of the TI development tools, in particular the TMS320C5x Evaluation Module (EVM), and the TMS320C5x Emulator (XDS510) to be either a Sun SPARCstation running SunOS, a PC running DOS/Windows or a PC running OS/2. The DOS/Windows environment was favoured on the grounds of cost, local availability of PCs, the experience of the developer and a reluctance to introduce a third operating system (OS/2) into a lab where DOS/Windows and SunOS were both already present.

Now that the project has moved to a lab where the predominant operating system is Linux, and the SCX system is beginning to become independant of the TI development tools (except for debugging of the SCX1 DSP software), some new tools are being written as Unix shell scripts, and the host software may be ported to Linux, following the writing of suitable drivers.

If it becomes necessary to perform simultaneous debugging of the SCX1 DSP software on more than one board in a multi-board system it will be necessary to use OS/2, as multi-processor debugging is only supported by the TI debugger on that operating system.


Component list


SCX1 (DSP) software

Silicon Cortex Software Design, revision 6, 7 October 1997, scx1swod.pdf


SCX1 - Host interface


Host software

HOSTVME / HOSTEVM command-line driven user interface software

<Insert documentation for HOSTVME / HOSTEVM command-line driven user interface software>

GUI

A Graphical User Interface (GUI) is to be written to enable MNC parameters to be manipulated in a much easier way than is currently possible using the command-line driven user interface. This will probably be modelled to some extent on the user interface of SNIF, a program for controlling the parameters on a single silicon neuron chip that was written by Christoph Rasche.

<Insert specification for GUI software>

Board configuration tool

Configuring multi-board SCX systems is non-trivial as many hardware jumpers and some software configurable items must be set correctly on each board for correct inter-operation with other boards on the same VME bus, and with other boards in the connected domain(s), if any. For some settings related to domain bus operation, hardware damage is possible in the case of incorrect configuration. Therefore it will be necessary, or would at least be helpful, to have a software tool to perform the following functions:

Such a software tool will be useful even for a single board, particularly when its two domain bus ports are to be connected together in a loopback configuration for testing.

To use such a program, there must be a way for users to describe the intended system-wide configuration. This will take the form of a human-readable (and writable!) ASCII text file that can subserve not only the functions of the board configuration tool, but will also be able to act as a database for other host software to inquire the state of the system, for instance which devices are (or should be) present at which MUX chip select addresses on which boards. The database will contain sufficient information to describe:

Note that a board will be on a VME bus and may be on 0, 1 or 2 domain buses and 0 or 1 JTAG strings, but all of these are independant. For example just because two boards are on the same domain bus does not necessarily mean that they are on the same VME bus. Also, note that each host machine may be the host for more than one VME bus (by having multiple host adaptors fitted to the machine).

When run to check configurations, the tool will check the entries in the database against the following rules:

When run to guide user setting of hardware jumpers, the software will carry out the above rule checks, and then given that the rules are satisfied, it will emit jumper configurations in 'ASCII art', for example:

JP6
o o o=o o o=o o o=o o=o o=o o=o o=o o o o=o o o o o o=o o=o

where the 'o' is a jumper block pin, and the '=' sign shows a jumper connecting two pins.

In common with other SCX software components, the configuration tool will support the prototype hardware in addition to the SCX-1 hardware.

No standard configuration file format appears to exist in the Unix world, so the Windows .INI format will be used. This has the advantages that it is easily read and written by both human and machine, and its section names can be referred to from individual entries so as to represent any arbitrary data structure, for example a tree:

[Root]
Left=Branch1
Right=Leaf1

[Branch1]
Left=Leaf2
Right=Leaf3

The absence of GetPrivateProfileString and WritePrivateProfileString API's in the Unix environment is not a significant disadvantage, as it will be easy to implement such functions.


SCX-1 board test software


Software development tools


Top of this page

SCX project homepage

Institut für Neuroinformatik home page