/aws-remote-desktop-for-eda

Launch Xilinx Vivado Design Suite using a DCV Remote Desktop on AWS

Primary LanguagePythonMIT No AttributionMIT-0

AWS Remote Desktop For EDA

Launch Xilinx Vivado Design Suite using a DCV Remote Desktop on AWS

License

This library is licensed under the MIT-0 License.

Summary

NICE DCV is a high-performance remote display protocol that provides customers with a secure way to deliver remote desktops and application streaming from any cloud or data center to any device, over varying network conditions. With NICE DCV and Amazon EC2, customers can run graphics-intensive applications remotely on EC2 instances, and stream the results to simpler client machines, eliminating the need for expensive dedicated workstations. Customers across a broad range of HPC workloads use NICE DCV for their remote visualization requirements. The NICE DCV streaming protocol is also utilized by popular services, like Amazon AppStream 2.0 and AWS RoboMaker.

In this workshop we will demonstrate the high performance capabilities of NICE DCV leveraging the Xilinx Vivado Tool Suite, a popular EDA (Electronic Design Automation) tool suite. We will launch an instance using the AWS FPGA Developer AMI and configure the instance as a remote desktop using NICE DCV. The AWS FPGA Developer AMI includes the Xilinx Vivado Design Suite. It is important to note that the F1 AWS FPGA instance is not required for this workshop. After launching the instance, you will connect to the remote desktop using a web browser (or the DCV client), launch the Xilinx Vivado GUI, and run a workflow with an example design.

Here is an animated gif showing a quick overview of the workshop steps:

vivado dcv demo video
Example launch, see the full resolution video here: Vivado DCV Demo

References

Duration

It will take approximately 40 minutes for CloudFormation to automatically create your DCV desktop environment, and launch Vivado. If you run through the example workflow, the time for the entire flow (simulation, synthesis, etc.) will vary depending on the instance type you choose.

Requirements

  • You will need to subscribe to the AWS FPGA Developers AMI on the AWS Marketplace (instructions are below).

  • You will need a VPC that has access to the internet, either using a public VPC or NAT gateway. This is required to download all of the packages (for both DCV and OS packages).

Architecture

The Official AWS Reference Architecture can be found here: Remote Desktop for EDA

ref arch  vivado dcv diagram

Price

There is no additional charge to use NICE DCV on Amazon EC2. You pay only for the EC2 resources you use to run and store your workloads.

Step-by-step Guide

Subscribe to AWS FPGA Developer AMI

Before you can launch the CloudFormation stack, you will need to subscribe to the AWS FPGA Developer AMI. There is no charge to subscribe to the AWS FPGA Developer AMI, you will only be charged for the underlying resources.

  1. Sign into your AWS account

  2. Go to the AWS FPGA Developer AMI on the AWS Marketplace: https://aws.amazon.com/marketplace/pp/B06VVYBLZZ

  3. Click on Continue to Subscribe button on upper right

    Continue to Subscribe

Launch with CloudFormation

The resources used in this workshop will be launched with AWS CloudFormation. For additional information about CloudFormation please visit AWS CloudFormation.

