| commit | e1b1349257e1d897dfbbefb82cd32e9244e5cbbf | [log] [tgz] |
|---|---|---|
| author | Philipp Wagner <phw@lowrisc.org> | Mon Sep 27 18:22:48 2021 +0100 |
| committer | Philipp Wagner <mail@philipp-wagner.com> | Wed Oct 06 23:29:35 2021 +0100 |
| tree | 70b7ef46dd713717a24decceddc7631259b6956a | |
| parent | d0ff7c02aebf159eff6e1b9951b8cc7e4f7b2864 [diff] |
[ipgen] Support object template parameters Some ipgen templates require complex data structures as template parameters: nested combinations of lists, dicts, string and integer values. The parameters passed to the clkmgr are a good example: they consist of information about all clocks, their associated resets, and much more. Having individual string or int template parameters is infeasible. This commit introduces a "catch-all" template parameter type called "object". It can be any data structure, as long as it can be serialized to Hjson. We actually check for that to ensure round-trip safety even if the template parameters are not written to a config file and reloaded, but passed to the template directly. The checking is using the JSON serializer, as extended by the Hjson library. This makes it possible to simplify the implementation considerably, at the cost of a slightly less beautiful and less performand implementation (since we do a object -> json -> object round-trip with associated string parsing). Signed-off-by: Philipp Wagner <phw@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).