SAP I computer from basic Logic ICs




Does anyone have an idea about early computers? The age before Micro controllers/ Microprocessors? I have just now completed a project that takes me into that time.

This is an 8-bit Minimum Computer (Computation Machine) [1] that made from simple logic ICs, flip-flops and a few memory modules. It has a memory of 16 bytes and its maximum clock speed is not more than 5 Hz.

The whole design is based on SAP-I Architecture and design was obtained from Ben Eater’s Youtube Channel [2]. Currently, it has 9 instructions (based on Intel 8080 instructions) and can be programmed it using machine language (That means programming from 1s and 0s)

The project was started as a project for CO221: Digital Design Course, Department of Computer Engineering, University of Peradeniya.

All the Printed Circuit boards were designed from the basics by us using Fritzing, fabricated by using the CNC, Builder_V3 and soldered and assembled by us. It took 2 months to complete the fabrications and another month for build motherboard (30x40cm) and debugging.

After the evolution of the project, we hope to make it free and open source under Apache License 2.0

Special thanks to

  • Dr. Kamalanath Samarakoon for giving the idea & source materials about SAP-I
  • Dr. S.D. Dewasurendra
  • Miss. Narmada Balasooriya, Miss. Thilini Dahanayaka and all the instructors on the Department of Computer Engineering
  • My team members; Suneth Samarasinghe, Pubudu Premathilake, Dilshani Karunarathne, Wishma Herath, Pasan Thennakoon & Irfan Mohommad


References:











Pera SAP I Computer




Arduino එක්ක වැඩ කරන හැමෝම Transistors, Integrated circuits, Microcontroller, Microprocessor ගැන එහෙම අහලා ඇති. එ් වගේම Transistors එකතු වෙලා Integrated circuits හැදෙන හැටි වගේම IC එකතුවෙලා Microcontroller හැදෙන හැටිත් අහලා ඇති.

නිකමට හිතලා බලන්න IC එකතු කරලා Microcontroller එකක්, හැදුවෙත් කොහොම තියෙයි ද ? පල්ලෙහා පිංතූරේ තියෙන්නේ අන්න ඒ වගේ පරිපථයක්. තවත් සරලව කිව්වොත් IC පාවිච්චි කරලා හදපු පොඩි Microcontroller එකක්.

ඕනැම Microcontroller එකකට නිර්මිතියක් (Architecture) තියෙනවා. නිතරම ඇහෙන PIC, AVR, ARM වගේ නම් වලින් කියවෙන්නේ ඒ වගේ ජනප්‍රිය architectures කීපයක් තමයි.

මේ නිර්මාණයට පාදක වුණේ SAP-I (Simple As Possible) කියන Architecture එක. මේක ගැන වැඩි විස්තර පොස්ට් එකේ අන්තිමට තියෙන ලින්ක් වලින් දැනගන්න පුළුවන්.

ලොකුවට පෙනෙන පරිපථ පුවරුවේ තව පොඩි පොඩි මොඩියුල 11 ක් තියෙනවා. ඒවා ගැන හැදින්වීමක් ඉදිරි ලිපියකින් කරන්නම්. දැනට නම් විදිහට පමණක් ඉදිරිපත් කරන්නම්.

  • Clock Module
  • Program Counter
  • Registers (RegA, RegB, Instruction Register, Memory Address Register)
  • ALU (Arithmetic and Logic Unit)
  • Output Module (4 digit 7 Segment display)
  • RAM
  • Programmer 
  • Control Sequencer (Control Unit)

මේක නිර්මාණය කරන්න IC 46 ක් පාවිච්චි කරලා තියෙනවා. ඒ වගේම Indicators විදිහට LED Bulbs 76කුත් පාවිච්චි කරලා තියෙනවා.

  • 39 x 7400 Series ICs
  • 4 x 555 IC
  • 3 x AT28C16 EEPROM 
  • 76 x LED 

Circuit Design කරන්නයි, PCB ටික Fabricate කරන්නයි මාස දෙකක් විතර මහන්සි වෙන්න වුණා. ඒ ටික ඉවර වෙලා මේක වැඩකරන තත්වෙකට ගන්න තව මාසයක් විතර මහන්සි වුණා.

මේකේ Performance ගැන කිව්වොත්,

Data Bus
>> 8-bit Bus Architecture

Clock Speed
>> min 1Hz, max 5Hz

Memory
>> RAM : 16 bytes (16x8 bits)
>> Storage: 2 bytes (Register A, B)

Arithmetic Unit
>> Addition, Subtraction only

ඇත්තටම මේ අගයයන් සංසන්දනය කලාම Arduino Uno Board එකේ තියෙන “Atmega328” AVR IC එක මේක වගේ x16,000,000 ගුණයක් වේගවත්. Memory එක (Flash Memory) x2,000,000 ගුණයක් විතර වෙනවා.


Atmega328
> Clock Speed ----- 16 MHz
> Flash Memory --- 32 KB
> SRAM -------------- 2 KB
> EEPROM --------- 1 KB

