Skip to content

Verilog: SystemVerilog interfaces#1907

Draft
kroening wants to merge 2 commits into
mainfrom
kroening/systemverilog-interfaces
Draft

Verilog: SystemVerilog interfaces#1907
kroening wants to merge 2 commits into
mainfrom
kroening/systemverilog-interfaces

Conversation

@kroening

@kroening kroening commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

Adds support for SystemVerilog interfaces (IEEE 1800-2017 A.2.9):

  • Interface declarations with members and initial blocks
  • Interface instantiation (with and without parameters)
  • Interface ports on modules (with optional modport)
  • Modport declarations within interfaces
  • Duplicate name detection between modules and interfaces

@kroening kroening force-pushed the kroening/systemverilog-interfaces branch from 6932487 to bfcfc5d Compare June 18, 2026 22:21
@kroening kroening marked this pull request as draft June 18, 2026 22:23
@kroening kroening force-pushed the kroening/systemverilog-interfaces branch from bfcfc5d to 6d46792 Compare June 19, 2026 13:42
Per IEEE 1800-2017 section 25, implement basic SystemVerilog
interface support:

- Parser: interface declarations (A.1.5), modport declarations
  (A.2.9), interface port declarations (A.2.1.2)
- Elaboration: register interfaces in symbol table
- Type checking: interface instances as module instances,
  hierarchical access to interface members
- Synthesis: hierarchical identifier on LHS of assignments

Interface port binding (passing interface instances to module ports)
is not yet implemented and remains as KNOWNBUG.
@kroening kroening force-pushed the kroening/systemverilog-interfaces branch from 6d46792 to ea9fd4e Compare June 19, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant