# Efinity IDE from Efinix - Getting Started Tutorial

**URL:** <https://forum.digikey.com/t/efinity-ide-from-efinix-getting-started-tutorial/21441>\
**Category:** Logic Design\
**Tags:** efinix-inc, development-boards-kits-programmers, evaluation-boards, tech-tips\
**Created:** [April 7, 2022, 1:11am UTC](https://forum.digikey.com/t/efinity-ide-from-efinix-getting-started-tutorial/21441 "2022-04-07T01:11:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Scott\_1767](https://avatars.discourse-cdn.com/v4/letter/s/d26b3c/32.png) [@Scott\_1767](https://forum.digikey.com/u/Scott_1767)\
**Post date:** [April 7, 2022, 1:11am UTC](https://forum.digikey.com/t/efinity-ide-from-efinix-getting-started-tutorial/21441/1 "2022-04-07T01:11:32Z")

</div>

[Logic Home](https://forum.digikey.com/t/logic-home-table-of-contents/12507)

# VHDL Code for Tutorial

[blinking\_led.vhd](https://forum.digikey.com/uploads/short-url/d2aWghzIATJ9WnTRHLpu2sq7hqW.vhd) (1.6 KB)

# Introduction

This introduction to the Efinix Efinity software (version 2021.2.323.1.8) walks through creating a simple project using the [Trion T120F576 Development Board](https://www.digikey.com/en/products/detail/efinix-inc/T120F576C-DK/11685805?s=N4IgTCBcDa4IwGYAsBaAKnMAGAYgVgHYA2AYRQBEBpFAOXJAF0BfIA). The use of other development kits is analogous. Topics include starting a new project, code entry, making pin assignments, compilation, installing the necessary driver, and programming the board.

# Creating a New Project

To create a new project, select **File → Create Project…** , and the Project Editor Wizard launches. Enter a project name and location as shown in Figure 1. Also specify the target FPGA and speed grade. The Trion T120F576 Dev Board includes its namesake FPGA in a I4 speed grade.

 ![1_project_editor_project](https://global.discourse-cdn.com/digikey/original/3X/d/f/df7bd5574ca9221f65366baf709b601ddc6361f3.jpeg)  
**Figure 1.** Entering the project name, project location, FPGA family, device and speed grade

Next, click the **Design** tab to specify your design files. Click on the **Add design file** icon as shown in Figure 2. Select the blinking\_led.vhd file provided above and click **Open**.

 ![2_project_editor_add_design_file](https://global.discourse-cdn.com/digikey/original/3X/3/4/3485464886739e3d053d400cb5063e871d132cb7.jpeg)  
**Figure 2.** Adding design files

Specify the **Top Module/Entity** and the **Top Level VHDL Architecture** , in this case the “blinking\_led” entity and “behavior” architecture within the blinking\_led.vhd file, respectively, as shown in Figure 3. Click **OK**.

 ![3_project_editor_design_tab](https://global.discourse-cdn.com/digikey/original/3X/c/2/c22286e657e62a4d7ad692ecd58f673771d47057.jpeg)  
**Figure 3.** Specifying the design

# Pin Assignments

To make pin assignments, select **Tools → Open Interface Designer**. Once it opens, select **Design → Show/Hide GPIO Resource Assigner**. In the **Design Explorer** section in the lower left, right click on **GPIO(0)** and click on **Create Block** as depicted in Figure 4.

 ![4_interface_designer_create_gpio_block](https://global.discourse-cdn.com/digikey/original/3X/6/b/6b73ec353f6f3dbba477fc501d24ab40e8b67f62.jpeg)  
**Figure 4.** Creating GPIO assignments

The blinking\_led design has two ports: _clk_ and _led_. In the **Block Editor** in the lower right, type “clk” in the **Instance Name** field and press the **Enter** key. The result is shown in Figure 5.

 ![5_interface_designer_create_instance](https://global.discourse-cdn.com/digikey/original/3X/9/f/9fa91cfa44a10b59000aad583c0750f69d1492d9.jpeg)  
**Figure 5.** GPIO instance created

Repeat the process for the _led_ port. Right click on **GPIO(1)** and click **Create Block**. Type “led” in the **Instance Name** field, press the **Enter** key, and then select **output** from the **Mode** dropdown since this port is an output port.

To assign an FPGA pin to a port, click in the **Resource** column of the **GPIO Instance View** that corresponds to the port and type the name of the FPGA pin. The Trion T120F576 Development Kit has a 50 MHz oscillator on pin GPIOR\_186. Assign this to the _clk_ instance. Assign pin GPIOB\_RXP04 (LED0 on the kit) to the _led_ instance. See Figure 6.

 ![6_interface_designer_pin_assignments](https://global.discourse-cdn.com/digikey/original/3X/4/6/465cfd50a4aa0fef66de4be90f5d51ba93244250.jpeg)  
**Figure 6.** Pin assignments

Click **File** → **Save**. Then click **Design** → **Check Design** to verify there are no issues. Close the **Efinity Interface Designer** window.

# Compilation

Select **Flow** → **Synthesize** to begin compiling the design. By default, the Efinity software has an automated compilation flow such that this step will synthesize the design, then immediately proceed to place and route the design and generate the bitstream files. These processes can be performed independently by toggling this feature off (the icon in the upper right corner of the dashboard). A green checkmark appears on each process icon on the dashboard once that process completes. Figure 7 shows the dashboard after the entire compilation finishes.

 ![7_compilation_progress](https://global.discourse-cdn.com/digikey/original/3X/a/e/aedd1356ba3db85619c5551ccf70015c4129ab09.jpeg)  
**Figure 7.** Compilation complete

# Programming the FPGA

Provide power to the Trion T120F576 Development Kit, plug it into the computer via the USB cable, and switch it on by toggling SW17.

## Installing the USB Driver with Zadig

If you have not already installed the libsubK USB driver, do so now.

Download and open the Zadig software (available [here](https://zadig.akeo.ie)). Choose **Options** → **List All Devices**. Turn off **Options** → **Ignore Hubs or Composite Parents**. Select the **Trion T120F576 Development Board (Interface 0)** from the dropdown. Select **libusbK(version)** next to **Driver**. Click **Replace Driver**. Next select the **Trion T120F576 Development Board (Interface 0)** from the dropdown. Select **libusbK(version)** next to **Driver**. Click **Replace Driver**.

 ![8_install_zadig_usb_driver](https://global.discourse-cdn.com/digikey/original/3X/4/d/4dd19a7ab00136f45c92775cd99ef62fc244b5b2.jpeg)  
**Figure 8.** Zadig software for libusbK driver installation

## Configuring the FPGA

Open the programmer by selecting **Tools** → **Open Programmer**. If the proper USB driver is installed and the target development kit is plugged in and powered on, then the **USB Target** field should populate with your target board.

Click on the **Select Image File** icon as shown in Figure 9 and open the blinking\_led.bit file. Select **JTAG** from the **Programming Mode** dropdown. Click the play button icon to the right of this dropdown.

Once the programming completes, LED D0 on the Trion T120F576 Development Kit blinks once per second.

 ![9_programmer](https://global.discourse-cdn.com/digikey/original/3X/7/b/7b6412c815a1d3221e305eeb6d46b17ffcdf628a.jpeg)  
**Figure 9.** Programming the FPGA

# Conclusion

This introduction to the Efinity IDE from Efinix using their Trion T120F576 Development Kit demonstrates the essential steps to create a simple project with these tools.
