commit | e86f54f596f93f0a279471e5d172e77e538b9daf | [log] [tgz] |
---|---|---|
author | Eunchan Kim <eunchan@google.com> | Wed Oct 30 14:54:36 2019 -0700 |
committer | Eunchan Kim <eunchan@google.com> | Thu Oct 31 14:10:14 2019 -0700 |
tree | 99147f5c8aa2db0565c93c51562e357d7c51dc72 | |
parent | 0f9bcddbb40fc91d133c960019806f8ae5b82b8c [diff] |
[hmac] Block the msg fifo request with packer ready This is follow-up PR for #683 Problem 1: In #683, the design unguarded msg_fifo_gnt signal from `fifo_wready`. It only needs to see `packer_ready`. This results unintended request acceptance as `msg_write` is also gated by `fifo_wready`. What happend with the problem is, when the MSG_FIFO is full, it de-asserts `fifo_wready`. At this time, `prim_packer` has still enough room to accept one more request. It doesn't drop `packer_ready` (`prim_packer.ready_o`) yet. So `msg_fifo_gnt` can be high whenever the request comes. That request should've come to `prim_packer`, which didn't happen due to the `msg_write` is gated by `fifo_wready`. Resolution: `msg_write` is not gated by `fifo_wready`. I've tested hmac_back_pressure test with modified design. It still fails. But the failure isn't due to the modified design but the scoreboard assumes getting the fifo_full status which cannot be happen as the request was back-pressured and accepted after fifo_full condition is resolved. Also, fifo_full interrupt now happens when MSG_FIFO and prim_packer both cannot accept the new request, not only seeing MSG_FIFO `fifo_wready`. Cindy has a fix PR for this issue.
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.
The project contains comprehensive documentation of all IPs and tools. You can either access it online or build it locally by following the steps below.
Download and install hugo-extended
.
Ensure that you have the required Python modules installed (to be executed in the repository root):
$ sudo apt install python3 python3-pip $ pip3 install --user -r python-requirements.txt
$ ./util/build_docs.py --preview
This compiles the documentation into ./build/docs
and starts a local server, which allows you to access the documentation at http://127.0.0.1:1313.
Have a look at CONTRIBUTING for guidelines 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).