Add rules_verilog@0.1.0#7852
Conversation
|
Hello BCR maintainers, modules (rules_verilator) have been updated in this PR. |
|
Hello BCR maintainers, modules without existing maintainers (rules_verilog) have been updated in this PR. |
|
Hi @fmeum |
|
Thank you |
|
Sorry for only chiming in now, but I would have liked to see some more context in this PR, and possibly a different module name. The github issue in rules_verilator doesn't really inform us about:
The name Perhaps too late now, but there's a blurb in the BCR maintainer doc that would have applied to this PR. |
|
Hi @ted-xie please check hw-bzl/rules_verilog#1 , hw-bzl/rules_verilog#2 , agoessling/rules_verilog#1 and hdl/bazel_rules_hdl#428 (comment) for more details |
This design is intentional and aligns with the Bzlmod's philosophy of high modularity and decoupling. The primary goal of I believe that a massive, monolithic, "kitchen-sink" approach like the old |
Since 2023, many community members (myself included) have made numerous attempts to migrate More importantly, as I mentioned above, the Bzlmod paradigm strongly emphasizes modularity and decoupling. A massive, monolithic project like |
Check [bazel_rules_verilator/issues/2](hw-bzl/rules_verilator#2) for more details
The primary goal of
rules_verilogis to provide only the most foundational Verilog interfaces (e.g.,verilog_library). This allows downstream rulesets, such as rules_verilator or rules_vivado, to easily consume them without introducing unnecessary overhead.This design is intentional and aligns with the Bzlmod's philosophy of high modularity and decoupling. A massive, monolithic, "kitchen-sink" approach like the old
rules_hdlis largely an anti-pattern and highly unsuitable in the bzlmod era.Tip
Q: Why "kitchen-sink" approach like the old
rules_hdlis bad in bzlmod era?A: If a module is a massive monolith, anyone depending on it is forced to download and resolve a massive dependency graph—even if they only need 5% of its functionality. This leads to version conflicts, bloated download times, and slower evaluations. In the Bzlmod era, the best practice is to decouple these into discrete, composable modules so users only pull exactly what they need for their specific hardware pipeline.