Embedded Computing Systems
Embedded computing systems is a diverse subfield in electrical engineering, involving both hardware and software development.
Hardware development in embedded systems is all about developing the digital circuits that make modern electronics. It itself is a diverse subfield in embedded systems due to its many applications that range from multi-core CPUs, GPUs, and RAM in today's computers to specialized digital circuits used for machine learning (example: Google developed the Tensor Processing Unit (TPU) specially for machine learning development) to specialized digital circuits used for cryptocurrency. My current experiences have only involved developing relatively primitive digital circuits, but I want to begin experimenting with embedded hardware development, eventually developing specialized digital circuits for machine learning and A.I.
Software development in embedded systems is all about developing software for hardware. It too is a diverse subfield in embedded systems due to its many applications that range from operating system (OS) development to robotics programming. My current experiences have only involved writing a very simple OS for a micro controller (essential a simple computer), but I want to begin experimenting with embedded software development, eventually writing software for supercomputing (distributed computing for multi-core CPU/GPU computers) for machine learning applications.
I actually became interested in embedded systems through robotics as robotics often involves embedded software development. Through personal exploration, I discovered the limitless potential of embedded systems that is only limited by one's creativity. In the near (or distant) future, it would be interesting to develop hardware and software for quantum computers much like electrical engineers do so for digital computers.
Hardware development in embedded systems is all about developing the digital circuits that make modern electronics. It itself is a diverse subfield in embedded systems due to its many applications that range from multi-core CPUs, GPUs, and RAM in today's computers to specialized digital circuits used for machine learning (example: Google developed the Tensor Processing Unit (TPU) specially for machine learning development) to specialized digital circuits used for cryptocurrency. My current experiences have only involved developing relatively primitive digital circuits, but I want to begin experimenting with embedded hardware development, eventually developing specialized digital circuits for machine learning and A.I.
Software development in embedded systems is all about developing software for hardware. It too is a diverse subfield in embedded systems due to its many applications that range from operating system (OS) development to robotics programming. My current experiences have only involved writing a very simple OS for a micro controller (essential a simple computer), but I want to begin experimenting with embedded software development, eventually writing software for supercomputing (distributed computing for multi-core CPU/GPU computers) for machine learning applications.
I actually became interested in embedded systems through robotics as robotics often involves embedded software development. Through personal exploration, I discovered the limitless potential of embedded systems that is only limited by one's creativity. In the near (or distant) future, it would be interesting to develop hardware and software for quantum computers much like electrical engineers do so for digital computers.
The above picture is my very first FPGA project for EE 271, the very first digital circuits and FPGA prototyping course. The (green) computer board is a FPGA, a specialized computer for digital (electrical) circuit programming. The (white) board with all the gates (black rectangles) and wires is called the breadboard. This project involved physically building a simple digital circuit using gates and wires. I can remember spending hours trying to debug (fix) that circuit...It made me realize that building and debugging vastly more complex digital circuits is not feasible. For complex digital circuits, FPGAs are used. FPGAs allow engineers to program digital circuits (instead of physically building the digital circuits) in a programming language called Verilog. FPGAs are a remarkable piece of technology that allow engineers to prototype complex digital circuits quickly. Engineers can build the digital circuit for a CPU (called a soft processor) on a FPGA. Google used FPGAs to build the TPU (Tensor Processing Unit), a specialized digital circuit for machine learning.
I enjoyed my EE 271 experience, so I EE 371, another digital circuits and FPGA prototyping course. The final project involved configuring a soft processor on the FPGA, programming a simple Pokemon game in C for the processor to run, and developing communication hardware and software between two FPGAs. It was a complex project that involved staying up all night to finish the project in time. That project was a friendly reminder to undergo project development intelligently, to test individual components before integrating them and to test integration one component at time. That project also made me realize working through an engineering project is like navigating through life, both require some intelligence, but most of all, both require tenacity.
At the time of this writing (Spring 2018), I'm planning on buying a FPGA board and experiment/build some circuits for robotics.
I enjoyed my EE 271 experience, so I EE 371, another digital circuits and FPGA prototyping course. The final project involved configuring a soft processor on the FPGA, programming a simple Pokemon game in C for the processor to run, and developing communication hardware and software between two FPGAs. It was a complex project that involved staying up all night to finish the project in time. That project was a friendly reminder to undergo project development intelligently, to test individual components before integrating them and to test integration one component at time. That project also made me realize working through an engineering project is like navigating through life, both require some intelligence, but most of all, both require tenacity.
At the time of this writing (Spring 2018), I'm planning on buying a FPGA board and experiment/build some circuits for robotics.