mirror of https://github.com/llvm/circt.git
![]() Add the `ImportVerilogOptions` struct to capture various options that can be passed to the Slang Verilog frontend. This covers things like include search directories, macro definitions, top modules, time scales, and other settings commonly found in Verilog tools. The struct is inspired by `slang::driver::Driver::Options`, but we intentionally create our own struct such that no Slang headers leak through into CIRCT space. Add corresponding command line options to `circt-verilog`, and use them to populate an `ImportVerilogOptions` struct that can be passed to `ImportVerilog`. Add `importVerilog` and `preprocessVerilog` functions to `ImportVerilog` and add corresponding options to `circt-verilog` that call the respective import function. This commit only implements preprocessing. This commit also adds a mechanism to bridge between the diagnostic world of Slang and MLIR (`MlirDiagnosticClient`). This allows us to emit any Slang-generated diagnostics as regular MLIR diagnostics, alongside any other errors or warnings the Verilog import might generate. Add tests for the preprocessor (with include paths and macros) and the diagnostic bridge. Co-authored-by: Will Dietz <will.dietz@sifive.com> Co-authored-by: ShiZuoye <albertethon@163.com> Co-authored-by: hunterzju <hunter_ht@zju.edu.cn> Co-authored-by: 孙海龙 <hailong.sun@terapines.com> Co-authored-by: Will Dietz <will.dietz@sifive.com> |
||
---|---|---|
.. | ||
other.sv |