Commit Graph

19 Commits

Author SHA1 Message Date
Dennis Potter 85598af11e
Closes #11: Add flag to turn off error-response on illegal addresses 2021-11-06 10:25:32 -07:00
Dennis Potter a43cd2ea6c
Closes #7: Add flag that disables unpacked arrays 2021-10-31 15:58:31 -07:00
Dennis Potter 0371bef439
Long CLI arguments now use dashes rather than underscores 2021-10-31 13:53:11 -07:00
Dennis Potter ac693f0c02
Change default logging settings
STDOUT now will get INFO-level logging by default. The file output will
get no logging by default.
2021-10-27 23:22:27 -07:00
Dennis Potter 27c5931101
Add option to add no bus-widget
If this option is defined, there will be a direct interface to the b2r
and r2b interface. The structs will be flattened out to wires for legacy
reasons.

This closes #3.
2021-10-24 22:09:16 -07:00
Dennis Potter abf3fac24f
Minor clean up, mostly Python Lint warnings 2021-10-20 23:51:07 -07:00
Dennis Potter 2da71dabf1
Update README.md to latest feature set 2021-10-20 22:25:07 -07:00
Dennis Potter 5e47ff664a
Add option to disable byte-enables 2021-10-18 23:48:14 -07:00
Dennis Potter e05408e8a1
Add support for inline-comments
It is possible to enable them for:

- fields
- registers
- regfiles
- addrmaps
2021-10-17 00:53:22 -07:00
Dennis Potter aa770073c4
Ensure that file-log gets dumped in --out_dir 2021-10-03 23:31:22 -07:00
Dennis Potter d3bfdeb3f0
Buswidth is now variable, based on widest register
Fixes #2.
2021-09-26 21:16:49 -07:00
Dennis Potter c52e59abd0
Add basic interrupt framework
Up to this point, interrupt outputs are generated and intr, enable,
mask, haltenable, and haltmask are supported. stick, stikcybit and the
different types of interrupts are not yet supported.

This commit also removes the option to turn off santiy checking. This is
a bad idea anyway...
2021-09-25 20:49:39 -07:00
Dennis Potter d298e79ec1
Fix bug where an empty search path caused srdl2sv to crash 2021-08-22 21:27:44 -07:00
Dennis Potter 95fef548cf
Add header with license and generation information to addrmap 2021-06-26 11:37:56 +02:00
Dennis Potter 9deb28ce4e
Add initial version of widget-code and fix remaining SV compiler errors
This adds initial support for a dynamic bus-protocol to internal
register logic SHIM. The chosen default protocol at this point is AMBA 3
AHB Lite and the logic is still empty.

    -> TODO: Adding the widget instantiation showed that it is required
    to have a better interface to parametrize ports & signals in the
    YAML. At this point, only a limited set of variables are supported.

Furthermore, all remaining Verilator compilation issues in the field are
resolved. Those were mostly related to non-declared wires and wrongly named
wires.
2021-06-05 15:37:09 +02:00
Dennis Potter 4f6010eed2
Dump addrmap packages with enums
This commit only adds package supports for addrmaps. It should be
relatively easy to extend this for regfiles in a future commit.

Furthermore, this commit adds support to _disable_ enums.
2021-06-03 12:02:27 +02:00
Dennis Potter cecb73f07a
Fundamental changes to the architecture of component classes
All components (e.g., fields, registers, addrmaps) are now children
of a common class Component. This common class has certain common
methods such as get_ports(), get_rtl(), or create_logger().

The AddrMap is now prepared to support alias registers by saving the
registers in a dictionary. That way, registers can easily be accessed
once an alias to a register is found. Furthermore, the addrmap template
is now also loaded from a YAML file. Lastly, the first preparements to
insert ports into the addrmap module are made.

For templates, the indents do not need to be added anymore to the
template. Now, a seperate method will automatically indent the RTL
based on simple rules (e.g., increment indent if `begin` is found).
The CLI also supports settings for the tabs (i.e., real tabs or spaces
and the tab width).

A lot of functionality from the __init__() method of the field class
got reorganized. More logic will be reorganized in the future.
2021-05-15 00:29:59 +02:00
Dennis Potter 27c4e9de3c
Add proper logging mechanism to application
This mechanism has custom coloring, support to dump in file and
on the commandline and support to turn either or both off. cli/cli.py
provies a function that can be called in each module to instantiate
a logger for that module.
2021-05-10 00:59:52 +02:00
Dennis Potter ea998b7db0
Add argparse.ArgumentParser based CliArguments class
This wrapper lives in a seperate module and class so that possible
processing of arguments can be done before the config dictionary
gets passed to the compiler.
2021-05-08 11:17:56 +02:00