Xilinx is now part ofAMDUpdated Privacy Policy

True Random Number Generator with comprehensive statistical tests

Xiphera’s FPGA-based TRNG consists of an independent entropy source, online health tests and a standard compliant AES-CBC-MAC -based entropy extractor. The design complies with NIST SP 800-90B. More information can be found on Xiphera’s TRNG product description.

In AWS platform TRNG can be evaluated for free for 14 days by collecting random data and analyzing it with provided free statistical tools. TRNG can also be added to an existing design to provide required randomness.

Vendor: Xiphera

Last Update: November 25, 2020

Size: 202 MB

Container Version: xiphera_trng_aws_f1:beta

Try or Buy

Obtain an entitlement to evaluate or purchase this product.

Begin a free trial and run the application example below.

View and purchase available pricing plans for this application.

Deployment Options

This application is containerized and can be easily run in a few minutes in the cloud, or on-premises.

Cloud Services
  • Xilinx Rumtime: 2019.2
  • AWS AMI:  FPGA Developer AMI - 1.8.1
  • Target Platform: f1.2xlarge


Start Evaluation

Follow the instructions based on your deployment method.



Obtain Evaluation Access Key

An access key "cred.json" may be obtained through the Xilinx Acceleration Application Store.

1.1 Login to the Xilinx Acceleration Application Store

  • Create and account if you do not already have one.
  • Order “Xilinx AppStore Free Eval Plan” 

1.2 Create Access Key and Download it as “cred.json” File


Setup AWS

2.1 Sign-up for Amazon Web Services (AWS)

2.2 On EC2 console launch an F1 instance of your choice (f1.2xlarge recommended) with FPGA Developer AMI - 1.8.1

2.3 Copy (scp) your “cred.json” file to the home directory of the instance and SSH into the instance.

    scp -i "$AWS_ACCESS_KEY_FILE" cred.json centos@$AWS_PUBLIC_IPV4:/home/centos/


Install and configure docker

    git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git

sudo Xilinx_Base_Runtime/utilities/docker_install.sh



    git clone https://github.com/aws/aws-fpga.git /home/centos/aws-fpga
source /home/centos/aws-fpga/sdk_setup.sh


Application Execution

5.1 Pull the application docker from dockerhub.

    sudo docker pull xilinxpartners/xiphera_trng:aws_f1_beta

5.2 Program the Xiphera TRNG to AWS Xilinx xcvu9p

    sudo fpga-load-local-image -S 0 -I agfi-03230dd76853a942b

5.3 Run the application docker to collect random data from Xiphera TRNG

    source Xilinx_Base_Runtime/utilities/xilinx_aws_docker_setup.sh
sudo docker run -it -v /home/centos/cred.json:/cred.json -v /home/centos/:/random/ $XILINX_AWS_DOCKER_DEVICES xilinxpartners/xiphera_trng:aws_f1_beta
  • -v /home/centos/cred.json:/cred.json - Map the Access Key “cred.json” to docker volume
  • -v ~/:/random/ - Map the volume where random binary data file is saved, ~/ can be changed
  • $XILINX_AWS_DOCKER_DEVICES – Passes the FPGA device to docker



On the CLI output you can monitor the random data collection. CLI shows the amount of random data written to a file and in addition the average byterate of the TRNG and the elapsed time in seconds.

The application stops automatically when one gibibyte (1 GiB) is collected in the binary file xip8001b.bin.

This file can be transferred to local machine for analysing or it can be done also in the cloud. Xiphera recommended test suites are Practrand, gjrand and TestU01. Xiphera provides instructions and scripts for using these randomness assessment suites. You can access these instructions and scripts from Xiphera’s GitHub.