jyhi / Can

Can is a ChaCha20 cryptographic accelerator based on a No-Instruction-Set Computer (NISC) architecture.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can

Can is a ChaCha20 cryptographic accelerator based on a No-Instruction-Set Computer (NISC) architecture.

This is a COMP6200 MSc Project.

Building and Running

# Run the Scala code to run the Chisel/FIRRTL compiler to generate HDL
sbt run

A few files will be generated under the current working directory:

  • Can.anno.json: A serialization of FIRRTL annotations. *
  • Can.fir: A FIRRTL file compiled from Chisel sources.
  • Can.v: A synthesizable Verilog file compiled from FIRRTL.

Use Can.v to further synthesize / fit / map it in other tools.

Testing and Simulating

# Run all test benches
sbt test

# Generate coverage report
sbt coverage test coverageReport

ChiselTest is used to perform unit testing. Test cases are written with ScalaTest and simulation is performed on Treadle. Alternatively, the compiled HDL file can be used in other simulators, but this is not tested yet.

The coverage report will be generated under path target/scala-2.12/scoverage-report/.

License

This project is REUSE 3.0 compliant. Every file in this repository either contains a comment header or has a corresponding .license file identifying the license of the file, so different files may be licensed under different terms. In general:

The corresponding full license texts are available under the LICENSES folder. In addition, the LICENSE file is available for non-REUSE practices.

About

Can is a ChaCha20 cryptographic accelerator based on a No-Instruction-Set Computer (NISC) architecture.

License:Other


Languages

Language:Scala 80.7%Language:C 14.7%Language:Verilog 4.5%