All Projects → kkiningh → rules_verilator

kkiningh / rules_verilator

Licence: Apache-2.0 license
Bazel build rules for Verilator

Programming Languages

Starlark
911 projects

Projects that are alternatives of or similar to rules verilator

bazel-latex
Bazel build system rules for LaTeX
Stars: ✭ 67 (+378.57%)
Mutual labels:  bazel, bazel-rules
rules scala
Robust and featureful Bazel rules for Scala
Stars: ✭ 62 (+342.86%)
Mutual labels:  bazel, bazel-rules
rules ocaml
OCaml build rules for Bazel
Stars: ✭ 38 (+171.43%)
Mutual labels:  bazel, bazel-rules
svut
SVUT is a simple framework to create Verilog/SystemVerilog unit tests. Just focus on your tests!
Stars: ✭ 48 (+242.86%)
Mutual labels:  verilog, verilator
virtio
Virtio implementation in SystemVerilog
Stars: ✭ 38 (+171.43%)
Mutual labels:  verilog, verilator
rules antlr
ANTLR rules for Bazel
Stars: ✭ 24 (+71.43%)
Mutual labels:  bazel, bazel-rules
rules helm
rules_helm: Bazel rules for managing helm charts
Stars: ✭ 46 (+228.57%)
Mutual labels:  bazel, bazel-rules
dbgbus
A collection of debugging busses developed and presented at zipcpu.com
Stars: ✭ 24 (+71.43%)
Mutual labels:  verilog, verilator
rules gitops
This repository contains rules for continuous, GitOps driven Kubernetes deployments.
Stars: ✭ 112 (+700%)
Mutual labels:  bazel, bazel-rules
hdl-tools
Facilitates building open source tools for working with hardware description languages (HDLs)
Stars: ✭ 56 (+300%)
Mutual labels:  verilog, verilator
rules proto grpc
Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets
Stars: ✭ 201 (+1335.71%)
Mutual labels:  bazel, bazel-rules
rules java
Java rules for Bazel
Stars: ✭ 44 (+214.29%)
Mutual labels:  bazel, bazel-rules
bazel-maven-proxy
A local (read-only) proxy for Bazel to access Maven resources behind a secure repository or from the local Maven repository
Stars: ✭ 22 (+57.14%)
Mutual labels:  bazel, bazel-rules
rules elm
Bazel rules for building web applications written in Elm
Stars: ✭ 22 (+57.14%)
Mutual labels:  bazel, bazel-rules
rules openapi
🍃 bazel rules for generating code from openapi specifications
Stars: ✭ 49 (+250%)
Mutual labels:  bazel, bazel-rules
rules dart
Dart rules for Bazel
Stars: ✭ 35 (+150%)
Mutual labels:  bazel, bazel-rules
Rules kotlin
Bazel rules for Kotlin
Stars: ✭ 235 (+1578.57%)
Mutual labels:  bazel, bazel-rules
Rules rust
Rust rules for Bazel
Stars: ✭ 241 (+1621.43%)
Mutual labels:  bazel, bazel-rules
rules sass
Sass rules for Bazel
Stars: ✭ 47 (+235.71%)
Mutual labels:  bazel, bazel-rules
rules appengine
AppEngine rules for Bazel
Stars: ✭ 28 (+100%)
Mutual labels:  bazel, bazel-rules

Bazel build rules for Verilator

Bazel Tests

Overview

Add the following to your WORKSPACE file

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

# Verilator
http_archive(
    name = "rules_verilator",
    # See release page for latest urls + sha
)

load(
    "@rules_verilator//verilator:repositories.bzl",
    "rules_verilator_dependencies",
    "rules_verilator_toolchains"
)
rules_verilator_dependencies()
rules_verilator_toolchains()

# Register toolchain dependencies
load("@rules_m4//m4:m4.bzl", "m4_register_toolchains")
m4_register_toolchains()

load("@rules_flex//flex:flex.bzl", "flex_register_toolchains")
flex_register_toolchains()

load("@rules_bison//bison:bison.bzl", "bison_register_toolchains")
bison_register_toolchains()

Supported Bazel Versions

These rules are under active development and the minimum supported Bazel version may change. Currently, the master branch requires Bazel >= 5.2.0.

Build rules

load("@rules_verilator//verilator:defs.bzl", "verilator_cc_library")

verilator_cc_library(
    name = "alu",
    mtop = "alu", # defaults to name if not specified
    srcs = ["alu.sv"],
)

cc_binary(
    name = "alu_bin",
    srcs = ["alu.cpp"],
    deps = [":alu"],
)

The details of a verilog module (sources, top name, etc.) can also be specified by a verilog_module which can be reused in other rules.

load("@rules_verilog//verilog:defs.bzl", "verilog_module")

load("@rules_verilator//verilator:defs.bzl", "verilator_cc_library")

verilog_module(
    name = "alu_module",
    top = "alu",
    srcs = ["alu.sv"],
)

verilator_cc_library(
    name = "alu",
    module = ":alu_module",
)

See test/alu/BUILD for working examples.

License

Released under Apache 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].