[dv/fpv] Clean up FPV script and add EndpointType to tlul_assert.sv

This commit strives at eliminating some of the explicitly added demotions (from
assert -> assume) in the fpv.tcl file. In particular, tlul_assert module
contains now a parameter EndpointType that can either be set to "Host" or
"Device", depending on what kind of endpoint it is bound to. Internally, some of
the assertions are switched to assumptions based on that parameter. In order to
keep code duplication to a minimum, the asserted/assumed sequences have been
split out as discrete sequence items such that they are only declared once. The
assertion enable/disable functions had to be revised as well, and the
tlul_assert interface has been changed into a module.

Further, two additional ASSUME macros have been added to prim_assert in order to
support immediate assumptions, and the reqParity assertion in the register file
is changed into an assumption everywhere.

All FPV and DV testbenches have been adapted to use the proper EndpointType.
Note that the behavior of the assertions/assumptions will remain the same for
all DV sims, but it changes the way they behave in FPV.
66 files changed
tree: 0d015234bbd7fa279ac1c43be08f4906ace982f1
  1. .github/
  2. ci/
  3. doc/
  4. hw/
  5. site/
  6. sw/
  7. test/
  8. util/
  9. .clang-format
  10. .gitignore
  11. .style.yapf
  12. _index.md
  13. azure-pipelines.yml
  14. CONTRIBUTING.md
  15. LICENSE
  16. meson.build
  17. meson_init.sh
  18. meson_options.txt
  19. python-requirements.txt
  20. README.md
  21. toolchain.txt
README.md

OpenTitan

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.

Documentation

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.

  1. Download and install hugo-extended.

  2. 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
  1. Execute the build script:
$ ./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.

How to contribute

Have a look at CONTRIBUTING for guidelines how to contribute code to this repository.

Licensing

Unless otherwise noted, everything in this repository is covered by the Apache License, Version 2.0 (see LICENSE for full text).