Narvi Spartan 7 FPGA Module

Programming Narvi with Vivado using Xilinx Virtual Cable (XVC) and Tenagra

22 views March 7, 2024 megha-m 0


What is Tenagra? 

It is an FPGA System management tool for configuring and communicating with Numato Lab’s supported FPGA modules and development platforms. This software is designed to be a single interface for managing the devices and exercising some of the available features. Currently, Tenagra supports configuring the FPGA module/board (programming). With Tenagra, you can create multiple configuration setups with different bitstreams and settings for each device model so that switching between multiple bitstreams becomes a very simple process. This is especially helpful during development where the device may need to be reprogrammed with various bitstreams repeatedly.

What is the XVC server?

As stated on Xilinx’s official page, Xilinx Virtual Cable (XVC) is a TCP/IP-based protocol that emulates JTAG protocol and acts like a JTAG cable over a network. Xilinx Virtual Cable provides a way to access the JTAG chain on the target FPGA board and debug the target without the need for a physical officially supported JTAG cable.

The Narvi Spartan 7 FPGA Development Board features a high-speed Micro USB interface. So, Narvi can be configured using its onboard USB interface using the Numato Lab’s Tenagra application. This Tenagra application has the XVC server feature which uses the XVC server protocol to program the FPGA boards. So programming Narvi through the XVC server is possible using the Tenagra application. In this article, we will show you step by step how to program the Narvi board through the XVC server in Tenagra without the need for a separate external JTAG programmer.


Let’s get started

Before starting please visit the Tenagra Product Page and download the installer for your operating system. Extract the zip file and run the installer. Follow the steps as prompted by the installer to complete the installation.

Step 1 :

Launch the Tenagra application and connect the Narvi board using a Micro USB cable to the system. If the board is detected by Tenagra, it will display the Narvi board on the main page.

Step 2:

Click on the “Select” button present alongside the device name. On the next page (i.e., Device Information page) you will see all the details of the board and features of the Tenagra application (i.e., Program device, Memory exerciser, and XVC Server).

Step 3: 

To get started with XVC Server, on the Device Information page, click the “XVC Server” button. Once you click the XVC Server button, you will see a status message that says “Running” as shown in the following image.

Step 4:

To program through the XVC server using Vivado as a client, open Vivado -> Hardware Manager -> Click on “Open target” and select “Open New Target”. You will get the “Open New Hardware Target” wizard, click “Next” to proceed.

Step 5: 

Under the Hardware Server Settings, connect to the Local server or Remote server. You need to select the “Local server” option if the Vivado Hardware server is running in the local machine (most common usage) otherwise, select Remote server and click “Next”.

Step 6:

In the next wizard click “Add Xilinx Virtual Cable ( XVC )” and enter the Host Address of the system/machine in which target is connected, leave the Port Number as 2542 and click “OK”.

If the target is added successfully, you will be able to see the added target as shown in the image below. Click “Next”.

In the next window, you’ll get a summary of the hardware selected as shown in the image below. Click “Finish” to connect to the target.

Once you click “Finish” you should get the Narvi device in the Hardware section as shown in the image below.

Step 7: 

Right-click on the “xc7s50_0” device and select “Program Device”.

Find the Narvi bitstream file that you wish to program to the board and click “Program”.


Congratulations you’ve just successfully programmed your bitstream to the Narvi board through the XVC server using Tenagra, without the need for any external JTAG hardware.

Was this helpful?

Leave A Comment