This repository has been archived by the owner on Apr 27, 2023. It is now read-only.
Releases: scarv/xcrypto
Releases · scarv/xcrypto
v1.0.0
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
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:
- Substantially smaller in terms of resource usage with no impact on performance.
- See scarv/xcrypto-ref v0.15.1 for more.
v0.13.0
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
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
andxc.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
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
andxc.msrl.i
- Change #60 -
xc.scatter.*
andxc.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
andxc.prot.i
- Fix #53 - Bintuils encoding bug for
xc.ins
andxc.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 - Verilator Simulation Flow
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 theexamples/helloworld
folder. Uses the XCrypto acceleratedmpn_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
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 - Initial Public Release
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.