hello.

My name is Intel F. Hanako and I provide technical support for Intel® FPGA products at Macnica.

 

This is the continuation [#2] of building the Intel® FPGA development software Quartus® Prime on the “cloud computing” (commonly known as the cloud) that is often heard these days.

I tried to run the FPGA development tool Quartus® Prime on the cloud [#1/2], and I was able to confirm that the VNC server and XRDP were running, so I made an RDP connection from the local machine to the virtual machine on the cloud.

RDP connection from local machine

Start "Remote Desktop Connection" of Windows OS, enter the global IP in the computer name and connect.

Article header img07 9

The XRDP login screen will be displayed. Select and enter the following information to login.
For the password, enter the password set in 5 of [#1] running the FPGA development tool Quartus® Prime on the cloud.

Article header img08 1 3


Hey! You've successfully logged into Linux on the cloud! ! !

Article header img09 7

Download and Install Quartus® Prime Lite Edition

In the virtual machine on the cloud, download from the web browser as usual.

Alternatively, download Quartus® Prime Lite Edition by command on Linux terminal or Tera Term.
Recently, the Lite Edition has a large file size, so it is recommended to check the MD5 checksum to see if it has been successfully downloaded.

Article header img10 5

Installation work is normal.

Of course, this work can also be executed in the terminal or Tera Term.
No license is required as it is the Lite Edition.

Compile with Quartus® Prime Lite Edition

Launch Quartus® Prime. The work is similar to the normal flow locally.

General development flow for FPGA / CPLD

Program from a virtual machine on the cloud

After creating the design, compilation was completed and programming files (.sof/.pof) were generated.

Download this file to your FPGA evaluation board at hand (that is, connected to your local machine).

There are two possible programming methods.
A : Transfer sof/pof from virtual machine to local machine and write with Programmer on local machine
B : Connect the virtual machine and the local machine via VPN and write from the programmer of the virtual machine


A simple method is Method A: transfer sof/pof from the virtual machine to the local machine and write it with the programmer on the local machine.
File transfer is also possible using cloud storage services or SSH connections (SCP function) using Tera Term.

No matter how you share your files, once you have your programming files stored locally, all you have to do is launch the Quartus® Prime Programmer on your local machine and write to it.

Hanako's Tweet
"If you have an RDP connection, you can copy and paste files to your local machine."

 


And the method I will introduce this time is B♪

It is a method of writing from the Programmer of the virtual machine by connecting the virtual machine and the local machine via VPN.

Connect the virtual machine and the local machine with a VPN (Virtual Private Network).

This time, I didn't want to spend money, so I built a software VPN environment and wrote remotely from the Programmer screen of the virtual machine.

1. Install and configure a VPN server and VPN client

Article header library 120265 pic01 2

I used SoftEther VPN for VPN software this time.
Set up SoftEther VPN Server and SoftEther VPN Client on the virtual machine.
Set up SoftEther VPN Client on the local machine.
Each software is available at the SoftEther VPN Download Center.

A little point of Hanako♪
It is recommended to add and set up SoftEther VPN Server Manager for Windows, which can control the VPN server with a GUI, on the local machine side, as it makes setting up and operating the VPN server easier.

The work for each setup is as follows.

  • Install SoftEther VPN Server on Virtual Machine
  • Install and Initialize SoftEther VPN Client on Virtual Machine
  • Install SoftEther VPN Server Manager for Windows on the local machine and make initial settings for the virtual machine's SoftEther VPN Server
  • Install and Initialize SoftEther VPN Client on Local Machine


These operating procedures and explanations are omitted. (Sorry, it's not one of our products.)
For details, please refer to the SoftEther VPN Manual.

2. Connect to VPN

Start SoftEther VPN Server on the virtual machine using SoftEther VPN Server Manager installed on the local machine.

Article header img15 4


After confirming that it has started, start SoftEther VPN Client. Start with a simple local machine.
(Since it is Windows, it has a GUI manager, so you can easily start it and connect to the VPN server.)

Article header img16 4

After confirming the connection to the VPN server, start the SoftEther VPN Client on the virtual machine side and connect to the VPN server. Move to the installation folder of the VPN client with Linux terminal or Tera Term and execute the command to start it.

# ./vpnclient start

Enter the SoftEther VPN command line input mode with the following command and select “2. Management of VPN Client”.

# ./vpncmd
Article header img17 3


Specify “localhost” as the destination host name or IP address to connect.

Article header img18 3

Specify the connection settings created in advance and start connecting to the VPN server.

AccountConnect <接続設定名>;

If you can confirm the message "The command completed successfully.", the connection is complete. Use the exit command to get out of SoftEther VPN command line input mode.



Next, check the IP address of the virtual network used for VPN connection with ifconfig or ip command.

 

Finally, if you can confirm the connection between VPN clients with the ping command, the work is complete.



Hanako's Tweet
In the remote operation of the Programmer to be executed this time, ping opening does not have to be mutual. It is OK if at least the virtual machine on the cloud is open to the local machine.

 

3. Program the Device with the Virtual Machine Quartus® Prime Programmer

The main challenge here is whether the USB-Blaster™ II download cable attached to the local machine is visible (recognized) in the Programmer's Hardware Setup screen on the virtual machine.

But you can do it by following the steps below!
I tried programming the device by remotely operating the Quartus® Prime Programmer

The relationship between "local" and "remote" that appear in the above article and each machine that appears in this article is as follows.

Both articles mention “local” so don’t get confused.

  • "Local" → Virtual machine on the cloud
  • "remote" → local machine
Article header library 120265 pic02 3
Connection environment and operation image


Once you have completed the procedure for programming a device by remotely operating the Quartus® Prime Programmer up to the “remote settings”, start the Quartus® Prime Programmer on the cloud in the same way as when operating on a normal local machine. To do.
Display the Hardware Setup screen, and click the Add Server button on the JTAG Settings tab.

Enter the “Local Machine IP Address” and “Password”.

Article header img19 3


If successfully connected to the USB-Blaster™ II on the local machine, OK is displayed in Connection Status (JTAG Settings tab), and the Currently selected hardware: pull-down list in the Hardware Settings tab shows the USB-Blaster™ II on the local machine. can be selected.

Article header img20 2

write completed

Programming is complete when the Programmer's Progress bar reaches “100% (Successful)” and the Message window displays “Successfully performedoperation(s)”.
Looking at the board in hand...

Article header img21 4

I was able to confirm that writing was done successfully!

Hanako's Tweet
This time, I tried writing a .sof file (CRAM) and writing a .pof file (CFM) to MAX® 10.

The .sof files burned relatively smoothly and effortlessly, but the .pof files took quite a while.

Writing data from the cloud was a whopping 20x* faster than writing locally.

(* Of course, it depends on the capacity of the device and the Internet communication environment.)


Hanako's conclusion
When writing to FPGA in the cloud development environment, it is limited to debugging (.sof)!

Write the pof file on your local machine.

(Of course, it's much more comfortable to transfer sof/pof to your local machine, like Method A.)

 

This time, we introduced that you can build an FPGA development environment in the cloud.

You can stop your virtual machines when you're not using the cloud, so you don't incur costs.

People who use Quartus® Prime infrequently or for a short period of time, people who do not want to prepare a high-spec PC that can use Quartus® Prime, or temporarily use a PC with higher specs than the PC they are currently using. There may be various reasons, such as those who want to, but I think there will be an option called "cloud" for the FPGA development environment in the future.

 

Article header cb line top 13

I'm working on the free tier this time, so it wasn't very good for GUI operations due to lack of memory.

VNC and XRDP are running in the background, and graphics still use memory.
Downloading with a web browser and installing with a wizard (GUI) was a little stressful, but the GUI of Quartus® Prime itself was very heavy and stressful.

Therefore, I often worked on the Linux terminal or Tera Term.
Compile execution also sometimes caused an error due to insufficient memory.

Article header img13 5

This time, the minimum memory size of the target device satisfies the default value, but it seems that the capacity is not enough when using the GUI.

By the way, compiling by command with SSH connection (Tera Term) was successful and smooth without any problems.
For those who refer to this article and operate the FPGA development environment in the cloud and operate it with a GUI, I think it is good to select a reasonable memory capacity.

(If you increase the memory capacity, it will be charged, so please check in advance on the provider's website.)

Article header cb line btm 19

Click here for recommended articles/materials

I tried running the FPGA development tool Quartus Prime on the cloud server [#1/2]
The first LED blinking with FPGA!
I tried programming the device by remotely operating the Quartus® Prime Programmer