Xcrypto Versions Save

XCrypto: a cryptographic ISE for RISC-V

v1.0.0

4 years ago

Release Notes:

  • This is the version of XCrypto which will be maintained and built on going forward.
  • The v0.x.x branches are no longer maintained.

v0.15.1

5 years ago

Release Notes:

Specification:

  • Revised all f3=0 instruction encodings.
  • This was done to make the packed instructions much simpler to encode, and remove corner cases.
  • General cleanup and typo fixes.
  • Added a dedicated FAQ section for miscellaneous design rationale.
  • See scarv/xcrypto-spec v0.15.1 for more.

Reference Implementation:

v0.13.0

5 years ago

Release Notes:

  • Synchronise changes for version v0.13.0 of the XCrypto specfication.
  • Adds indexed load/store instructions
  • Fixes various typos in the specification, and clarifies some behaviour.

Submodule specific releases:

v0.12.0

5 years ago

Release Notes:

  • Add new benchmarking flow
  • Add SHA2 example code
  • Add emulated data load/store performance counters to Verilator environment
  • Add easier way to capture simulated program stdout
  • Modify #68, making xc.bop a 3 operand instruction rather than just two
  • Fix #71 "Encoding fixes needed for multi-precision instructions".
    • This fix requires a re-build of binutils and associated XCrypto software due to encoding changes.
  • Switch to centralised LaTeX submodule for bibliography and notation.

Known Issues:

  • Proofs for packed multiply instructions xc.pmul.h and xc.pmul.l timeout with no counter examples found.
  • Proofs for xc.mmul.3 multiply instruction times out with no counter examples found.
  • Protocols proof fails due to lack of fairness assumptions about memory stalling and cpu response acceptance.

v0.11.0

5 years ago

Release Notes:

  • Add the xc.lut instruction. A 4-bit in-line lookup-table instruction.
  • Add the xc.sha3.* instructions for accelerating code-dense Keccak Sponge functions.
  • Add Keccak / SHA3 code examples
  • Add AES code examples
  • Add Prince code examples
  • Change #63 - Increase the maximum possible immediate shift values for xc.msll.i and xc.msrl.i
  • Change #60 - xc.scatter.* and xc.gather.* syntax changes
  • Change #57 - Allow full-width immediate shfits and rotate for packed instructions where w=32
  • Fix #67 - Incorrectly specified field for xc.prot
  • Fix #66 - xc.ins/xc.ext instruction spec typos
  • Fix #64, #55 - xc.mix.* instruction spec typos
  • Fix #61 - bug in XCrypto core to AXI4-Lite bridge.
  • Fix #54 - Specification bug for xc.prot and xc.prot.i
  • Fix #53 - Bintuils encoding bug for xc.ins and xc.ext.
  • Fix #47 - Add switchable integration mode for the reference RTL. Faster v.s Easy Integration
  • Verilator flow and testbench environment improvments

Known Issues:

  • Proofs for packed multiply instructions timeout with no counter examples found.
  • Protocols proof fails due to lack of fairness assumptions about memory stalling and cpu response acceptance.

v0.10.1

5 years ago

Release Notes:

  • Added a proper verilator flow allowing for easy development of software using the actual integrated hardware platform.
  • Added sw-libscarv as a submodule
  • Example use of libscarv in the examples/helloworld folder. Uses the XCrypto accelerated mpn_add function.

Known Issues:

  • Performance gains due to XCrypto instructions negated by slow interface to the COP. See #47 for ongoing work.
  • Proofs for packed multiply instructions timeout with no counter examples found.
  • Protocols proof fails due to lack of fairness assumptions about memory stalling and cpu response acceptance.
  • No integration of formal checks into standard Icarus verilog simulation flow. All verification relies on model checking.

v0.10.0

5 years ago

Release Notes:

  • Add RTL implementation of the new AES acceleration instructions.
  • Add formal checks for the AES instructions.
  • Update implementation guide document with new AES block information.

Known Issues:

  • Proofs for packed multiply instructions timeout with no counter examples found.
  • protocols proof fails due to lack of fairness assumptions about memory stalling and cpu response acceptance.
  • No integration of formal checks into standard Icarus verilog simulation flow. All verification relies on model checking.

v0.9.0

5 years ago

Initial public release of XCrypto

This is the first public release of the XCrypto ISE specification and accompanying reference implementation.

Release Notes:

  • The XCrypto ISE specification document is attatched to this release as xcrypto-specification-0.9.0.pdf
  • The documentation for the reference implementation is attatched to this release as xcrypto-reference-implementation-0.9.0.pdf
  • Both documents can be re-built from source by running make docs from inside the repository.

Known Issues:

  • AES instructions currently implemented as NOP.
  • Proofs for packed multiply instructions timeout with no counter examples found.
  • protocols proof fails due to lack of fairness assumptions about memory stalling and cpu response acceptance.
  • No integration of formal checks into standard Icarus verilog simulation flow. All verification relies on model checking.