Important
Read through all steps below and watch the quick video before clicking the Launch on AWS button.
  1. Click on the Launch on AWS button and follow the CloudFormation prompts to begin.

    Currently available in these regions.

    Tip
    Context-click (right-click) the Launch on AWS button and open the link in a new tab or window to make it easy to navigate between this github workshop and AWS Console.
    Table 1. Launch CloudFormation Template
    Region Launch template

    N. Virginia (us-east-1)

    Launch on AWS

    Ohio (us-east-2)

    Launch on AWS

    N. California (us-west-1)

    Launch on AWS

    Oregon (us-west-2)

    Launch on AWS

    Ireland (eu-west-1)

    Launch on AWS

    Sydney (ap-southeast-2)

    Launch on AWS

    Hong Kong* (ap-east-1)

    Launch on AWS

    *May require additional request for access

  2. Accept the defaults on the Prerequisite - Prepare template page and click Next.

  3. You should see the Stack Details page:

    stack details
  4. Enter values for parameters.

    Parameter Variable Name Description

    VPC ID

    VPCId

    VPC ID for where the remote desktop instance should be launched

    Subnet ID

    Subnet

    For the Subnet ID, you should choose one in the Availability Zone where you want the instance launched

    OPTIONAL: Existing Security Group (e.g. sg-abcd1234efgh)

    ExistingSecurityGroup

    OPTIONAL: Needs to be a SG ID, for example sg-abcd1234efgh. This is an already existing Security Group ID that is in the same VPC, this is an addition to the security groups that are automatically created to enable access to the remote desktop, leave as NO_VALUE if you choose not use this. Use this link to see you existing secuirity groups: Security Groups

    Remote Desktop Instance Type

    remoteDesktopInstanceType

    This is the instance type that will be used. As this is a 2D workstation, we are not supporting GPU instance types.

    EC2 Key Name

    EC2KeyName

    Name of an existing EC2 KeyPair to enable SSH access to the instance. More info: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

    Operating System of AMI

    OperatingSystem

    Operating System of the AMI. Currently only supporting CentOS 7

    OPTIONAL: Static Private IP Address

    StaticPrivateIpAddress

    OPTIONAL: If you already have a private VPC address range, you can specify the private IP address to use, leave as NO_VALUE if you choose not use this

    Assign a public IP address

    UsePublicIp

    Should a public IP address be given to the instance, this is overridden by CreateElasticIP = True

    Create an Elastic IP address

    CreateElasticIP

    Should an Elastic IP address be created and assigned, this allows for persistent IP address assignment

    OPTIONAL: S3 bucket for read access

    S3BucketName

    OPTIONAL: S3 bucket to allow this instance read access (List and Get), leave as NO_VALUE if you choose not use this

    CIDR block for remote access (ports 22 and 8443)

    AccessCidr

    This is the CIDR block for allowing remote access, for ports 22 and 8443

    User name for DCV login

    UserName

    User name for DCV remote desktop login, default is simuser

    Password for DCV login

    UserPass

    Password for DCV remote desktop login. The default password is Ch4ng3M3!

  5. After you have entered values for the parameters, click Next.

  6. Accept the default values of the Configure stack options and Advanced options sections and click Next.

  7. Review the CloudFormation stack settings.

  8. Click all checkboxes in the blue Capabilities box at the bottom of the page.

    capabilities checkbox
  9. Click Create stack.

  10. Verify stack was created successfully

    In the Events tab, you should see CREATE_COMPLETE for the AWS::CloudFormation::Stack event Type.

    It will take about 40 minutes for the stack creation to complete. This is due to the large number of packages that need to be installed. Upon completion you should see the connection information (IP address) in the Outputs section of the stack.

Connect to the DCV Remote Desktop session

You can either use your web browser to connect to the DCV Remote Desktop session, or you can optionally download the DCV Client.

  1. Using a web browser

    1. Make sure that you are using a supported web browser, check her for more info: NICE DCV Requirements

    2. Use the secure URL, IP address, and correct port (8443) to connect

      When you connect make sure you use the https protocol, to ensure you are using a connecting connection.

  2. Use the NICE DCV Client:

    1. Here are the DCV client downloads

    2. Use the IP address, and correct port (8443) to connect

      For example: 111.222.333.444:8443

Here is an example login screen (for the DCV Client you will need to connect first using the IP:Port, for example 111.222.333.444:8443):

dcv login

 

After you login with the credentials you specified when creating the stack, you see the Desktop. It should look something like this:

dcv desktop

 

Run the DCV GL Test. Go to Applications → Other → DCV GL Test Application.

dcv gl test menu

 

You should see this:

dcv gl test

 

Launch Vivado and run sample workflow

Now that your remote desktop is setup, you can launch the Vivado Design Suite (included in the AWS FPGA Developer AMI). To launch Vivado, start a terminal session, go to Applications → Favorites → Terminal.

Now type vivado at the command prompt and hit enter:

vivado launch

 

Vivado will launch in a GUI session, and you should see this:

vivado startup

 

Now lets run a sample workflow using one of the included example projects. Go to the Quick Start section and select Open Example Project. The wizard will guide you through the process of opening the project, select Configurable MicroBlaze Design for your example project. Use the default values for all configuration settings, and click Finish.

After the project launch you should see this:

vivado example project 1

 

Now that the sample project is launched, you can now run through the entire workflow. Here is an example, showing the Device view and the Synthesized Schematic.

vivado example design