commit | 74cc22123ef9e74312dd4c66f90d43d9e9866f19 | [log] [tgz] |
---|---|---|
author | Pirmin Vogel <vogelpi@lowrisc.org> | Mon Aug 30 23:38:54 2021 +0200 |
committer | Pirmin Vogel <vogelpi@lowrisc.org> | Thu Sep 09 21:50:39 2021 +0200 |
tree | 391d029af29ecb8329f50de5603a18fe24a8a83c | |
parent | a7cd9a263cc690cefadb3465e652e9876c895132 [diff] |
[kmac, fpga] Add command delay + accept message while idle for SCA This commit adds two optional changes to KMAC to simplify SCA measurements on FPGA: 1. Writes to the command register are presented to the hardware 40 clock cycles later to allow Ibex to go to sleep before the operation starts. This reduces the noise during SCA measurements. In addition, software can write two commands in sequence. The second command is buffered internally and will be presented to the hardware 40 cycles after the first one. This allows for more efficient SCA measurements as Ibex doesn't need to be woken up after the absorb stage to trigger the squeeze. 2. KMAC accepts writes to the message FIFO while idle. This allows Ibex to provide the message before writing the start command, which simplifies SCA measurements. Both these options are configured via separate parameters with a `Sec` prefix. They are only enabled on the FPGA platform used for SCA measurements. On all other platforms, safe default values are used (both options disabled). Choosing any non-default values will generate lint errors to reduce the risk of accidentally using these options. Signed-off-by: Pirmin Vogel <vogelpi@lowrisc.org>
OpenTitan is an open source silicon Root of Trust (RoT) project. OpenTitan will make the silicon RoT design and implementation more transparent, trustworthy, and secure for enterprises, platform providers, and chip manufacturers. OpenTitan is administered by lowRISC CIC as a collaborative project to produce high quality, open IP for instantiation as a full-featured product. See the OpenTitan site and OpenTitan docs for more information about the project.
This repository contains hardware, software and utilities written as part of the OpenTitan project. It is structured as monolithic repository, or “monorepo”, where all components live in one repository. It exists to enable collaboration across partners participating in the OpenTitan project.
The project contains comprehensive documentation of all IPs and tools. You can access it online at docs.opentitan.org.
Have a look at CONTRIBUTING and our documentation on project organization and processes for guidelines on how to contribute code to this repository.
Unless otherwise noted, everything in this repository is covered by the Apache License, Version 2.0 (see LICENSE for full text).