top of page

Annotated Bibliography

VHDL Mini Projects

In all of following mini projects I used VHDL for the coding of the behavioral, structural, and test bench files and Xilinx Vivado for testing, schematics, and simulations. 

Low Fuel Detector: I designed a small digital circuit that is able to control a fuel warning light based on the amount of fuel present in the system. The warning light is switched on when low fuel is detected in the system. To keep it simple and minimize delay and cost, I only used 2-input NAND gates, as shown below. 

There are 4 bits available to describe the amount of fuel in the system, allowing for 16 different levels of fuel. The four bits are named 'Fuel0', 'Fuel1', 'Fuel2', and 'Fuel3', with 'Fuel3' being the most significant bit. This means that if the system's fuel is "0000" through "0100", then there is only 25% or less fuel left in the system and the circuit will switch the fuel warning light to '1' (which means 'on'). This is demonstrated in the output waveform shown below. 

 

Parking Permit Dispenser Controller: I designed a controller for basic parking permit dispensing machines. The controller contains a state register and combinational logic that determines the next states and outputs. The controller determines if change needs to be returned and/or a permit, and then sets them to 1 or 0, depending on what the user inputs into the machine. The project was done in two different ways, once using conditional statements (the behavioral version) and once using Boolean equations and logic gates (the structural version). For the behavioral version, I created a complex finite-state machine (FSM) to determine the correct logic behind the controller.

 

 

 

 

 

 

To the right is the

truth table based on

the FSM created in

the behavorial version:

Below is the full schematic of the controller used in the structural version:

When the user enters less than $20 and cancels, then the machine will be set to return the user's change and does not return a permit. If the user does not cancel, then the machine waits for more money to be inserted. When $20 or more is inserted into the machine, the permit is set to be dispensed and change is set to be returned if the user overpaid. Shown below is the output waveform of the controller which tests all of the various scenarios. 

 

Key:

1 = $5 

2 = $10

4 = $20

7 = cancel

 

Accelerating Object Locator: In this project I used digital design techniques to solve a kinematic equation that calculates the final location of an accelerating object on a flat surface. I achieved this by designing a controller and connecting it to a fixed datapath with pre-populated values stored in a register file. For the controller, I used a finite-state machine with data and a control word table as a part of the design process. I used a case statement to program the controller, which sets each component in the datapath to various values based on the current state. Lastly, I connected everything together using the 'port map' command in VHDL. 

Kinematic Equation:                                                                                                

Final schematic:

 

 

 

 

 

 

 

 

 

 

 

 

The final location of the object is displayed for one clock cycle, as shown. The inputs were as follows: a (acceleration) = 11 m/s^2, v0 (initial velocity) = 3 m/s, t (time) = 8 s, and x0 (initial position) = 5 m. The result is verified by the above kinematic equation. 

Final Waveform:

 

Quadcopter (link)

 

In this project, I worked in a team of six students to design and fabricate a quadcopter that could land on various targets using a wireless controller. I gained experience with soldering, SolidWorks design, machinery, and calibration software. As a team we produced a formal design report and delivered a PowerPoint presentation. Click the link above to see the design report. 

 


 

lab1schematic.png
waveform_edited.jpg
schematic.png
TRUTHTABLE.png
rrr.png
highlightedwaveform.png
kinematicequation.png
schematic.png
quadcopter.jpg
bottom of page