TRIPUTER
I bought in September 2016 an FPGA development board called Cyclone V GX Starter Kit from Terasic (see Figure 1). It costs 179 US$ and uses a 28-nm FPGA with six 3.125 Gbps transceiver channels from Altera. The board offers a 32-bit wide LPDDR2 DRAM memory with 512 Mbytes capacity. This device has a very high bandwidth for many applications. In addition the board has a HDMI output, an audio device, an SD card interface, many LEDs and switches and some expansion connectors.
The plan is to realize with this board a "multiple computer" system. The name TRIPUTER is an indication of how many systems will be integrated. The first one will be the PC532 running NetBSD. The second one will be the Ceres-3 using Oberon. Currently the last one will be the BBC computer with the 32016 Second Processor.
Using a commercial board for this purpose is the best choice. Nevertheless the board is not ideal. For example it lacks an Ethernet port and a real time clock. But it is cheap and the used FPGA is a modern one which will be available for many years. The missing features can be added through the expansion connectors. I will develop the necessary hardware for it too.
The three computers to be integrated are very different from a software point of view. Having them available in one system should be an exciting experience. The FPGA of the board is big enough to hold the required hardware.
Fig. 1. The initial configuration of the Cyclone V GX Starter Kit is presenting a photo of itself on the screen
Of course such a complex system is not build over night. But as time goes by the fourth milestone is now achieved 😊
Fig. 2. TRIPUTER V0.2 has calculated a Mandelbrot image. M32632 made it 20 times faster than NS32532/NS32381.
Fig. 3. The hardwired VT100 terminal of TRIPUTER V0.3 shows the boot process of NetBSD.
Milestone 4 : TRIPUTER V0.3 is available => updated to V0.33 again due to some issues in the VT100 terminal emulation.
Description: version 0.33 of TRIPUTER contains the PC632M system running NetBSD with an SD card. Still this system uses the USB connection for the RS232 interface. The image for the SD card is available at Software/NetBSD. The V0.33 zip archive contains the following files:
- TRIPUTER_V033.sof , the FPGA configuration
- TRIPUTER_V033.pof , the flash configuration
- TRIPUTER_V033.pdf , the User Manual
- output_file.cof , the definition file for Quartus to generate a new pof file
- ans32k.exe , the Series 32000 crossassembler for Windows
- monitor.32K , the source code of the TRIPUTER MONITOR program
- mon_auto.hex , the hex file of the monitor program for PC532
- two application programs and a readme.txt
The date of the zip-file is 11 May 2019.
Status: done.
October 2019 : the PERI board is available!
The PERI board is an IO board which brings to the FPGA board some necessary extensions: a true RS232 interface, a real time clock (RTC), two PS2 ports for mouse and keyboard, a second SD card connector and a 100 Mbit Ethernet interface. All of these things are now operational. One port is not yet usable: SATA. The hardware is there, but the verilog code for this challenging interface must still be written.
Figure 4 shows the PERI board in action.
Fig. 4. The PERI board with the serial number 1 is attached to the Cyclone V GX Starter Kit. 2 of the 3 LEDs of the Ethernet interface are active.
The purpose of PERI is to transform the Starter Kit into a standalone computer. Then all the planned systems can be implemented.
To test the functions of the PERI board I have made a new version of TRIPUTER: it is V0.9 . The V0.9 zip archive contains only three files:
- TRIPUTER_V09.pof , the flash configuration
- TRIPUTER_V09.pdf , the User Manual
- monitor.32K , the source code of the TRIPUTER MONITOR program
The system can only test PERI if the flash is being configured with the pof file. Then some software is available. I hope that V0.9 will be replaced soon with a version which enables SATA...
Milestone 5 : August 2020 - TRIPUTER V1.0 is available.
Description: TRIPUTER V1.0 emulates a PC532 equipped with 256 Mbytes of main memory. The original never had such a huge memory. Therefore the former developers were surprised that their system can support this size. Two drive images containing different versions of NetBSD are available: 1.5.3 and 4.99 . It should be the first time that a PC532 boots from a SATA device. In my case it is an SSD.
The PC532 uses a Cabletron EA412 Ethernet adapter connected to the SCSI bus. The EA412 was mainly used in Apple computers. The developers of the PC532 reused it because the PC532 is a SCSI based system. The disadvantage of the EA412 is the lack of an interrupt signal which becomes active if new frames are received. The software has to poll the device and this limits the speed of the interface. I have emulated the basic functionality of EA412 and got a download speed of 200 kbytes/s and an upload speed of 350 kbytes/s with ftp.
Fig. 5. Two PuTTY terminals connected to TRIPUTER V1.0 running NetBSD.
The screen dump in Figure 5 shows two PuTTY windows. The left one is connected to a serial port via USB and runs a root process. The right one is connected via Ethernet and runs telnet for a user.
The performance of TRIPUTER is quite high. A new version of NetBSD is compiled in one hour, three times faster than the original.
Status: done.
December 2020 : TRIPUTER V1.1 is available.
TRIPUTER V1.1 fixes two bugs in the Ethernet unit for NetBSD, adds a second disk drive for NetBSD and includes a statistic unit. After the release of TRIPUTER V1.2 this version is outdated.
December 2022 : TRIPUTER V1.2 is available.
TRIPUTER V1.2 adds two additional disk drives for NetBSD for a total of four drives. The TITAN5 software is updated to work with FAT32 formatted SDHC cards. The V1.2 zip archive contains seven files:
- TRIPUTER_V12.sof , the FPGA configuration
- TRIPUTER_V12.pof , the flash configuration
- TRIPUTER_V12.pdf , the User Manual <= New version, please download again and read
- monitor.32K , the source code of the TRIPUTER MONITOR program
- gen_output.cof , the control code for the generation of the pof file
- include.hex , the software being included in the pof file
- statistic.c , demo program for NetBSD for use of statistic unit
It is possible to generate a new pof file with the files in the zip archive. If you want to do this please sent an email to info@cpu-ns32k.net for further information.
March 2023 : work on TRIPUTER V2.0 started
TRIPUTER V2.0 will integrate the Ceres-3 designed by Professor Wirth and his colleagues at the ETH Zürich. The processor of the original Ceres-3 is the NS32GX32. It is very similar to the NS32532 but has no MMU. This functionality is being emulated by the Bus Error Trap of the CPU and a PAL which checks certain memory areas. I hope that this feature is not used in normal operation since it means that I have to modify my M32632...
There are a number of peripheral devices being used in the Ceres-3: two serial communication devices (SCC2692 and Z85C30), an interrupt controller (AM9519), a real time clock (M3001) and a floppy controller (DP8473). Luckily I don't have to implement the full functionality of each device but only the necessary functions. To see what is needed I built a debug device in the FPGA. It stores every write access to the IO addresses.
Ceres-3 uses a graphic display with a resolution of 1024 by 800 black & white pixels. It was easy to integrate in the already existing hardware. The next Figure shows a screen shot in true size. Prof. Wirth had good eyes - the font is too small for my taste.
Fig. 6. To see the boot screen of the Ceres-3 was a true highlight 😊 . The grey pixels are not part of the screen.
A serious problem is that until now I don't have found the datasheet of the RTC M3001 in the internet. The manufacturer was the small swiss company Microelectronic-Marin. A challenge will be the implementation of the floppy drive. I will use the SSD for this purpose.
Milestone 6 : September 2023 - TRIPUTER V2.0 is available.
The work is done: TRIPUTER V2.0 can be downloaded. Michael solved the problem with the RTC M3001. He found the datasheet in the book Mikroprozessor-Datenbuch Volume 3 from elektor from 1990 and sent me a copy. After the hardware was done some software issues came up. But they could be solved with the help of former colleagues from Professor Wirth and now two versions of Oberon can be run. Maybe more will come in the future.
Fig. 7. The screen now shows much more output and the game minesweeper - I just have hit a mine...
The V2.0 zip archive contains five files:
- TRIPUTER_V20.pof , the flash configuration
- TRIPUTER_V20.pdf , the User Manual
- monitor.32K , the source code of the TRIPUTER MONITOR program
- disk_0_1.dsk , this file contains the software for Oberon originally available on floppy disks
- statistic.c , demo program for PC532 (NetBSD) for use of statistic unit
February 2024 : work on TRIPUTER V3.0 started
TRIPUTER V3.0 will integrate the BBC computer and the Second Processor using the NS32016. The original hardware was designed by Acorn - see more of the old stuff in the chapter Systems/Acorn. The BBC computer uses the 6502 CPU. But I don't like an alien CPU in my TRIPUTER. Therefore I will emulate it by a simplified version of the M32632 named M32E32. The "E" means "embedded". The chance is high that this version will emulate other CPU/MCUs in the future. The main processor M32632 will become the CPU of the Second Processor. This has already worked in the past as described in the mentioned chapter.
Milestone 7 : TRIPUTER V3.0 is available.
Status: in work.
This chapter was last modified on 24 February 2024. Next chapter: TITAN6