zzulb / proteus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Proteus

This is a repository for the paper "Proteus: A Pipelined NTT Architecture Generator".

It include a tool to generate parametric Radix-2 Single-path Delay Feedback (SDF) and Multi-path Delay Commutator (MDC) architectures for FPGAs.

This repository provides the source code of Proteus, a tool to generate parametric Radix-2 Single-path Delay Feedback (SDF) and Multi-path Delay Commutator (MDC) architectures for FPGAs.

All content of this repo is for academic research use only. It does not come with any support, warranty, or responsibility.

Structure of this Repo

The repository is structured into two main folders, namly toolchain and vivado_projects. The first folder toolchain contains all source code file to generate test vectors via python (toolchain) as well as all Verilog/SystemVerilog files required to generate a Radix-2 SDF or MDC architecture (hw). The second folder vivado_projects contains the project-files for Radix-2 SDF and MDC for all of the

Running Proteus

Run python scripts

We prepared a toolchain that can be used to verify the functionality of the generated hardware. To generate you own testcases for a certain architecture and option you need to execute:

/bin/python3 /home/fhirner/Desktop/proteus/toolchain/py/ntt_demo.py <NTT_TYPE> <RADIX_TYPE> <OP> <LOGN> <LOGQ> <REDUCTION_TYPE>

In case of Radix-2 MDC OP 5 with a polynomial size of 2^4 and a coefficient size of 64 bit that uses an addshift modular reduction; use:

/bin/python3 /home/fhirner/Desktop/proteus/toolchain/py/ntt_demo.py NORMAL MDC 5 4 64 ADDSHIFT

Run vivado projects

We already prepared vivado project for each option of Proteus to simplify usage. You first have to source all vivado related scipts via

source /opt/Xilinx/Vivado/2019.1/settings64.sh source /opt/Xilinx/SDK/2019.1/settings64.sh

After sourcing all related scripts you need to start with the appropriate project file. This can be done by using:

vivado -source vivado_projects/sdf/ntt_op_1_2/project_1/project_1.xpr

The command above starts vivado with Radix-2 SDF option 1 and 2, which can take up to a few second. Now you can either start a simulation, synthesis, or implementation run. If you want to use the testcases generated by the tool chain to verify the behavior you just need to click Run Simulation on the left toolbar of vivado. This will open a simulation form that runs the simulation behaivor. We already prepared a waveform to simplify the process.

Contributors

Florian Hirner - florian.hirner@iaik.tugraz.at

Ahmet Can Mert - ahmet.mert@iaik.tugraz.at

Sujoy Sinha Roy - sujoy.sinharoy@iaik.tugraz.at


The Authors are affiliated with the Institute of Applied Information Processing and Communications, Graz University of Technology, Austria

About


Languages

Language:VHDL 44.1%Language:HTML 33.6%Language:C 12.3%Language:Verilog 6.5%Language:Tcl 2.0%Language:SystemVerilog 0.6%Language:V 0.5%Language:C++ 0.2%Language:Shell 0.1%Language:SuperCollider 0.1%Language:JavaScript 0.1%Language:Stata 0.0%Language:Forth 0.0%Language:Batchfile 0.0%Language:Python 0.0%Language:Makefile 0.0%Language:Pascal 0.0%Language:PureBasic 0.0%