Book All Semester Assignments at 50% OFF! ORDER NOW


This project was prepared for Dr. Eduardo (Ed) Casas for ELEX 7660 - Digital System Design [1]. In this project, we modeled an auto garage door opener using the RF transmitter and receiver technology. We used the DE0-Nano FPGA and System Verilog as the programming language. Our goal was to simulate an everyday garage door.


The garage door opener is a motorized device which will close or open the garage door of your house. Most garage door openers are controlled by a remote controller. The remoter controller sends a signal wirelessly to the garage door opener. The garage door revises the signal and does an action. Specifically, if the garage door is closed and the home owner wants to get out or get in the house, he/she will press the button on the controller so the garage opener will activate the motor to open the door. The same action is done to close the garage doors. In addition, the garage door will pause if the owner presses the button while closing or opening.


Both hardware and software designs were used in this project. Circuits for the remote controller and the garage system were designed and implemented. Specifically, components such as the HT12E, the encoder, were used to transmit data. On the receiver side, the HT12D was used to decode the signal and giving it to the FPGA. The DE0-Nano was the FPGA which we used for this project. Later, the FPGA sends the appropriate 1’s and 0’s parallel to the stepping motor, so the motor can rotate clockwise or counter-clockwise. We first used breadboards to check if the circuit was working properly. After finding some mistakes and troubleshooting, we soldered the components of the controller and the garage system on two different circuit boards.

Regarding the software, we programmed the FPGA with System Verilog. Different modules were created to accomplish different parts of the objective. To illustrate, we used one module to control the motion of the stepping motor, and one to track the time and create delay, and another which indicates when to turn on or off the motor. After many research and studying, we concluded that the best way to meet our objectives is to create and use state machines. After drawing flow charts and diagram, we wrote our code on ModelSim. Making sure there are no syntax errors, we used Quartus Prime 16.1 to compile and synthesize. In addition, a .qsf file was used to set the pins of the FPGA. We were able to resolve many of our logic errors by creating test-bench for most of our modules.

Circuit Design

As mentioned earlier we designed two circuits. One is for the controller which will send a signal when the push button on the controller is pressed, and one is the garage system which will receive the signal and runs the stepper motor.

Controller Circuit

The controller basically sees the position of the push button switch and can send a signal with clock trough the transmitter. The controller circuit consists of a regulator, H12E, and RF Link transmitter. Below we will describe each of them in detail.'

Voltage Regulator

We used 9V batteries to power our remote controller, but we need a constant 5V for the HT12E IC. For this reason, we used the 7805 voltage regulator to output a constant 5V. The figure below shows how the regulator was wired. We used capacitors for better performance and add safety to the regulator.

LED Power indicator

In our controller, we simply used a LED to indicate if the controller has power. If the LED is not on, it indicates that there is no voltage in our controller, or the amount of the voltage is not adequate.


The HT12E was used to encode the information and transmit the addresses/data programmed with the header bit via an RF by receipt of a trigger signal. In this design the HT12E is always activated; thus, TE is connected to the ground. The HT12E acts like a VCO. This means applying a specific voltage and choosing a resistor value, we can obtain the desired frequency which we want to send to the receiver. In our design, we used a 5V and 1M ohm resistor to create a 3kHz frequency clock. For more information on how the frequency was chosen refer to Appendix A.1 or the data sheet.

We connected an active high push button to one of the address/data input pins, specifically AD8. So when the PB switch is pressed it will output a high from pin 17 which will be connected to the transmitter. The address pins were all left grounded.


The RF transmitter (4800bps) is used to create a very simple wireless data link. This creates a simplex channel. In other words, the transmitter can only send the signal, not receiving a signal.

Get Quote in 5 Minutes*

Applicable Time Zone is AEST [Sydney, NSW] (GMT+11)
Upload your assignment
  • 1,212,718Orders

  • 4.9/5Rating

  • 5,063Experts


  • 21 Step Quality Check
  • 2000+ Ph.D Experts
  • Live Expert Sessions
  • Dedicated App
  • Earn while you Learn with us
  • Confidentiality Agreement
  • Money Back Guarantee
  • Customer Feedback

Just Pay for your Assignment

  • Turnitin Report

  • Proofreading and Editing

    $9.00Per Page
  • Consultation with Expert

    $35.00Per Hour
  • Live Session 1-on-1

    $40.00Per 30 min.
  • Quality Check

  • Total

  • Let's Start

Get AI-Free Assignment Help From 5000+ Real Experts

Order Assignments without Overpaying
Order Now

My Assignment Services- Whatsapp Tap to ChatGet instant assignment help