You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deprecate BlackBox and tell users to switch to ExtModule. BlackBox has a
ton of baggage associated with it, due to it mandating, at runtime, a
single `val io` call and no additional calls to `IO` while also magically
removing the `io_` prefix in the generated FIRRTL. `ExtModule` is far
cleaner and works as a user would expect. You can call `IO` as much as
you want. No magic prefixing happens.
This is slightly unfortunate as one could argue that `BlackBox` is a good
name. However, you can also argue (more strongly I would add) that this
is an "external module" and it would be better to call it as such. If
this is controversial, we can consider a migration back from `ExtModule`
to `BlackBox`.
Migrate some tests that were only testing blackboxes to be duplicated in
the external module tests. This will allow us to just delete this test
later.
This has three motivations:
1. `BlackBox` has always been janky for the reasons above and `ExtModule`
is the saner generator API.
2. It's bad to have two similar, though subtly different ways of doing
things.
3. The singular IO that `BlackBox` forces users to go through means that
`BlackBox` cannot have domain information attached to it. This
essentially means that `BlackBox` will be essentially unusable until
domains gain support for being in subfields. It's easier to just
deprecate `BlackBox` than to require that domains gain this complicated
feature addition just now.
Signed-off-by: Schuyler Eldridge <[email protected]>
0 commit comments