llvm / llvm/circt

[FIRRTL] extmodule as main module

Open
#4,674 0 comments 0 reactions 0 assignees View on GitHub
FIRRTL
Dominant language
C++
Stars
2.2k
Forks
524
Avg merge
3d 2h
Merged PRs (30d)
46

Description

Input:

```firrtl
circuit Ext :
extmodule Ext :
input x : UInt<1>
```

Produces:

```
// Generated by CIRCT 1.31.0g20230217_f4a1235
// external module Ext
```

We don't need the port, but SFC apparently does, which seems to also accept this (producing an empty file) as of 1.5.3, FWIW.

This isn't unreasonable behavior, but probably should be rejected? Kinda surprised (in a good way) nothing breaks along the way with this! :laughing:

Looks like `defname` can be used to rename the main module too, FWIW. :thinking:

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the FIRRTL input with an extmodule as the main module and inspect why CIRCT produces only the generated header and external-module comment. Compare the behavior noted for SFC 1.5.3, then clarify whether this input should be rejected or accepted with an empty output; done requires an agreed behavior and a regression check.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.