Secure-IC True Random Number Generator


Application Summary

Secure-IC offers both True Random Number Generator (TRNG) resilient to harmonic injection for statistically independent sets of bits generation and Deterministic Random Bit Generator (DRBG) for high bitrates requirements. These random generators are compliant with commonly used statistical tests suites.

Vendor Modified Size Container Version
Secure-IC April 10, 2020 285.49 MB trng_u200_v1.0

Deployment Options

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

Cloud Services
  • Xilinx Runtime: 2019.1
  • Target Platform: nx5u_xdma_201830_2
  • Instance type: f1.2xlarge
On Premises
Alveo U200
  • Xilinx Runtime: 2019.1
  • Target Platform: xdma_u200_201830_2

Try or Buy

Obtain an Access Key for Evaluation or Purchase

Begin your free trial and run the code sample below.

View and purchase available pricing plans for this application.


Start Evaluation

Follow the instructions based on your deployment method.



Sign up for Nimbix Service

  • Go to Nimbix Cloud site to sign up for a free Alveo Trial:

  • Once the sign-up form has been submitted, you will will recieve an e-mail with instructions for setting up your Nimbix account.
  • Complete setting up your Nimbix account for the free trial.


Application Execution

2.1 Select the Application on the Nimbix Platform

  • Sign-in to the Nimbix Platform:

  • Click on the "Secure-IC TRNG" application tile. 
  • Click on “TRNG” button in the lower left of the pop-up window.

2.2 Run the Application


  • Machine Type: nx5u_xdma_201830_2
  • Cores: 16


  • Access Key: Select the "cred.json" file downloaded earlier on your computer



Once your job is complete, a 1MB "random.dat" file will be available on the Nimbix FTP.

Alveo U200


Host Setup

The Xilinx Runtime (XRT) host application is supported on Ubuntu 16.04 /18.04 and CentOS 7.x.  With sudo access, use the following command to download and run the setup script:

1.1 Clone GitHub Repository for Xilinx Base Runtime

    git clone && cd Xilinx_Base_Runtime

1.2 Run the Host Setup Script

    ./ -v 2019.1 -p alveo-u200


  • Please wait for the installation to complete.  During this time you may need press [Y] to continue the host setup.
  • If you choose to flash the FPGA, you will need to cold reboot the local machine after the installation is completed to load the new image on the FPGA.
  • The script for host setup can be used to setup other versions XRT and shell. Please check for more details.

Install Docker (If not installed yet)

With sudo access, use the following command to run the utility script to install docker.

1.3 Go to Xilinx_Base_Runtime utilities directory

    cd Xilinx_Base_Runtime/utilities

1.4 Run the Docker installation script



Application Execution

Enter the following commands in a terminal window to run the application:

2.1 Setup Environment Variables by script from Xilinx_Base_Runtime

    source Xilinx_Base_Runtime/utilities/

2.2 Pull the Docker Image

    docker pull hubxilinx/secureic_trng_alveo_u200

2.3 Run the Docker Image

    docker run -v /tmp/cred.json:/home/appuser/cred.json -v /dev/shm:/data $XILINX_DOCKER_DEVICES hubxilinx/secureic_trng_alveo_u200

Description of command arguments:

  • -v /tmp/cred.json:/home/appuser/cred.json  - Map local cred.json dir : container dir
  • -v /dev/shm:/data -  Map the local dir : container dir for the generated output file
  • $XILINX_DOCKER_DEVICES  - Environment variable set by the host setup script



Once your job is complete, it will generate a 1MB data file "/dev/shm/random.dat".



Install and configue docker

    git clone

sudo Xilinx_Base_Runtime/utilities/


Application Execution

Upload cred.jon file (get from step 1) to AWS instance in folder /opt/xilinx/cred.json. Then chmod 777 cred.json.

Execute following commands:

    source Xilinx_Base_Runtime/utilities/

docker run -v /opt/xilinx/appstore/cred.json:/root/cred.json -v /dev/shm:/data $XILINX_AWS_DOCKER_DEVICES hubxilinx/secureic_trng_aws_f1

Check the result: /dev/shm/random.dat