Skip to content

Remove the Migen compatibility layer #692

Closed
@whitequark

Description

@whitequark

It has (technically) been deprecated since day 1, and hasn't seen much uptake. This interface was considered important for migration of existing codebases, but the (intentional and unintentional) mismatches with Migen behavior meant that it only had a limited usefulness; most code that needed Migen compatibility combines the LiteX and the Amaranth parts of the design through Verilog.

Removing the compatibility layer allows a number of cleanups: the AST visitors can dispatch faster using type() is rather than isinstance(), and several AST types can be marked @final.

It also deemphasizes the relation to Migen. Many of the remaining design choices in Amaranth that directly derive from Migen (records, fragments, AST transformations, board DSL, ...) are load bearing liabilities and there's no reason to have a gratuitous one on top of that.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions