©1999 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
Return to Table of Contents
Teaching Digital Systems in the South African Context
Pieter J. Bakkes, Pr.Eng., S.M.I.E.E.E.
Department of Electrical and Electronic Engineering
University of Stellenbosch
This paper describes the structure of digital and computer system curricula at a university in South Africa and shows how programmable logic is successfully applied in an environment where ASIC designs are not yet feasible. Programmable logic is used in the courses for rapid prototyping of much more complex digital structures, much quicker and easier, than in the past. VHDL is used to describe digital and computer structures at algorithmic level. Stellenbosch University is the first university in Africa to introduce these concepts in engineering courses.
Keywords: Programmable logic, Africa, rapid prototyping
Although Africa is a huge continent with many countries, in comparison with other parts of the world, very little first world technology is taught and applied here. South Africa is the only country on the continent where a significant amount of first world technology is taught at tertiary level and applied commercially. Second to South Africa, significant work is also done in Egypt and Kenya. The social and economic reasons that have led to this unfortunate situation do not fall within the scope of this paper.
Although most of Africa is technologically barren, it holds enormous potential for future investment and development. Many investors and design engineers realize this and are attempting to develop products that are applicable in the African context. Teachers at universities and technical institutions are encouraging their students to concentrate on the African market in order to mobilize this dormant market and hopefully also to assist in the development of the continent and its people.
The South African environment
South Africa has a vibrant first world economy, originally stimulated by a wealth of minerals and the influence of European settlers who have migrated there since the seventeenth century. Most of the European population has attempted to maintain a first world living standard in Southern Africa, and, since recent political changes, the majority black population is catching up rapidly.
There are more than twenty universities and technical colleges spread over the South Africa, presenting a variety of courses. Many of them have engineering and computer science faculties. Traditionally engineering and computer science is taught in different departments and unfortunately there is little cooperation between them. The computer science departments specialize in software systems while the computer courses in engineering concentrate on the design of smaller embedded system that often require real time constraints. As engineers require more knowledge of larger software systems and computer scientist need more hardware knowledge, these departments will move closer together in the near future as indicated later in this paper where future developments are discussed.
Electrical Engineering Course Model at Stellenbosch
The model used for the electrical and engineering degree at Stellenbosch can briefly be summarized as follows:
1.†††††††† The first year covers basic science subjects to lay the scientific foundation that the students will need further into the course.
2.†††††††† During the second year the basic science courses are completed and the accent moves to design concepts.
3.†††††††† In the third year design skills are developed at the level of small systems, using the components that were taught in the second year.
4.†††††††† During the fourth year system level design is addressed and each candidate must complete a small project independently during the second semester.
Undergraduate Digital and Computer Systems at Stellenbosch
Digital and computer systems have come a long way during the past three decades at the Department of Electrical and Electronic Engineering of Stellenbosch University. Early in the seventies the only course in this field, was a one-semester course in basic Boolean algebra and digital systems in the graduate year. At present this material is covered in the first year of study.
Besides Stellenbosch University, no university or technical institution in Africa teaches the concepts of
C†††††††††† Simulation of digital systems
C†††††††††† Computer assisted synthesis of digital systems.
C†††††††††† Using programmable logic for the rapid prototyping of digital systems
Until recently all digital designs were done by hand in an ad hoc fashion. The quality of the design depended greatly on the skill of the design engineer, but it usually took great care and much energy to design a product that could be guaranteed to function within specifications under all environmental conditions and all variations of component parameters. Simple designs, such as low frequency micro-controller circuits, could quite easily and safely be designed by hand, especially when such systems are used in a controlled environment. Recently, however, the designs attempted by engineers in South Africa are becoming more and more sophisticated such as the on board computer systems for the SUNSAT satellite being built at Stellenbosch University, and these cannot be designed without simulation tools.
These tools have been in use in the United States and other countries for many years, applied mainly to the design of integrated circuits. During a sabbatical at Brigham Young University in 1995, the author realized that is was essential that engineers in South Africa should also be exposed to these modern tools. To achieve this goal, the author introduced these concepts in the engineering curriculum of the University of Stellenbosch. This should eventually lead to designers using these tools as standard practice to create more robust and reliable digital and computer designs.
Designing and manufacturing application specific integrated circuits (ASIC) in Africa is still in its infancy mainly because the size of the market does not justify the large quantities that make an ASIC design feasible. This is not, however, any deterrent to using simulation and synthesis tools, which can equally well be applied to the design of programmable logic circuits and to systems containing programmable logic parts mixed with conventional small scale integrated parts. Programmable logic such as Field Programmable Gate Array (FPGA) and Programmable Logic Device (PLD) devices has been in use in South Africa for a number of years. Although the development systems for specific programmable components such as Xilinx and Altera usually contain some simulation tools, it is applicable only to the design within a single part and does not support a system containing a variety of components and subsystems. Sophisticated tools, such as Synopsys, together with device timing models, support the simulation of digital systems comprising a variety of devices including processors, memories, FPGAís, etc.
The Synopsys, Altera and Xilinx tools are used at the University of Stellenbosch in the six undergraduate digital and computer system courses and two postgraduate curses. Table 1 shows the position of these courses in the four-year undergraduate engineering curriculum and each one will be discussed in more detail below.
Applied Computer Programming
Students enter the university with a variety of computer skills, depending on the courses they followed at school and their exposure to computers and software before entering university. In order to provide for students with skills ranging from none at all, to some degree of programming capability, the first few weeks of the initial course in the second semester of the first year, named Applied Computer Programming, is devoted to bringing all the students to an equal level from where they can then proceed to work in synchronization. After years of experimentation and research with different languages such as Basic, Pascal and Modula II, the languages presently used are C and MATLAB.
Applied Computer Programming.
Table 1: Undergraduate Digital and Computer System courses at Stellenbosch
The strong drive from the United States, as well as the demand from the South African industry, has dictated the use of C, but it must also be taken into account that many engineering courses do not need programming at a basic level with a language such as C, as they make more use of software packages such as those used for finite element analysis. It is mainly the computer courses that need basic level structured programming for writing embedded software for micro-controllers, communication protocols for computer networks, etc.
The second language taught in the first semester course is MATLAB. The goal here is to introduce the students to a tool, which they can use in many of their courses such as control systems and signal processing. It provides an easy-to-use environment in which to manipulate differential equations and present the results graphically.
In the second semester of the first year, the students are also introduced to digital systems at the gate level with an introductory course in Boolean algebra  and the properties of the basic digital components such as gates, flip-flops, etc. This course is named Digital Systems and its content is in line with that of most such introductory courses in other parts of the world. Throughout the course the students receive four lectures per week and spend one afternoon per week in the laboratory, building and testing small digital circuits. During the last few weeks they are briefly introduced to small programmable devices such as PALís, GALís and CPLDís. The hardware description language ABEL is used to implement a small digital circuit in a CPLD tutor board by downloading the configuration from a workstation. This is their first exposure to programmable logic and is purposefully left to the end of the course so that the students realize the advantages of programmable logic, having struggled with breadboards and wiring together gates in the first part of the course. As most students find the principle of programmable logic interesting, it usually gives them strong motivation for the succeeding courses.
During the first semester of the second year the first course in computer systems at register level is introduced. The primary goal here is to teach the students how to use the digital components, which they mastered in the first year, to construct a basic computer architecture. Presently the architecture of the Intel 8086 processor is used as a model, for the simple reason that many of these processors are available to the student in the form of personnel computers. Assembler language programming is also taught in this course, because it assists the students in understanding the structure and function of the processor. The laboratory portion of this course mainly involves the assembler programming and interfacing from an assembler routine to a higher-level language such as C.
In the second semester of the second year a new course has been introduced in which, over a period of six weeks, one afternoon per week is devoted to the design of a small digital system based on an FPGA. A schematic entry tool is used to define the logic circuit. It is then compiled, simulated and downloaded to an FPGA mounted on a printed circuit tutor board. This is the first contact for the students with the concept of the simulation of a digital system. The main goal is to teach them the discipline of using simulation in the design cycle.
The tutor boards each contain an FPGA, some switches and a LCD display. It was found to be very important that the students follow the full design path from the interpretation of specifications, the creation of the logic circuit, the functional and timing simulation, through to the actual implementation, testing and verification of the design.
In line with the four-year model of the electrical engineering curriculum shown above, the third year first semester course in computer systems is dedicated to design. It is expected from each student to design his or her own small computer system from the specification through to the final product. This design includes the interpretation of the specification, reading of component data sheets, designing the hardware circuit, making a printed circuit board, writing the necessary software for the microprocessor and debugging the hardware and the software. It is an opportunity for the students to apply the knowledge they have gained from the previous courses including digital systems, programming and computer systems, to real world problems.
This course has so far been both extremely successful and satisfying to the students. Many of them struggle for many hours to master the debugging techniques, but all the hardship is soon forgotten when their design finally works and meet the specifications. They usually all admit that they learn a great deal from this course, because they experience true engineering.
Final year Computer Systems
All the courses of the first to the third year are compulsory for the Electrical and Electronic Engineering curriculum, but in the forth year some courses are elective. Computer Systems is such an elective course and spans three quarters of the year.
The course starts off by teaching the students the syntax of VHDL  and how to describe a digital circuit in this algorithmic hardware description language. This is a new experience for them, but having mastered it, they prefer using VHDL above schematic entry. The vehicle for the circuits they design is again an FPGA tutor board. Presently both the Altera and Xilinx FPGA development environments are used.
In the rest of the course the students are introduced to computer networks, hard real time operating systems  and object oriented programming. In an attempt to stay abreast of the latest technology and the requirements of industry, the language Java  has been used since 1998 to demonstrate the principles of object-oriented programming. Because of the limited time allocated to the course, the three topics mentioned above, are covered concurrently in such a way that Java is used to implement a basic store and forward computer network protocol between two workstations based with concurrent processes running under a small real time kernel.
Postgraduate Masterís courses
The curriculum of the masterís course at Stellenbosch gives the student two choices - either to do six theoretical semester courses plus a one year short project or a two year long project and no courses. If they choose the first option, they can select any combination of courses that are presented in that particular year of study. They may also choose courses from any other department at the university such as Computer Science, but this is subject to approval by the department to ensure that it is a logical choice and that the outside course meets the requirements of the School of Engineering.
There are presently two masterís courses in computer systems, namely Computer Architecture 813 and 823. They are presented in the first and second semesters respectively. These two computer architecture courses are compulsory for students choosing to do a computer project as it forms the basis for their thesis work.
In Computer Architecture 813 more complex computing structures are studied e.g. pipeline, cache and data flow architectures . Simultaneously, the students are taught how to use the more sophisticated simulation and synthesis tool Synopsys. All the architectures that they study are functionally simulated and evaluated.
The second course, Computer Architecture 823, has a similar content to the first course except that full timing simulations, with the SmartModel timing models, of a full-blown computer system is required. A computer system, consisting of a heterogeneous set of parts, is designed, simulated, built and tested.
Besides the research done by the masterís students in their projects, some faculty members and doctorate candidates are involved in research involving the following topics:
C†††††††††† Dynamically partially reconfigurable computing logic systems.
C†††††††††† Reconfigurable array processing.
C†††††††††† Genetic algorithms for reconfigurable logic.
C†††††††††† Hard real time deadline scheduling algorithms.
This research is more basic in nature and is also geared to spawn other projects with applications in engineering applications.
As engineering curricula in South Africa are much less specialized than those in other parts of the world, there is relatively little time in the course that can be devoted to one particular discipline and this is also the case with digital and computer systems. The first signs of specialization in the computer-engineering field recently appeared in the engineering curricula of two South African universities, namely Pretoria and Stellenbosch. At Stellenbosch the following two new degrees will be introduced soon:
This degree is introduced to achieve the following three main goals:
∑ Provide for more specialization in Computer Systems by complementing the existing Electrical and Electronic Engineering degree with the addition of Computer Science courses presented by the Computer Science Department.
∑ Design a degree that qualifies for accreditation by ECSA, the Engineering Council of South Africa. Retaining the original engineering contents, adding the Computer Science courses and spreading the full contents over 5 years achieved this.
∑ Follow the recent trend by European universities of introducing a Masterís degree as first engineering degree.
Candidates have the option of opting for the five year Bachelorís degree in Computer Engineering or continuing with Masterís study towards the integrated Bachelorís/Masterís degrees.
This degree is does not qualify for accreditation by ECSA and therefore is not an engineering degree. It is a four-year curricula covering mathematics, applied mathematics, computer science and engineering telecommunications. Its main goal is to prepare candidates for the rapidly expanding telecommunication industry in Africa and is a joint venture among the Departments of Computer Science, Mathematics and Electrical and Electronic engineering.
Teaching digital and computer systems to engineering students using the concept of rapid prototyping with programmable logic has so far proven very successful at Stellenbosch University. More complex digital structures can now be evaluated and designed by students and researchers than before. In the future these courses will be further refined and continuously modernized to keep abreast with technological developments. Programmable logic offers an opportunity for engineers in remote parts of the world, such as Africa, to explore modern digital design.
More cooperation between engineering and computer science departments is envisaged with the introduction of new curricula that bring more specialization in computer systems to engineers.
1.†††††††† Wakerley J.F., Digital Design - Principles and Practices, Prentice Hall 1994
2.†††††††† Wilkinson B., Computer Architecture - Design and Performance, Prentice Hall, 1996
3.†††††††† Tanenbaum A.S., Modern Operating Systems, Prentice Hall, 1992
4.†††††††† Carlson S., Introduction to HDL-based design using VHDL, Synopsys Inc., 1991
5.†††††††† Lea D., Concurrent Programming in Java, Addison-Wesley, 1997
The author presently holds a position of associate professor in the Department of Electrical and Electronic Engineering of the University of Stellenbosch and has been teaching digital and computer systems there since 1971. During this time he has been responsible for the content and structure of both the undergraduate and graduate courses. His research interest is the field of dynamic re-programmable logic, satellite computer systems and real time database systems. He has been chairman of the Computer Chapter of the South African Section of the IEEE for a number of years.