commit | bee94fda2845061741afa6b85c448378e1be2b8f | [log] [tgz] |
---|---|---|
author | Rupert Swarbrick <rswarbrick@lowrisc.org> | Mon Apr 11 12:52:24 2022 +0100 |
committer | Rupert Swarbrick <rswarbrick@gmail.com> | Mon Apr 11 20:09:42 2022 +0100 |
tree | f935805478d2fd7e1090c99761d24d71c3bd8e4d | |
parent | ce29dc238451f2d6f575b98531f28ea2e900601f [diff] |
[rom_ctrl,rtl] Tighten up expression for counter_data_rdy This signal is used to tell the counter that it can increment on this cycle. Usually, that would be because we'd managed to pass a packet of data to KMAC (when state is ReadingLow). Once we've finished passing things to KMAC, we want to race through the last 8 words with no back pressure. This was implemented by the "state_q != ReadingLow" term. Unfortunately, an injected error on state_q when we're in the ReadingLow state caused us to spuriously increment the ROM index which, in turn, meant that the data we were presenting to KMAC changed. This isn't a big deal (the chip is already going to deadlock), but it causes an assertion failure. Rather than messing around with assertions, let's just tighten up the expression so that we control the "race ahead" behaviour more explicitly. ReadingHigh and KmacAhead are the two FSM states where we've finished passing data to KMAC but haven't yet finished reading the top of the ROM. Signed-off-by: Rupert Swarbrick <rswarbrick@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]({{< relref “CONTRIBUTING.md” >}}) 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).