හැබැයි Digital Logic Design, Computer Architecture, Microcontrollers ගැන ඉගෙනගන්න කැමති කෙනෙක්ට නම් මේ වගේ දෙයක් හදලා ගන්න Experience එක සෑහෙන වටිනවා.

මේක වැඩකරන විදිහ , Machine Language එකෙන් Programming කරන විදිහ ගැන වෙලාව ලැබෙන විදිහට කියාදෙන්න බලන්නම්. Eater.net කියන site එකේ සහ Ben Eater' Youtube Channel එකෙනුත් මේ ගැන හොද පැහැදිලි විස්තර හොයාගන්න පුළුවන්.

මේ Project එක කලේ පේරාදෙණිය ඉංජිනේරු පීඨයේ Computer Engineering Project (2nd Year) එකක් විදිහට. මේ වගේ නිර්මාණයක් කරන්න මුලින්ම අදහසක් දුන්න Dr. Kamalanath Samarakoon සර්ටත්, නිර්මාණ කටයුතු සදහා උදව් කරපු Digital Design Lab එකේ Instructors ලා හැමෝටමත්, මගේ Project Team එකේ හැමොටමත් ස්තූතිවන්ත වෙනවා.



Special thanks to
  • Dr. Kamalanath Samarakoon for giving the idea & source materials about SAP-I
  • Dr. S.D. Dewasurendra
  • Miss. Narmada Balasooriya, Miss. Thilini Dahanayaka and all the instructors on the Department of Computer Engineering
  • My team members; Suneth Samarasinghe, Pubudu Premathilake, Dilshani Karunarathne, Wishma Herath, Pasan Thennakoon & Irfan Mohommad


References:












All-in-one Robot Board : Minbot-Nano v1.0






Robotics කරන අයට ගොඩක් වැදගත්වෙන දෙයක් තමයි අද මම ගෙනල්ලා තියෙන්නේ. සාමාන්‍යයෙන් Arduino Board, Motor Drive, Power Supply, Sensors වගේ පොඩි පොඩි මොඩියුල් ගොඩක් Jumper Cables වලින් අමුණලා තමයි රොබෝ කෙනෙක්ව හදන්නේ. රොබෝ පොඩ්ඩක් එහෙ මෙහේ වුණ ගමන් අර වයර් බුරුල් වෙනවා. ලෙඩේ හොයාගන්න සෑහෙන වෙලා යනවා. Sensors වල වයර් බුරුල් (Loose Connection) වුණාම Readings වලටත් ලොකු බලපෑමක් එනවා.

මේ ප්‍රශ්න වලට විසදුමක් විදිහට තමයි මම මේ පල්ලෙහා රූපයේ තියෙන විදිහේ පොඩි Development Board / Shield එකක් නිර්මාණය කලේ. මේ Board එකේ සාමාන්‍ය රොබෝ කෙනෙක්ට තියෙන්න ඕන හැම උපාංගයකටම අවශ්‍ය ඉඩ තියෙනවා.



Development බෝර්ඩ් එක විදිහට පාවිච්චි කරලා තියෙන්නේ Arduino Nano එකක්. Nano එක වෙනුවට NodeMCU දාපු බොර්ඩ් එකකුත් ඉදිරියේදී Design කරන්න අදහසක් තියෙනවා.

Arduino Nano Board

Motor Driver එක විදිහට පාවිච්චි කරලා තියෙන්නේ TB6612FNG කියන මොඩියුල් එක. මේකෙන් 1.2A වෙනකම් ධාරාවක් ගන්න මොටර් Control කරන්න පුළුවන්.  N20 වගේ පොඩි මෝටර් වලට මේක හොදටම ප්‍රමාණවත්. ගෙන්නගත්තේ eBayඑකෙන්. වටිනාකම $1.37 (~Rs.220) විතර වෙනවා. (eBay Link: https://ebay.us/NOoW81)

TB6612 FNG Module


Voltage Regulator එක විදිහට පාවිච්චි කරලා තියෙන Unit එක ගෙන්නගත්තේ Aliexpress එකෙන්. වටිනාකම $0.69 (~Rs.110) විතර වෙනවා.
DC DC Step Down Buck Converter



මේක PCB Toner Transfer විදිහට හදාගන්න ඕන කරන Files, /printable_files folder එකේ තියෙනවා.

Online Service එකකින් හදාගන්න කැමති නම් ඒකට ඕන කරන gerber files,  /gerber_files folder එකේ තියෙනවා.

මේ Board එකට ගැලපෙන Sample Code එකක්, /program-nano folder එකේ තියෙනවා.

Board එකට components පාස්සගන්න ඕන විදිහ ගැන විස්තර, /Minbot_v1_Doc.pdf  කියන PDF එකේ තියෙනවා.



මේ Design එක, CEYKOD Research & Development මගින් GPLv3 බලපත්‍රය යටතේ නිදහස් හා විවෘත නිර්මාණයක් (Free and Open Source Design) විදිහටයි ඉදිරිපත් කරලා තියෙන්නේ.


Download Full Design from GitHub:







මේ වගේ තවත් Open-source Designs ගැන දැනගන්න, CRaD FB Page එකට Like කරන්න.