Embedded Systems - Compilation of Learning

BCD Converter

I aimed to create a 4-bit Binary to BCD (Binary Coded Decimal) converter with a seven-segment display on the DE10 Lite Board. My task involved developing a circuit that converts binary numbers into their BCD equivalents and displaying these values on a seven-segment display. I used included binary to decimal conversion, combinational circuit design, Karnaugh map logic mathematics and FPGA (Field Programmable Gate Array) implementation. Initially, the BCD encoder faced issues with display order, which were later rectified through iterative testing and debugging. This phase highlights the importance of thorough testing in identifying and solving practical problems in circuit design.

The washing machine circuit, on the other hand, demonstrates a complex application of logic optimization. Using the Quine-McCluskey algorithm, the circuit efficiently manages the functions of the motor, valve, and heater. This optimization is crucial for the machine's operation, as it depends on various inputs like temperature, water level, and door status. This part of the project not only showcases advanced logical design but also reflects real-world applicability, where multiple variables must be simultaneously managed for efficient functionality.

D-Flip Flop Introduction

In this project, I focused on designing and implementing a digital counter using an FPGA board. I utilized VHDL to create components such as D Flip-Flops, a BCD Converter, and a clock divider circuit. I emphasized hierarchical design and proper instantiation in VHDL to ensure each component worked harmoniously within the larger system. This methodical approach was crucial for seamless integration and functionality of the digital counter. The testing phase was thorough, involving code compilation, meticulous review of pin assignments, and expert consultations. These steps were vital to validate the design's reliability and performance, highlighting the importance of systematic testing in engineering projects. This experience enhanced my skills in FPGA programming, VHDL coding, and systematic testing, essential for robust and efficient embedded systems design.

Muxian Clock

Anti-Aliasing and Signal Processing

In this project, I developed a unique clock system for the Muxians, a fictional group with a 6-hour day. My main challenge in this project was in VHDL programming, especially in integrating key components like the clk_div, BCDCONV, and a Finite State Machine (FSM). The clk_div was crucial for dividing the clock frequency to match the Muxian time system. Integrating the BCDCONV module required careful attention to accurately convert binary-coded decimal values for time display. The FSM presented its own set of complexities, as it needed to be seamlessly incorporated to manage the clock's states and transitions effectively. Balancing these elements was critical for the functionality and reliability of the clock system.. To manage error loops, I divided the project into two VHDL files and engaged in rigorous testing and debugging. Despite some difficulties, I successfully implemented both time display and alarm functions. This project taught me the importance of modular design and thorough pre-implementation analysis for future projects.

In my recent exploration of image processing with MATLAB, I focused on three key technical areas: sampling, anti-aliasing, and interpolation. For sampling, I reduced the number of pixels in an image, which initially led to a loss in quality and the appearance of aliasing effects. To address this, I applied anti-aliasing techniques, which involved filtering the image to reduce these unwanted artifacts. Interpolation was another crucial technique; by inserting zeros into the image matrix and subsequently applying anti-aliasing, I was able to resize images while maintaining visual quality.

I also experimented with image transformation systems, using MATLAB functions to manipulate images through operations like stretching, shifting, and translating. This allowed me to understand the mathematical and computational aspects of image processing, deepening my knowledge of how digital images are stored, manipulated, and enhanced. This hands-on experience not only improved my MATLAB programming skills but also gave me a comprehensive insight into the challenges and solutions in digital image processing, particularly in maintaining image integrity during various transformations.

Page is still being worked, please wait 2 days until December 18th for projects still being, am currently lost data from a data breach that contained my old design files :/ Although feel free to contact me though if you have any questions :)