Design ∪ Hardware
DUH ("Spirit" in most slavic languages. pronounced /dûx/, with the final consonant of loch or Bach) is a suite of tools for packaging reusable hardware components and
designs. DUH enables the generation of JSON5 (duh documents) for
describing these components, and also enables export from these documents
to output deliverables.
Install
Check that you have Node.js
version (12, 14, 16) installed by running:
node --version
On Installing Node.js via package manager
Install duh
tool suite.
npm i -g duh
You might need to add ./node_modules/.bin/
to your PATH
In Bash:
export PATH=./node_modules/.bin:$PATH
And test installation with duh --help
Quick start
Base set of DUH tools to author duh documents:
-
Create
- Run
duh init
to create a base document.
-
Import
- SystemVerilog: Run
duh duh-import-verilog-ports
to import an interface from Verilog RTL of the component - IPXACT: duh-ipxact
-
Infer
- Run
duh-portinf
to infer mappings of portgroups to standard bus
definitions AXI, AHB, TileLink, etc. - Run
duh-portbundler
to group ports, which are unassigned to a bus
mapping, into structured bundles.
-
Validate
- Run
duh validate
to test whether a given document conforms to the
DUH document structure.
-
Export
- Run
duh-export-scala
to generate scala black box wrappers for the
component. - IPXACT: duh-ipxact
DUH toolbox
Example of DUH documents
- block-ark for a walk-through
example using the DUH suite on a standalone module to produce a valid
duh-document that fully describes the mapping of ports to known
bus definitions.