Main Page      
TraNOR
                 
          Tools          
       Software       
    Downloads    

TraNOR - A computer built with transistors

This is not a transistor computer. In fact, it is a computer with a CPU made up of discrete transistors, and the CPU instructions are composed by microcode stored in the same memory that also contains the application program.

This computer consists of 1897 transistors for the CPU, 598 transistors for the four 8-bit I/O-ports and additional 124 transistors for the LCD I/O board. Furthermore, three integrated memory chips were used. Of course it would be possible to build the SRAM chip with transistors and the ROM chip with transistors and diodes as well, but this would have required much more transistors.

The complexity of my design is somewhere between the Intel i4004 CPU (2250 transistors) and the 6502 (3218 transistors). The i8080 already has 4500 transistors and the Zilog Z80 even has 8500 transistors, so you get an idea how small my design still is. The most complex component that I use in the computer is the EEPROM memory chip. And even the LCD is also more complex than the TraNOR CPU.

My design goal was to build a transistorized computer that is 100% compatible with MyNOR. I have reached this goal, software written for MyNOR runs on TraNOR with the same speed. And TraNOR doesn't need a special EPROM image either, it also works with MyNOR ROM v1.0 and later versions.





Housing - front view

TraNOR top view

with VFD extension

TraNOR features:

  • The computer is made up of 2495 MOSFET transistors (BSS123 and BSS84, 1897 transistors for the CPU and 598 for I/O)
  • Only three additional memory chips were used (8 kB SRAM, 32 kB EPROM, and a 64 kB EEPROM which is optional)
  • The computer can be clocked at up to 7 MHz and is thus fully compatible with MyNOR when clocked at 4 MHz
  • The total power consumption including the display board is less than 4.5 watts (at 4 MHz, 5 volts)  (yes, really!)
  • Extension boards made for MyNOR can also be used with TraNOR without restrictions
  • All other features of MyNOR except the number of components and mechanical size also apply to TraNOR:
    • The CPU is able of doing up to 2600 8-bit additions per second at 4 MHz CPU clock
    • A stack memory of 256 byte enables nested subroutine calls
    • Up to 24 digital outputs and 8 digital inputs with integrated pull-up's
    • RS232 interface with 2400 baud @ 4 MHz or 4800 baud @ 8 MHz
    • I2C and SPI interfaces to connect peripherals
    • Slim microcode architecture with 28 instructions
    • The microcode occupies only 9 kB of the ROM, 23 kB are free for the OS
    • The Operating System provides lots of useful API functions
    • The OS contains a calculator program that can do floating point calculations
    • The OS contains a monitor program which allows directly programming MyNOR in assembly
    • Software-upload is done via "copy-and-paste" of text-files into the terminal window
    • Cross-Assembler for Linux and MS Windows available

Note: I could have built the computer without any memory chips. The 32 kB EPROM (ROM) could be replaced by a large diode matrix or a core rope memory, and the 8 kB SRAM could be replaced with many discrete flip-flops or discrete DRAM memory cells. And the 64 kB EEPROM is not needed at all. But for the sake of simplicity, I decided to use these chips anyway.

Fun fact: If I had built this computer with only 1252 transistors and one 100 ohm pull-up resistor per transistor (instead of the push-pull stages), the computer would have only achieved a clock frequency of about 2.5 MHz, but would have consumed 150 watts of power!

Here is a short video about TraNOR. The video shows that the games for MyNOR can also be played on TraNOR. Click on the picture below to open the Video in a new window:

The TraNOR design in detail

This is an overview of the PCBs used in TraNOR. The "register board" is used twice in the system. The two register boards contain the logic of all D-Flip-Flops (74HC574) of the MyNOR computer design. The "counter board" contains a discrete, loadable 8-bit counter used for sequential addressing of the microcode that is stored together with the application program code in the 32 kB EPROM also located on this board. The "datapath board" is used as the interconnect board between the other three boards. It contains data bus drivers and the data source and destination decoders. The "NOR gate logic unit" is also located here. Click on the pictures to enlarge them:


Counter Board

Datapath Board

Register Board 2

Register Board 1

The logic gates used in TraNOR are all built with MOSFET transistors. I use the traditional complementary transistor logic with one PMOS and one NMOS transistor. Simulations have shown that the BSS138 and BSS84 transistors work best in this configuration:
This is an AND gate. If you want to know more about the transistor logic I use, please read my paper TraNOR-Transistor-Logic.pdf which describes all details.    

Below is the top-level view of the full schematics. As you can see, this design is very similar to my MyNOR computer design. This is because I have simply replaced the 74HC logic gates with transistors. It was a lot of fun to work on TraNOR because I was able to design my own gates, for example I made a 74HC541 with three output-enable inputs instead of just two. I also greatly simplified the address decoder logic. Only because of this improvment TraNOR can be clocked with 7 MHz.


Click on the picture or click here to download the full schematic of TraNOR. But if you have KiCad installed, I highly recommend to download the KiCad files because it is much easier to navigate through the hirachic design with KiCad.

LCD Board

In order not to break the "pure" transistor design, I also made a new version of the LCD Extension Board with only transistors on it. The new board contains 124 transistors and (except the display) no other integrated circuits. The functionality is a bit limited compared to the original LCD Extension Board: For example, there is no real-time clock (RTC) and no temperature sensor on the board. But sound output is available, and also the 1 Hz time tick pulse (used by some games) is generated on the board.

The sound generator is built with a discrete voltage controlled oscillator (VCO, 7 transistors). The VCO design was developed by me: it is based on the well known 2-transistor astable multivibrator, but I replaced each transistor by a 3-transistor comparator. This comparator works in principle like a transistor with adjustable base threshold voltage. This VCO is controlled by an adjustable voltage between 0 an +10V which is generated by a discrete 10-bit R-2R digital-to-analog converter:

Click on the image above or click here to download the full schematic of the LCD board.

Reproduction

I can't recommend it, but it is still possible to rebuild TraNOR. Please do not use the schematics linked above for rebuilding, as they may contain errors. Instead, use the schematics and the layouts of my proven four-board design. I had to modify the schematics a bit to get the computer running stably. This mainly affects terminating resistors, which I had to add to many data and clock lines.

 >  Download KiCad design and gerber files for all three TraNOR-boards and the LCD Board:   TraNOR-boards.zip
 >  For your reference: Schematics of the Counter Board, the Datapath Board, the Register Board and the LCD Board.
 >  Here is the documentation of the implemented instruction set: MyNOR-Instruction-Set.pdf
 >  And here is the software API documentation: Software-API-Documentation_v1.2.pdf

The download section of this website lists all available tools and documentation for this project.




License Information

This work (MyNOR hardware and software) is licensed under a
Creative Commons Attribution-ShareAlike 4.0 International License
.
Creative Commons License

The cross assembler "myca" is licensed under the GNU General Public License, Version 3.


Impressum
and contact information:
Dennis Kuschel
Corintostraße 21
28279 Bremen
Germany
email: dennis_k@freenet.de
web: mynor.org and mycpu.eu